找回密码
 立即注册
首页 业界区 安全 Spring AI GA正式版试用感受

Spring AI GA正式版试用感受

计海龄 2025-5-30 20:20:14
只花了一上午就搭建了一套向量搜索和 AI 问答+RAG 知识库 和 tools call的示例。
文档全还有示例,上手速度很快,个人感觉比 LangChain 系列好用。
完整项目在在文章末尾,如果对你有帮助请帮我点个star 。谢谢~

Spring AI 1.0 GA 功能介绍:
https://spring.io/blog/2025/05/20/spring-ai-1-0-GA-released
 
核心代码:
  1.   /**
  2.      * 构造方法,注入必要的依赖,并配置 ChatClient
  3.      *
  4.      * @param builder ChatClient 构建器
  5.      * @param chatMemory 聊天上下文记忆体
  6.      * @param vectorStore 向量存储,用于语义检索
  7.      * @param listObjectProvider 工具回调提供者对象列表
  8.      */
  9.     public AiSportSupportAssistant(
  10.             ChatClient.Builder builder,
  11.             ChatMemory chatMemory,
  12.             VectorStore vectorStore,
  13.             ObjectProvider<List<ToolCallbackProvider>> listObjectProvider) {
  14.         this.chatBuilder = builder;
  15.         this.vectorStore = vectorStore;
  16.         this.listObjectProvider = listObjectProvider;
  17.         // 配置知识库检索参数:相似度阈值为0.5,返回Top 3条
  18.         SearchRequest searchRequest = SearchRequest.builder()
  19.                 .similarityThreshold(0.5d)
  20.                 .topK(3)
  21.                 .build();
  22.         // 初始化 ChatClient
  23.         this.chatClient = builder
  24.                 // 设置默认系统提示词,定义 AI 助理的身份和行为
  25.                 .defaultSystem(
  26.                         "你是一个运动助手,帮助用户解决运动相关问题,上下文和历史信息帮助你更好了解用户需求," +
  27.                         "但记住你不仅可以根据上下文来回答内容,而且你也可以调用工具帮助用户查询,始终遵守用户的指令。")
  28.                 // 配置对话顾问,包括记忆顾问、知识库问答顾问和日志顾问
  29.                 .defaultAdvisors(
  30.                         MessageChatMemoryAdvisor.builder(chatMemory).build(), // 聊天记忆可以配置存储 mysql \Redis
  31.                         QuestionAnswerAdvisor.builder(vectorStore).searchRequest(searchRequest).build(), // 向量知识库问答
  32.                         new SimpleLoggerAdvisor()) // 简单日志
  33.                 // 配置默认工具,如时间工具
  34.                 .defaultTools(new DateTimeTools())
  35.                 // 配置默认可用工具名称
  36.                 .defaultToolNames("getStudentSportScore", "getStudentScoreRank")
  37.                 .build(); // 构建 ChatClient 实例
  38.     }
复制代码
 
核心配置配置:
  1. spring:
  2. # api-key (项目测试使用是DeepSeek和阿里embedding https://bailian.console.aliyun.com/?tab=model)
  3.   ai:
  4.     openai:
  5.       api-key: sk-
  6.       base-url: https://api.deepseek.com
  7.       chat:
  8.         options:
  9.           model: deepseek-chat
  10.       embedding:
  11.         base-url: https://dashscope.aliyuncs.com/compatible-mode
  12.         api-key: sk-
  13.         options:
  14.           model: text-embedding-v3
  15.           dimensions: 1024
  16.     vectorstore:
  17.       milvus:
  18.         client:
  19.           host: "localhost"
  20.           port: 19530
  21.           username: "root"
  22.           password: "milvus"
  23.         databaseName: "default"
  24.         collectionName: "vector_store"
  25.         embeddingDimension: 1024
  26.         indexType: IVF_FLAT
  27.         metricType: COSINE
  28.         initialize-schema: true
  29.     chat:
  30.       memory:
  31.         repository:
  32.           jdbc:
  33.             initialize-schema: never
复制代码
 
 
项目参考:
https://github.com/git-syl/spring-ai-rag-toolscall-demo/

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册