完整开源方案:本地 embedding 避免 API 成本,MongoDB 向量搜索加速检索,Groq Llama 3.3 生成答案。工程可直接复用 chunk 策略和向量数据库选型。
作为一个全职开发者在处理越来越大型的代码库时,我一直遇到同样的问题:无论是接手一个不熟悉的仓库,还是回顾自己以前的项目,想要回答"认证逻辑在哪里处理?"或"这个函数实际是做什么的?"这样简单的问题,都意味着要花上几个小时手动阅读文件。
于是我开发了 Chat with your Codebase——一个基于 RAG 的 MERN 应用,让你可以用自然语言提问任何代码库的问题,并获得准确、上下文相关的回答。
这个应用围绕经典的检索增强生成(RAG)流水线构建:
Chunking & Embedding——将代码库拆分为有意义的块(函数、类、文件),并使用本地 embedding 模型转换为向量嵌入,避免在这一步产生不必要的 API 调用费用。
Vector Search——这些嵌入向量存储在 MongoDB 的向量搜索能力中进行查询,使应用能够快速找到任何问题最相关的代码片段。
Generation——将检索到的上下文传递给 Groq 的 Llama 3.3,生成基于实际代码的自然语言回答,而非凭空臆测。
Frontend/Backend: MERN(MongoDB、Express、React、Node.js)
Embeddings: 本地 embedding 模型
Vector Search: MongoDB Atlas Vector Search
LLM: Groq 的 Llama 3.3(因速度和成本效益优于更大的托管模型而被选用)
通过这个项目,我学到了很多 RAG 系统的实践层面——分块策略如何直接影响回答质量,为什么本地 embedding 在成本控制上可以是明智的权衡,以及当 LLM 基于检索到的上下文而非通用知识回答时,prompt 工程有多重要。
你可以在这里查看在线演示:Chat with your Codebase
代码在 GitHub 上开源。
希望收到任何做过类似项目的人的反馈,或者关于大型仓库更好分块策略的想法!