乐于分享
好东西不私藏

公司技术文档堆了几千篇?我用 AI 3 天搭了个智能搜索,同事都问我要链接

公司技术文档堆了几千篇?我用 AI 3 天搭了个智能搜索,同事都问我要链接

公司技术文档堆了几千篇?我用 AI 3 天搭了个智能搜索,同事都问我要链接


01. 痛点:找文档比写代码还难

去年接手了一个老项目,项目文档分散在各种地方:

  • Confluence 上几百篇 Wiki
  • 飞书云文档几百个
  • 本地电脑各种 Word、PDF、Markdown
  • 代码仓库里的 README

每次新人问问题,我就要在这些文档里翻半天。

最离谱的是,有个同事问"用户认证接口怎么调用?",我找了 2 小时才发现,文档早在 3 个月前更新过了,但我还在看旧版本。

找人问太慢,自己搜太累,这日子没法过了。


02. 灵感:AI 搜索应该能解决这个问题

某天刷技术文章,看到个词:RAG(Retrieval-Augmented Generation,检索增强生成)

简单说就是:

  • 先在文档库里找相关内容
  • 把找到的内容喂给 AI
  • AI 根据这些内容生成回答

这不就是我想要的吗?

不用自己翻文档,AI 帮我找,AI 帮我答!


03. 动手:3 天搭了个智能知识库

核心思路

用户提问 → 文档向量化检索 → 找到相关片段 → AI 生成回答

技术栈

  • 后端:Spring Boot 3.x + Java 17
  • AI 能力:OpenAI API(智谱 AI、通义千问都支持)
  • 文档处理:Apache POI(Word)+ PDFBox(PDF)
  • 前端:Thymeleaf + Bootstrap 5

关键实现

1. 文档切片

长文档直接向量化太贵,所以要切片:

// 每段 500 字符,重叠 50 字符List<String> chunks = textChunker.chunk(content);

2. 向量化存储

把每段文字转换成向量:

// 使用 Embedding APIDouble[] embedding = embeddingService.embed(chunkText);

3. 语义检索

用户提问时,先把问题向量化,然后计算和文档片段的相似度:

// 计算余弦相似度double similarity = VectorSimilarity.cosineSimilarity(    queryVector, chunk.getEmbedding());

4. RAG 问答

把最相关的 Top-5 片段拼起来,扔给 AI:

String context = "上下文:片段1 + 片段2 + ...";String answer = ai.generateAnswer(question, context);

就这么简单!


04. 效果:同事都问我要链接

上线第一天,就炸了。

场景一:新人入职

以前:HR 给新人一堆文档,新人翻了一周还在问基础问题 现在:新人问"怎么配置数据库?",AI 10 秒给出答案+代码示例

场景二:代码评审

以前:Reviewer 要翻各种文档确认代码规范 现在:AI 告诉你"这个接口要求幂等性,当前实现有问题"

场景三:技术分享

以前:每次分享都要翻半天资料 现在:AI 直接给出相关文档+最佳实践

效率提升不是一点点。


05. 成本:几乎为 0

  • 开发时间:3 天(包括测试)
  • API 成本:每问答一次约 0.001 元
  • 服务器成本:一台 2 核 4G 的 VPS 足够

比招一个专职文档管理员便宜太多了。


06. 代码开源了

完整项目已经上传到 Gitee,包括:

  • 完整的前后端代码
  • 详细的部署文档
  • 一键启动脚本
  • 支持多种 AI 模型(OpenAI、智谱、通义千问)

仓库地址

👉 https://gitee.com/smile-smily/rag-knowledge-base

快速开始

git clone git@gitee.com:smile-smily/rag-knowledge-base.gitcd rag-knowledge-base# 修改 application.yml,配置你的 API Key# ./start.sh 启动

5 分钟就能跑起来。


07. 适合谁用

  • 技术团队:API 文档、技术规范、最佳实践
  • 产品团队:需求文档、设计规范
  • 客服团队:常见问题、解决方案
  • HR 团队:规章制度、福利政策

任何有知识库需求的团队,都能用。


08. 后续优化

这只是 MVP 版本,还有很多可以做的:

  • [ ] 集成专业向量数据库(Milvus)
  • [ ] 支持图片、表格检索
  • [ ] 添加用户权限管理
  • [ ] 支持多语言检索
  • [ ] 接入企业 IM(飞书、钉钉)

如果你感兴趣,欢迎一起来完善。


最后

如果你也在为找文档发愁,不妨试试这个方案。

代码已经开源,拿去用就好。

有问题可以提 Issue,或者直接在下面评论交流。


推荐阅读:

  • 《7年Java程序员实测:ChatGPT API怎么接入?完整代码》
  • 《用OpenAI API写一个AI写作助手,2小时搞定》
  • 《作为Java程序员,我再也不写重复业务逻辑了!靠AI Agent一周干完一个月的活》

👉 项目地址:https://gitee.com/smile-smily/rag-knowledge-base


如果觉得有用,点个「在看」支持下~