采样控制器
创建一个新的Spring Boot项目,并将spring-ai-starter-model-openai添加到您的pom(或gradle)依赖项中。
在application.properties目录下添加src/main/resources文件,启用和配置OpenAi聊天模型:
spring.ai.openai.api-key=YOUR_API_KEYspring.ai.openai.chat.options.model=gpt-4ospring.ai.openai.chat.options.temperature=0.7
将api-key替换为您的OpenAI凭据。
这将创建一个OpenAiChatModel实现,您可以将其注入到类中。下面是一个简单的@RestController类的例子,它使用聊天模型生成文本。
@RestControllerpublic class ChatController {private final OpenAiChatModel chatModel;@Autowiredpublic ChatController(OpenAiChatModel chatModel) {this.chatModel = chatModel;}@GetMapping("/ai/generate")public Map<String,String> generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {return Map.of("generation", this.chatModel.call(message));}@GetMapping("/ai/generateStream")public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {Prompt prompt = new Prompt(new UserMessage(message));return this.chatModel.stream(prompt);}}
手动配置
OpenAiChatModel实现了ChatModel和StreamingChatModel,并使用底层OpenAiApi客户端(Low-level OpenAiApi Client)连接到OpenAI服务。
将spring-ai-openai依赖项添加到项目的Maven pom.xml文件:
<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-openai</artifactId></dependency>
参考Spring AI学习笔记之三:如何开始依赖管理部分将Spring AI BOM添加到构建文件中。
接下来,创建一个OpenAiChatModel并将其用于文本生成:
var openAiApi = OpenAiApi.builder().apiKey(System.getenv("OPENAI_API_KEY")).build();var openAiChatOptions = OpenAiChatOptions.builder().model("gpt-3.5-turbo").temperature(0.4).maxTokens(200).build();var chatModel = new OpenAiChatModel(this.openAiApi, this.openAiChatOptions);ChatResponse response = this.chatModel.call(new Prompt("Generate the names of 5 famous pirates."));// Or with streaming responsesFlux<ChatResponse> response = this.chatModel.stream(new Prompt("Generate the names of 5 famous pirates."));
OpenAiChatOptions提供聊天请求的配置信息。OpenAiApi.Builder和OpenAiChatOptions.Builder分别是API客户端和聊天配置的流畅选项构建器。