コードベースを意味的に検索するか、CLIからチャットしてください。ベクトルデータベースを最新のコードの変更に最新の状態に保ちます。データリークなしの100%ローカルサポート。
Langchain、Treesitter、Sente-Transformers、Instructor-Medding、Faiss、Lama.cpp、Ollama、Resirelitで構築されています。
注記
コードが十分に文書化されている場合、より良い結果が得られます。コードドキュメントの生成については、doc-comments-aiを検討する場合があります。
codeqai search

codeqai chat

codeqai sync
codeqai app

注記
最初に使用すると、リポジトリは、しばらく時間がかかる可能性のある構成された埋め込みモデルでインデックス付けされます。
pipxを使用して孤立した環境にインストールします。
pipx install codeqai
PIPXがPython> = 3.9、<3.12を使用していることを確認してください。
PITHONバージョンをPIPXで明示的に指定するには、目的のPythonバージョン( pyenv shell 3.XXなど)をアクティブにし、以下をインストールします。
pipx install codeqai --python $(which python)
PIPXを使用してまだ問題に直面している場合は、Sourceから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リポジトリ全体にTreeSitterが解析され、ドキュメントですべてのメソッドを抽出し、文化変換者、インストラクター - 埋め込み、またはOpenaiのText-rembedding-Ada-002を使用してローカルFAISSベクターデータベースに保存されます。
ベクトルデータベースはシステム上のファイルに保存され、さらに使用した後、後で再びロードされます。その後、埋め込みモデルに基づいてコードベースでセマンティック検索を行うことができます。
CodeBaseをローカルにチャットするには、llama.cppまたはOllamaが使用されます。目的のモデルを指定します。リポジトリの最近の変更の同期のために、Gitは各ファイルのハッシュをベクトルIDとともにキャッシュに保存します。ベクトルデータベースを最新のGIT状態と同期する場合、キャッシュされたコミットハッシュは、リポジトリ内の各ファイルの現在のgitハッシュと比較されます。 GITコミットハッシュが異なる場合、関連するベクトルはデータベースから削除され、ベクトル埋め込みを再現した後に再度挿入されます。 llama.cppを使用すると、指定されたモデルを事前にシステムで利用できる必要があります。 Ollamaを使用して、目的のモデルを備えたOllamaコンテナは、ポート11434で事前にローカルで実行する必要があります。また、オープンライまたは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形式でなければなりません。
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でcodeqaiをインストールしているようにしてください。 Python 3.12にはまだ利用可能なFAISSホイールはありません。
機能が欠落している場合やバグに直面している場合は、問題を開くか、PRを上げることをheしないでください。どんな種類の貢献も高く評価されています!
開発モードでプロジェクトを構築して実行するには、 conda 、 conda-lock 、またはpoetryをインストールしてください。
conda Runを使用することにより:
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
開発環境内でcodeqai chatを実行します。
poetry run codeqai chat
テストを実行します:
poetry run pytest -s -vv