Spring-ai 1.0.0 学习(三)——流式调用及模型参数
在前面两篇中我们介绍了spring-ai及最小化的样例代码
在第三篇中将学习模型参数配置和流式调用
流式调用
@GetMapping("/ai/stream")Flux<String> generationStream(String userInput){return this.chatClient.prompt().user(userInput).stream().content();}
流式调用与非流式的区别:1)调用方法为stream 2)返回值类型为Flux
模型参数配置
package com.example.spring_ai.controller;import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.prompt.ChatOptions;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;@RestController
public class SpringAiExample03ChatOptions
{private final ChatClient chatClient;public SpringAiExample03ChatOptions(ChatClient.Builder chatClientBuilder){//设置默认模型参数,会在ChatClient的所有请求中生效this.chatClient = chatClientBuilder.defaultOptions(ChatOptions.builder().temperature(0.7).build()).build();}@GetMapping("/ai")String generation(String userInput){//设置当前请求的模型参数return this.chatClient.prompt().options(ChatOptions.builder().temperature(0.0).build()).user(userInput).call().content();}}
模型参数可以在两个地方配置
1)在创建ChatClient的时候使用defaultOptions配置,会在该ChatClient的所有请求中生效
2)在ChatClient的单次请求中配置,仅对当前请求生效