1、在浏览器打开地址:
这是 Spring Initializr 的官方地址,它是 Spring 官方提供的一个在线工具,支持通过可视化界面选择配置(如项目类型、语言、依赖等),生成一个可直接导入 IDE 的 Spring Boot 项目。
没错,SpringAI工程也可以使用Springboot快速开发。
2、生成代码框架
按照下方截图所示,勾选对应选项,进行下载
- Spring boot 版本3.5.0
- Java 版本17
- 引入Jar包,Spring Web,OpenAI
下载后是一个zip文件,进行解压。
3、导入idea
打开idea,左上角的file–>open,选择刚刚解压后的文件夹
4、修改配置
1、常规项调整,maven,和jdk版本,
我使用的是maven3.8.8,jdk17。
2、调整Springboot版本号
建议改成3.4.4版本,较为稳定
5、配置大模型
既然是AI工程,那么肯定是要用到大模型的。这里,我使用的是阿里的千问模型,
在application.properties中配置Qwen模型的base-url,API Key,以及要使用的模型名称。
spring.application.name=OneAiDemo
spring.ai.openai.api-key=sk-xxx
spring.ai.openai.base-url=https://dashscope.aliyuncs.com/compatible-mode
spring.ai.openai.chat.options.model=qwen-plus
6、编写Controller
创建一个Controller类,调用对话工具。
@RestController
public class HelloController {
private ChatClient chatClient;
public HelloController(ChatClient.Builder builder) {
this.chatClient= builder.build();
}
@GetMapping("/hello")
public String hello(@RequestParam(value = "input", defaultValue = "讲一个冷笑话") String input) {
return chatClient.prompt(input).call().content();
}
}
然后启动项目,默认端口号8080。
7、测试能否正确对话
打开浏览器,访问地址:
http\://localhost:8080/hello
即可在页面上看到大模型输出的结果内容。
8、流式输出
上面已经可以正常看到大模型的输出结果,但它是一股脑儿的全部显示到页面上的。如果我们想要流式输出,也就是打印机的效果,那么需要调用chatClient的stream方法,如下:
@GetMapping(value = "/hello/stream",produces ="text/html;charset=UTF-8")
public Flux<String> helloStream(@RequestParam(value = "input", defaultValue = "讲一个冷笑话") String input) {
return chatClient.prompt(input).stream().content();
}
重启项目后,在浏览器上访问地址:
即可看到流式输出的打印机效果。
至此,我们就已经搭建好了第一个Spring AI 工程!