目录
一、创建项目
- 阿里云的Server URL(https://start.aliyun.com/)搜不到Spring AI,咱换官方的:https://start.spring.io/
下载好JDK 17,在上图的JDK中不一定能看到。此时,选add JDK:选
zulu-17.jdk -> Contents -> Home
。
二、first demo
1、application.properties
bash
spring.ai.openai.api-key=sk-xxx
spring.ai.openai.chat.options.model=gpt-3.5-turbo
spring.ai.openai.chat.options.temperature=0.7
2、ChatController
java
@RestController
public class ChatController {
private final OpenAiChatClient chatClient;
@Autowired
public ChatController(OpenAiChatClient chatClient) {
this.chatClient = chatClient;
}
@GetMapping("/ai/generate")
public Map generate(@RequestParam(value = "message", defaultValue = "美国的首都是?") String message) {
return Map.of("generation", chatClient.call(message));
}
@GetMapping("/ai/generateStream")
public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "美国的首都是?") String message) {
Prompt prompt = new Prompt(new UserMessage(message));
return chatClient.stream(prompt);
}
}
3、结果
- /ai/generate
- /ai/generateStream
- 额... 流式调用不行...
三、个人思考
- 不少人把调API的人称为调包侠,把搞深度学习的人称为炼丹师。但从软件工程的角度出发,将服务/功能封装为一个个好用的API是构建复杂系统的基础。我们不可能亲手去造每一个轮子,况且术业有专攻,自己造的不如专业人士造的好用。
- 熟练掌握API是起点,接下来,咱还得去学习下Spring AI是如何兼容这么多llm的吧。
接触过各种llm的api就知道,那叫一个千奇百怪。