通过语义搜索您的代码库或与CLI聊天。将矢量数据库超快保持最新,以确保最新的代码更改。 100%本地支持,无需任何数据。
由Langchain,Treeitter,句子转换器,讲师插入,Faiss,Lama.cpp,Ollama,Sleatlit建造。
笔记
如果代码有充分的记录,将会有更好的结果。您可以考虑用于生成代码文档的文档-AI。
codeqai search

codeqai chat

codeqai sync
codeqai app

笔记
首先使用时,将使用配置的嵌入模型索引,该模型可能需要一段时间。
使用pipx安装在孤立的环境中:
pipx install codeqai
确保PIPX使用Python> = 3.9,<3.12。
要使用PIPX明确指定Python版本,请激活所需的Python版本(例如使用pyenv shell 3.XX ),并使用以下方式安装:
pipx install codeqai --python $(which python)
如果您仍在使用PIPX面临问题,也可以通过以下方式直接从源通过PYPI安装:
pip install codeqai
但是,建议使用PIPX从依赖性中受益。
请访问安装过程中已知问题解决方案的故障排除部分。
笔记
默认情况下,某些软件包不会安装。首先,要求它安装faiss-cpu或faiss-gpu 。如果硬件支持CUDA 7.5+,建议使用Faiss-GPU。如果使用本地嵌入式和LLM,则将进一步要求安装句子转换器,讲师或Llama.cpp。
首先使用或通过运行
codeqai configure
启动配置过程,可以选择嵌入和LLM。
重要的
如果要在稍后更改配置中的嵌入模型,请在~/.cache/codeqai中删除缓存的文件。之后,使用最新配置的嵌入式模型再次创建矢量存储文件。这是必要的,因为如果模型有所不同,则相似性搜索不起作用。
如果使用远程模型,则需要以下环境变量。如果已经设置了所需的环境变量,将使用它们,否则将提示您输入它们,然后将其存储在~/.config/codeqai/.env中。
export OPENAI_API_KEY = " your OpenAI api key " export OPENAI_API_TYPE = " azure "
export AZURE_OPENAI_ENDPOINT = " https://<your-endpoint>.openai.azure.com/ "
export OPENAI_API_KEY = " your Azure OpenAI api key "
export OPENAI_API_VERSION = " 2023-05-15 " export ANTHROPIC_API_KEY= " your Anthropic api key " 笔记
要更改环境变量,请手动更新~/.config/codeqai/.env 。
整个git储备金都用TreeTitter解析,以提取所有带有文档的方法,并保存在本地的Faiss矢量数据库中,其中包括句子转换器,讲师 - Embeddings或Openai的Text-embedding-adding-002。
向量数据库保存到系统上的文件,并在进一步使用后再次加载。之后,可以根据嵌入模型在代码库上进行语义搜索。
通过指定所需模型,使用与局部Llama.cpp或Ollama聊天。为了同步存储库的最新变化,每个文件的GIT提交散布以及向量ID都保存到缓存。将矢量数据库与最新的GIT状态同步时,将缓存的提交哈希与存储库中每个文件的当前git哈希进行了比较。如果GIT提交哈希相差,则将相关的向量从数据库中删除并在重新创建向量嵌入后再次插入。使用Llama.cpp,需要提前在系统上提供指定的模型。使用Ollama,需要在端口11434上提前在本地运行的Ollama容器。OpenAI或Azure-Openai也可用于远程聊天模型。
安装huggingface-cli并从模型中心下载所需的型号。例如
huggingface-cli download TheBloke/CodeLlama-13B-Python-GGUF codellama-13b-python.Q5_K_M.gguf
将下载codellama-13b-python.Q5_K_M型号。下载完成后,将模型.gguf的绝对路径打印到控制台。
重要的
llama.cpp兼容的模型必须以.gguf格式为.GGUF。
pipx安装期间 pip failed to build package: tiktoken
Some possibly relevant errors from pip install:
error: subprocess-exited-with-error
error: can't find Rust compiler
确保从此处将Rust编译器安装在系统上。
faiss期间 × Building wheel for faiss-cpu (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [12 lines of output]
running bdist_wheel
...
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for faiss-cpu
Failed to build faiss-cpu
ERROR: Could not build wheels for faiss-cpu, which is required to install pyproject.toml-based projects
确保安装python <3.12。 Python 3.12目前尚无faiss轮。
如果您缺少功能或面对错误,请毫不犹豫地打开问题或提出PR。任何形式的贡献都将受到高度赞赏!
要在开发模式下构建和运行该项目,请确保安装了conda , conda-lock或poetry 。
通过使用conda运行:
conda env create -f environment.yml -n codeqai
或使用conda-lock运行:
conda-lock install --name codeqai conda-<YOUR_PLATFORM>.lock
激活环境并使用以下方式安装依赖项:
conda activate codeqai && poetry install
通过使用poetry运行:
poetry install && poetry shell
在开发环境中运行EG codeqai chat :
poetry run codeqai chat
运行测试:
poetry run pytest -s -vv