Spring AI(二)创建一个Spring AI项目
2025-03-10
环境要求
Java 17以上,说明
1.创建AI项目
通过Spring官网创建一个SpringAI项目
填写项目信息
我们选择使用Maven作为构建工具,填写相关Group/Artifact/Name。
添加Spring Web依赖
添加Spring AI依赖
我们在搜索框中搜索AI,会出现很多和AI相关的依赖,Spring AI默认支持很多AI提供商,我们这里使用Open AI,选择Open AI。
生成程序包
点击生成按钮
将会生成并自动下载
通过IDE打开AI项目
2.运行Demo
免费API申请
这里由于我们并没有Open AI,这里使用Github上免费版
打开项目地址
点击申请Api
添加OPENAI配置
https://docs.spring.io/spring-ai/reference/api/chat/openai-chat.html#_connection_properties
在该地址我们可以看到相关配置,我们添加到application配置文件中
spring.ai.openai.base-url=https://api.chatanywhere.tech
spring.ai.openai.api-key=上面申请的Api key
实现简单问答
package com.ai.SpringAiDemo.service;
import jakarta.annotation.Resource;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.stereotype.Service;
@Service
public class ChatService {
@Resource
private ChatModel chatModel;
public String getResponse(String prompt) {
return chatModel.call(prompt);
}
}
package com.ai.SpringAiDemo.controller;
import com.ai.SpringAiDemo.service.ChatService;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class GenAiController {
@Resource
private ChatService chatService;
@GetMapping("/ask-ai")
public String getResponse(@RequestParam String prompt) {
return chatService.getResponse(prompt);
}
}
添加Service和Controller后进行测试
实现携带参数问答
public String getResponseOptions(String prompt) {
ChatResponse response = chatModel.call(
new Prompt(
prompt,
OpenAiChatOptions.builder()
.model("gpt-4o-mini") //修改模型版本
.temperature(0.4)
.build()
));
return response.getResult().getOutput().getText();
}
@GetMapping("/ask-ai-options")
public String getResponseOptions(@RequestParam String prompt) {
return chatService.getResponseOptions(prompt);
}