Spring AI(聊天程序)
接上篇:Spring AI(基础开发准备)
View Code
View Code
1、聊天程序(调用一次接口)
/** * 聊天程序 * @author ithailin */ @RestController @RequestMapping("/ai") public class ChatController { private static final Logger logger = LoggerFactory.getLogger(ChatController.class); /** * spring-ai 自动装配的,可以注入使用 */ @Autowired private OpenAiChatModel openAiChatModel; /** * 调用openai的接口 * default String call(String message){} * @param msg:我们提问的消息 * @return */ @RequestMapping("/chat") public String chat(String msg){ logger.info("msg:{}",msg ); String called = openAiChatModel.call(msg); return called; } /** * 调用openai的接口 * public ChatResponse call(Prompt prompt){} * @param msg:我们提问的消息 * @return */ @RequestMapping("/chat2") public Object chat2(String msg){ logger.info("msg:{}",msg ); ChatResponse chatResponse = openAiChatModel.call(new Prompt(msg)); return chatResponse; } /** * 调用openai的接口 * public ChatResponse call(Prompt prompt){} * @param msg:我们提问的消息 * @return */ @RequestMapping("/chat3") public Object chat3(String msg){ logger.info("msg:{}",msg ); OpenAiChatOptions openAiChatOptions = OpenAiChatOptions.builder() //chatGpt模型版本,32k是参数量,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的 .withModel("gpt-4-32k") //温度越高,回答的准确率会下降,温度越低,回答的准确率越好,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的 .withTemperature(0.4F) .build(); Prompt prompt = new Prompt(msg, openAiChatOptions); ChatResponse chatResponse = openAiChatModel.call(prompt); return chatResponse; } /** * 调用openai的接口 * public Flux<ChatResponse> stream(Prompt prompt){} * @param msg:我们提问的消息 * @return */ @RequestMapping("/chat4") public Object chat4(String msg){ logger.info("msg:{}",msg ); OpenAiChatOptions openAiChatOptions = OpenAiChatOptions.builder() .withModel("gpt-4-32k") .withTemperature(0.4F) .build(); Prompt prompt = new Prompt(msg, openAiChatOptions); Flux<ChatResponse> flux = openAiChatModel.stream(prompt); flux.toStream().forEach(chatResponse -> { System.out.print(chatResponse.getResult().getOutput().getContent()); }); return flux.collectList();//数据的序列,一序列数据,一个一个的数据返回 } }
获取GPT默认版本
chatGpt模型版本、温度等相关参数配置,当前配置可在配置文件application.yml中进行设置,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的
application.yml新增配置
chat: options: # chatGpt模型版本,32k是参数量,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的 # model: gpt-4-32k # 温度越高,回答的准确率会下降,温度越低,回答的准确率越好,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的 temperature: 0.3F
application.yml文件如下
spring: application: name: spring-ai ai: openai: # 访问open ai接口的api key api-key: sk-3sfER03LDLG3SDFsdlwe283JSdw023lkrmrHDND32fmREKFD # 访问open ai的接口地址 base-url: https://openai.com/ # ai聊天设置 chat: options: # chatGpt模型版本,32k是参数量,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的 model: gpt-4-32k # 温度越高,回答的准确率会下降,温度越低,回答的准确率越好,若当前代码中和application配置文件中同时声明,则代码中的配置会覆盖application配置文件中的 temperature: 0.3F
接下篇:Spring AI(绘图)