Files
SuperBizAgent-java/mvp/issues/rag-spring-ai-vectorstore-migration.md
T

2.1 KiB
Raw Blame History

RAG 迁移到 Spring AI VectorStore 检索抽象

状态:待规划
严重程度:高
发现时间:2026-07-05
范围:向量检索、Milvus 接入、RAG 框架化改造


背景

当前系统的向量检索链路主要由项目手写实现:

  • VectorIndexService 负责向量化和写入 Milvus。
  • VectorSearchService 直接使用 Milvus SDK 查询。
  • LookupKnowledgeTool 自己组织 L0/L1 检索结果。

这能满足 MVP 打通链路,但继续扩展 RAG 能力时,容易把项目变成自研搜索框架。

项目当前已引入 Spring AI / Spring AI Alibaba 依赖,可以考虑迁移到 Spring AI 的 VectorStore、VectorStoreDocumentRetriever 等标准抽象。


问题

当前手写 Milvus 检索存在几个成本:

  1. topK、similarity threshold、metadata filter 等逻辑分散在业务代码中。
  2. 检索结果结构和 Spring AI RAG Advisor 生态不兼容。
  3. 后续接入 query transformer、post processor、advisor 时需要重复适配。
  4. Milvus SDK 直接调用让业务层承担了过多基础设施细节。

改造方向

优先引入 Spring AI 的 Milvus VectorStore 能力:

当前:
VectorSearchService -> Milvus SDK

目标:
LookupKnowledgeTool / RAG Service
  -> VectorStoreDocumentRetriever
  -> Spring AI VectorStore
  -> Milvus

业务层保留:

  • lookup_knowledge 工具入口
  • tool_invocation 记录
  • sessionId / category / domain 等业务上下文

底层检索交给框架:

  • topK
  • similarity threshold
  • metadata filter
  • vector search options

验收标准

  • VectorSearchService 不再直接散落 Milvus 查询细节,至少封装到 Spring AI VectorStore 适配层。
  • 支持按 category 或其他 metadata filter 检索。
  • 检索结果仍能记录到 tool_invocation。
  • 现有 AIOps / Chat 检索链路行为保持兼容。

相关文件

  • pom.xml
  • src/main/java/com/superbiz/agent/service/VectorSearchService.java
  • src/main/java/com/superbiz/agent/service/VectorIndexService.java
  • src/main/java/com/superbiz/agent/tool/LookupKnowledgeTool.java
  • src/main/resources/application.yml