通過語義搜索您的代碼庫或與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