codeqai
让代码仓库开口说话:本地语义搜索 + 对话 + 微调数据集导出,三位一体的代码智能工具
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让代码仓库开口说话:本地语义搜索 + 对话 + 微调数据集导出,三位一体的代码智能工具
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你是否有过这样的经历:接手一个陌生的代码仓库,光是弄清楚某个函数的用途、追溯它被调用的链路,就要花上大半天时间?Codeqai 正是为解决这个痛点而生的工具——它让你的代码仓库活起来,可以对话、可以语义搜索、还能自动生成微调数据集。
Codeqai 由独立开发者 fynnfluegge 创建,Apache-2.0 开源许可。项目站在多个成熟开源工具的肩膀上:LangChain 提供 LLM 调用抽象、FAISS 提供向量检索性能、Tree-sitter 负责精准的代码结构解析、Sentence-Transformers 驱动本地 Embedding 生成。作者的另一个项目 doc-comments.ai 专门用于自动生成代码文档,两者形成互补的生态。

图1:项目作者 fynnfluegge 的 GitHub 头像
codeqai search)基于语义向量匹配,在整仓库范围内搜索代码。不同于传统 grep 按字符串匹配,Codeqai 能理解搜索意图——例如输入「处理用户认证的函数」,它会返回相关函数定义,即使代码中没有出现「用户认证」这几个字。底层原理是将代码切分为函数/方法粒度,每段代码通过 Embedding 模型转为向量存入 FAISS 索引,搜索时将查询也转为向量做余弦相似度检索。
codeqai chat)在语义搜索基础上接入了 LLM Chain(ConversationalRetrievalChain),支持多轮对话追问。可以询问某个函数的设计意图、某个 bug 的修复方案、代码的依赖关系。工具在后台用 ConversationSummaryMemory 维护对话历史,确保上下文连贯。
codeqai dataset)这是 Codeqai 最有技术深度的功能——它从仓库代码中自动提取函数级代码片段,配合 LLM 将其转换为指令微调数据集,支持四种格式:
再加上可选的「蒸馏模式」(--distillation doc),可以让大模型对代码片段进行解释说明,生成更高质量的训练样本。这个功能对于想在私有代码上微调 CodeLLama 等模型的团队极具价值。
codeqai sync)监听 git 变化,只对新增或修改的代码块重建向量索引,不用全量重索引,大幅降低维护成本。
codeqai app)提供图形化界面,集成了搜索和聊天功能,配置项通过 Web 表单填写,降低非技术用户的使用门槛。

图2:项目托管在 GitHub,采用 Apache-2.0 许可证
Codeqai 的架构是典型的 RAG(检索增强生成)模式,但针对代码场景做了专门优化。
代码处理流水线:
代码文件经过 Tree-sitter 解析后提取函数/方法节点,再由 RecursiveCharacterTextSplitter 切分为小块,通过 Sentence-Transformers 生成向量存入 FAISS 索引。查询时将用户输入也转为向量,通过 FAISS MMR(最大边际相关性)检索相关代码片段,拼接进 LLM Chain 生成回答。
核心依赖:
| 依赖 | 用途 |
|---|---|
langchain | LLM 调用抽象、Chain 编排 |
faiss | 高性能向量相似度检索 |
tree-sitter | 精准编程语言解析(支持 C/C++/Go/C# 等) |
sentence-transformers | 本地 Embedding 生成 |
streamlit | Web 可视化界面 |
poetry | 依赖管理与打包 |
LLM 支持:OpenAI GPT 系列、Azure OpenAI、Anthropic Claude、本地 Ollama/Llama.cpp,可按需切换。Embedding 支持:OpenAI Ada-002、Azure OpenAI Embeddings、本地 Sentence-Transformers(all-MiniLM-L6-v2 / all-mpnet-base-v2),完全支持离线运行。
安装方式:
pip install codeqai
# 或从源码:
git clone https://github.com/fynnfluegge/codeqai
cd codeqai && poetry install
首次使用:运行 codeqai search 或 codeqai chat 时,工具会在后台自动索引当前 git 仓库(首次需下载 Embedding 模型,耗时较长),索引结果缓存到本地 FAISS 文件,后续查询秒级响应。
Python 版本限制:项目依赖 poetry,要求 Python 3.9-3.11 范围(不包括 3.9.7 小版本,也不支持 3.12),这是需要注意的坑点。
GPU 需求:使用云端 API(OpenAI/Anthropic)时无需 GPU;如启用本地 LLM(Llama.cpp/Ollama)则需要 GPU 加速。
缺少容器化:目前没有 Dockerfile 或 docker-compose,对习惯容器部署的用户不够友好,需要自行编写 Dockerfile。
Codeqai 代表了一个重要趋势:代码智能从通用向专精进化。RAG+代码的组合让 AI 能真正「读懂」代码而非「背诵」代码片段,结合其微调数据集生成能力,开发者可以在私有代码上训练自己的代码助手,这对代码安全要求高的企业(金融、医疗、政务)尤其有意义。
项目 Stars 接近 500、GitHub Actions CI/CD 完整、文档清晰,是值得关注的高质量个人开源项目。