事先说明采用本地部署Ollama用的模块是deepseek-r1:1.5b一、创建spring boot基础工程二、导入相关依赖properties java.version17/java.version spring-ai.version1.1.3/spring-ai.version /properties dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-starter-model-ollama/artifactId /dependency dependency groupIdcom.mysql/groupId artifactIdmysql-connector-j/artifactId scoperuntime/scope /dependency dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId version1.18.42/version /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope /dependency /dependencies三、配置相关参数在application.yml中配置Ollama的基础URL和模型名称spring: application: name:ywq-ai ai: ollama: base-url: http://localhost:11434 chat: model: deepseek-r1:1.5b #配置日志级别 logging: level: org.springframework.ai.chat.client.advisor: debug com.ywq: debug四、编写CommonConfiguration代码创建一个配置类定义ChatClient的Bean并设置默认的系统提示和日志记录package com.ywq.config; import org.springframework.ai.chat.client.ChatClient; import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor; import org.springframework.ai.chat.client.advisor.SimpleLoggerAdvisor; import org.springframework.ai.chat.memory.ChatMemory; import org.springframework.ai.chat.memory.MessageWindowChatMemory; import org.springframework.ai.ollama.OllamaChatModel; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; Configuration public class CommonConfiguration { //此方法用来管理会话历史最多记住最近20条记录 Bean public ChatMemory chatMemory(){ return MessageWindowChatMemory.builder().maxMessages(20).build(); } //创建 ChatClient 实例 Bean public ChatClient chatClient(OllamaChatModel model,ChatMemory chatMemory){ return ChatClient .builder(model) .defaultSystem(你是一个聪明、愉快的智能助手你的名字叫海绵宝宝请以海绵宝宝的身份和语气回答问题) .defaultAdvisors(new SimpleLoggerAdvisor(), // 日志记录打印请求和响应MessageChatMemoryAdvisor.builder(chatMemory).build()) // 会话记忆管理 .build(); } }.defaultSystem():设置默认提示词.defaultAdvisors()配置日志记录请求的回话日志五、编写ChatController完成测试创建一个控制器类提供聊天接口。支持直接输出和流式输出RequestMapping(value /chat1) public String chat1(String prompt) { return chatClient.prompt().user(prompt).call().content(); }对于流式输出需添加字符编码设置以避免乱码RequestMapping(value /chat2, produces text/html;charsetutf-8) public FluxString chat2(String prompt) { return chatClient.prompt().user(prompt).stream().content(); }此时将项目跑起来浏览器访问http://localhost:8080/ai/chat1?promptxxxx这个时候恭喜你完成了SpringAi 调用 本地部署的Ollama模块deepseek-r1:1.5b开发了聊天机器人但是这个页面实在太不美观为了提升聊天机器人的用户体验可以采用Vue 3配合Element Plus或Vuetify等UI框架快速搭建美观界面。