一、项目背景

个人商助慧 AI 知识库原有 RAG 链路强依赖 LangChain4j 框架,存在明显痛点:

  1. 框架封装过黑盒,底层逻辑不可见,排错调试困难;
  2. Milvus 插入、JSON 元数据适配、向量维度匹配等隐性坑无法自定义干预;
  3. 第三方框架绑定度高,后续扩展模型、向量库、文本分片能力受限制;
  4. 业务工程冗余配置过多,无法复用沉淀通用 AI 基础设施。

基于现有多台私有服务器混合云架构,决定彻底弃用 LangChain4j,自研 4 套 Spring Boot Starter,重构从爬虫分片、向量化、Milvus 向量入库、相似度召回到 AI 仿写的全链路,实现全程白盒可控、业务零侵入、能力可复用。

二、自研四大 Starter 体系架构

1. laoxing-base-utils

基础通用工具 Starter,全局公共底座,封装常量、通用工具、异常处理、公共依赖版本统一管理,为其他三个 Starter 提供底层支撑。

2. laoxing-text-starter

专业文本处理 Starter,核心能力:文章解析、文本清洗、自定义规则分片、段落拆分。专供爬虫服务接入,实现爬取文章自动分片,落地 MySQL 分片表。

3. laoxing-ollama-starter

Ollama 模型自研封装 Starter:

  • 自动配置绑定 Ollama 地址、端口、模型名称;
  • 封装嵌入模型调用接口,统一生成固定维度向量;
  • 封装大模型对话、Prompt 调用能力;
  • 脱离 LangChain4j 原生调用,完全自主可控。

4. laoxing-milvus-starter

Milvus 原生 SDK 自定义封装 Starter:

  • yml 配置自动绑定地址、端口、集合名、向量维度;
  • 封装新增、向量检索、条件查询基础方法;
  • 内置字段校验、行数对齐、JSON 类型适配封装;
  • 自动初始化客户端,业务工程零配置开箱即用。

三、核心改造动作

  1. 项目移除所有 LangChain4j 相关依赖、配置、工具类;
  2. 业务工程接入自研四大 Starter,重构 yml 配置对齐自定义配置前缀;
  3. 全部改用原生 Milvus SDK + 自研 Starter裸写向量入库、相似度检索逻辑;
  4. 保留原有业务逻辑架构,仅底层技术底座替换,上层业务无改动。

四、全链路落地实操 & 踩坑解决

1. 爬虫 + 文本分片链路

爬虫服务依赖 laoxing-text-starter,完成:

  • 文章爬取入库主表 ai_article;
  • 自动规则拆分 chunk 分片;
  • 分片数据落地 ai_article_chunk MySQL 表;
  • 为后续向量化、向量入库做数据准备。

2. 嵌入向量生成链路

通过 laoxing-ollama-starter 调用嵌入模型,统一生成 1024 维标准向量,适配 Milvus 集合维度定义。

3. Milvus 向量入库攻坚 & 避坑

自研 Starter 封装原生插入逻辑,逐个解决生产级深坑:

  • 缺失 id 主键字段报错,补齐主键自动生成;
  • 多字段行数不匹配,统一单条数据各元素数量对齐;
  • metadata 为 Milvus JSON 类型,依次踩坑 String、Map、Hutool JSONObject;
  • 最终适配 Gson JsonObject 通过类型校验,稳定入库;
  • 入库成功后自动回写 milvus_id 到 MySQL 分片表,双向数据绑定;
  • Attu 可视化工具校验集合数据、向量完整落库。

4. RAG 检索 + AI 仿写全链路验证

  1. 用户问题 → 调用嵌入模型生成提问向量;
  2. 调用 milvus-starter 相似度检索,按分数阈值召回 TopN 相关分片;
  3. 拼接固定人设提示词 + 参考分片资料;
  4. 调用 Ollama 大模型,自动仿写生成合规技术文章;
  5. 生成风格、结构、篇幅完全符合预设规则,可直接发布 CSDN。

五、架构改造核心价值

  1. 去第三方黑盒:彻底摆脱 LangChain4j 束缚,全链路代码自主掌控、可定制可排错;
  2. 能力下沉复用:AI 文本处理、Ollama 模型、Milvus 向量库全部沉淀为 Starter,新项目直接引入即用;
  3. 链路解耦分层:工具、文本、模型、向量库各司其职,架构清晰易维护;
  4. 业务轻量化:业务工程无需关心底层客户端初始化、复杂配置,只关注业务逻辑;
  5. 可扩展可迁移:后续切换模型、新增向量库、改造分片规则,仅改动 Starter 层,不影响上层业务。

六、后续规划路线

  1. 轻量版 Lobster 个人 Agent 项目直接复用这套自研 Starter 底座;
  2. 统一规范嵌入模型、向量维度、Milvus 集合命名规范;
  3. 封装 RAG 通用门面类,简化 controller 层调用逻辑;
  4. 沉淀 Milvus 常用分页检索、条件过滤、批量删除工具方法到 Starter;
  5. 基于现有底座扩展知识库管理、历史对话、模型切换功能。

七、总结

本次完成弃用 LangChain4j + 自研四大 Starter 重构 RAG 全链路,从爬虫分片、向量化、Milvus 入库、相似度召回到 AI 仿写完整跑通。

全程采用原生 SDK 自研封装,避开第三方框架黑盒坑,解决 Milvus 字段、行数、JSON 类型三大实战问题,把 AI 知识库底层基础设施完全握在自己手里,同时沉淀可复用技术组件,为后续个人 Agent、多项目 AI 业务复用打下标准化底座。

本文是《技术底稿》系列第 30 篇,记录自研 Starter 替代 LangChain4j、落地全可控 RAG 底座完整实战,步骤、踩坑、架构可直接复刻复用。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐