文章目录
application.yaml配置文件
yml
server:
port: 8080
servlet:
encoding:
charset: utf-8 # 解决流式响应的乱码问题
force: true
enabled: true
spring:
ai:
zhipuai:
api-key: ${ZHIPU_KEY} # 配置 API Key
base-url: "https://open.bigmodel.cn/api/paas" # 配置模型地址
chat:
options:
model: glm-4-flash
ZhipuChatController.java
java
package org.example.controller;
import org.springframework.ai.chat.messages.SystemMessage;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.zhipuai.ZhiPuAiChatOptions;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;
import java.util.List;
@RestController
@RequestMapping("/zhipuai")
public class ZhipuChatController {
private final ChatModel chatModel;
// 通过构造器注入ChatModel
public ZhipuChatController(ChatModel chatModel) {
this.chatModel = chatModel;
}
// 同步响应
@GetMapping("/simple")
public String simpleChat(@RequestParam(name = "query") String query) {
// 调用模型
return chatModel.call(query);
}
// 流式响应
@GetMapping("/stream/chat")
public Flux<String> streamChat(@RequestParam(name = "query") String query) {
// 调用模型
return chatModel.stream(query);
}
}
使用浏览器访问接口才能看到效果
访问:127.0.0.1:8080/zhipuai/stream/chat?query=请自我介绍
