# springAI **Repository Path**: qiankun1998/spring-ai ## Basic Information - **Project Name**: springAI - **Description**: Spring AI整合本地部署实现DeepSeek实现AI对话 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-02-17 - **Last Updated**: 2025-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README https://blog.csdn.net/qq_44210132/article/details/145681868?sharetype=blogdetail&sharerId=145681868&sharerefer=PC&sharesource=qq_44210132&spm=1011.2480.3001.8118 ## Spring AI整合本地部署实现DeepSeek实现AI对话 ### 1.引入依赖 ```xml org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.springframework.ai spring-ai-bom 1.0.0-SNAPSHOT pom import org.springframework.ai spring-ai-ollama-spring-boot-starter 1.0.0-SNAPSHOT spring-milestones Spring Milestones https://repo.spring.io/milestone false spring-snapshots Spring Snapshots https://repo.spring.io/snapshot false ``` ### 2.配置 ```yaml server: port: 8088 spring: ai: ollama: base-url: http://127.0.0.1:11434 chat: options: model: deepseek-r1:7b ``` ### 3.Controller ```java @RestController public class ChatController { private final OllamaChatModel chatModel; @Autowired public ChatController(OllamaChatModel chatModel) { this.chatModel = chatModel; } @GetMapping("/ai/generate") public Map generate(@RequestParam(value = "message", defaultValue = "您好") String message) { List messages=new ArrayList<>(); messages.add(new SystemMessage("你是张三")); messages.add(new SystemMessage("你今年两岁半")); messages.add(new SystemMessage("喜欢唱跳rep")); messages.add(new UserMessage(message)); ChatResponse call = this.chatModel.call(new Prompt(messages)); return Map.of("generation", call.toString()); } @GetMapping("/ai/generateStream") public Flux generateStream(@RequestParam(value = "message", defaultValue = "您好") String message) { Prompt prompt = new Prompt(new UserMessage(message)); return this.chatModel.stream(prompt); } } ``` ### 4.多轮对话和自定义提示词 ```java List messages=new ArrayList<>(); //SystemMessage是系统消息 messages.add(new SystemMessage("你是张三")); messages.add(new SystemMessage("你今年两岁半")); messages.add(new SystemMessage("喜欢唱跳rep")); //UserMessage是用户消息 messages.add(new UserMessage(message)); //虽然区分了系统消息和用户消息,但是不准确,还需要自行添加提示词防止ai不理解其中意思 ``` 多轮对话等数据可存入向量数据库进行获取。 ### DeepSeek部署 1.访问Ollama官网,下载与你操作系统匹配的版本(支持Windows、macOS和Linux)。 2.Ollama下载完成后,执行命令运行指定本地模型。 ```bash ollama run deepseek-r1:1.5b ``` 开始使用 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c728f23e9a4b4372b9be4a00b34b54e9.png) ### 接口调用 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/32c16a7095694f3e8067c5f0c6b10b3e.png) ### 完