Spring AI GA正式版试用感受
只花了一上午就搭建了一套向量搜索和 AI 问答+RAG 知识库 和 tools call的示例。
文档全还有示例,上手速度很快,个人感觉比 LangChain 系列好用。
完整项目在在文章末尾,如果对你有帮助请帮我点个star 。谢谢~
Spring AI 1.0 GA 功能介绍:
https://spring.io/blog/2025/05/20/spring-ai-1-0-GA-released
核心代码:
/** * 构造方法,注入必要的依赖,并配置 ChatClient * * @param builder ChatClient 构建器 * @param chatMemory 聊天上下文记忆体 * @param vectorStore 向量存储,用于语义检索 * @param listObjectProvider 工具回调提供者对象列表 */ public AiSportSupportAssistant( ChatClient.Builder builder, ChatMemory chatMemory, VectorStore vectorStore, ObjectProvider<List<ToolCallbackProvider>> listObjectProvider) { this.chatBuilder = builder; this.vectorStore = vectorStore; this.listObjectProvider = listObjectProvider; // 配置知识库检索参数:相似度阈值为0.5,返回Top 3条 SearchRequest searchRequest = SearchRequest.builder() .similarityThreshold(0.5d) .topK(3) .build(); // 初始化 ChatClient this.chatClient = builder // 设置默认系统提示词,定义 AI 助理的身份和行为 .defaultSystem( "你是一个运动助手,帮助用户解决运动相关问题,上下文和历史信息帮助你更好了解用户需求," + "但记住你不仅可以根据上下文来回答内容,而且你也可以调用工具帮助用户查询,始终遵守用户的指令。") // 配置对话顾问,包括记忆顾问、知识库问答顾问和日志顾问 .defaultAdvisors( MessageChatMemoryAdvisor.builder(chatMemory).build(), // 聊天记忆可以配置存储 mysql \Redis QuestionAnswerAdvisor.builder(vectorStore).searchRequest(searchRequest).build(), // 向量知识库问答 new SimpleLoggerAdvisor()) // 简单日志 // 配置默认工具,如时间工具 .defaultTools(new DateTimeTools()) // 配置默认可用工具名称 .defaultToolNames("getStudentSportScore", "getStudentScoreRank") .build(); // 构建 ChatClient 实例 }
核心配置配置:
spring: # api-key (项目测试使用是DeepSeek和阿里embedding https://bailian.console.aliyun.com/?tab=model) ai: openai: api-key: sk- base-url: https://api.deepseek.com chat: options: model: deepseek-chat embedding: base-url: https://dashscope.aliyuncs.com/compatible-mode api-key: sk- options: model: text-embedding-v3 dimensions: 1024 vectorstore: milvus: client: host: "localhost" port: 19530 username: "root" password: "milvus" databaseName: "default" collectionName: "vector_store" embeddingDimension: 1024 indexType: IVF_FLAT metricType: COSINE initialize-schema: true chat: memory: repository: jdbc: initialize-schema: never
项目参考:

浙公网安备 33010602011771号