项目介绍:codeqai
codeqai 项目旨在为开发者提供一种全新的方式与代码进行互动。它不仅能够对代码库进行语义搜索,还允许用户通过命令行界面(CLI)与代码进行类似聊天的互动。这个工具确保始终保持向量数据库的高效更新,反映最新的代码变更,并完全在本地运行,确保数据隐私无泄漏。
功能亮点
- 🔎 语义代码搜索:支持深入的语义搜索功能,帮助开发者快速找到所需的代码片段。
- 💬 代码聊天功能:类似聊天机器人,用户可以通过CLI与代码库进行沉浸式对话。
- ⚙️ 简易同步:支持向量存储与最新代码变更的便捷同步。
- 💻 完全本地化:在本地完成所有嵌入和语言模型的处理,使用了例如
sentence-transformers
、instructor-embeddings
和llama.cpp
等。 - 🌐 外部服务支持:支持 OpenAI、Azure OpenAI 和 Anthropic 等平台。
- 🌳 Treesitter 集成:提升代码解析和处理能力。
如果代码注释详细,使用这款工具的效果会更佳。此外,用户还可以借助 doc-comments-ai 生成代码文档。
使用指南
启动语义搜索
codeqai search
启动聊天对话
codeqai chat
同步向量存储与当前 Git 版本
codeqai sync
启动 Streamlit 应用
codeqai app
系统要求
- Python 版本需在 3.9 至 3.12 之间。
安装指南
建议在独立环境中使用 pipx
安装:
pipx install codeqai
确保 pipx
使用的 Python 版本在 3.9 至 3.12 之间。用户还可以通过源代码直接从 PyPI 安装:
pip install codeqai
首次使用时,系统可能会要求安装 faiss-cpu
或 faiss-gpu
,如果设备支持 CUDA 7.5+,建议使用 faiss-gpu。
配置指南
首次使用或运行以下命令以进行配置:
codeqai configure
在此过程中,用户可以选择所需的嵌入模型和语言模型。如需改变模型配置,应删除 ~/.cache/codeqai
中的缓存文件,然后按照新配置重新创建向量存储文件。
支持的编程语言
- Python
- Typescript
- Javascript
- Java
- Rust
- Kotlin
- Go
- C++
- C
- C#
- Ruby
工作原理简述
利用 Treesitter,codeqai 能解析整个 Git 仓库,将所有方法和文档存储到本地的 FAISS 向量数据库中。用户可以基于各种嵌入模型对代码库进行语义搜索,并使用 llama.cpp
或 Ollama 本地与代码库聊天。为了便于代码更新的同步,系统会缓存每个文件的 Git 提交哈希,并在需要时更新向量数据库。
常见问题及故障排除
用户可以访问项目主页的 Troubleshooting 部分,查找安装过程中的已知问题解决方案。
参与贡献
codeqai 鼓励开发者贡献代码或报告 Bug。开发者可以安装 conda
、conda-lock
或 poetry
参与项目开发。
启动开发环境的步骤如下:
conda env create -f environment.yml -n codeqai
激活环境并安装依赖:
conda activate codeqai && poetry install
通过 poetry
启动环境:
poetry install && poetry shell
在开发环境中运行项目:
poetry run codeqai chat
运行测试:
poetry run pytest -s -vv
总体来说,codeqai 提供了一种直观且高效的方式来与代码进行交互,是开发者进行代码管理和优化的强大工具。