Cari basis kode Anda secara semantik atau mengobrol dengannya dari CLI. Pertahankan database vektor tetap mutakhir untuk perubahan kode terbaru. 100% dukungan lokal tanpa dataleaks.
Dibangun dengan Langchain, Treesitter, Transformers Kalimat, Instruktur-Embedding, Faiss, Lama.cpp, Ollama, Streamlit.
Catatan
Akan ada hasil yang lebih baik jika kode didokumentasikan dengan baik. Anda dapat mempertimbangkan Doc-Comments-AI untuk pembuatan dokumentasi kode.
codeqai search

codeqai chat

codeqai sync
codeqai app

Catatan
Pada penggunaan pertama, repositori akan diindeks dengan model embeddings yang dikonfigurasi yang mungkin memakan waktu cukup lama.
Pasang di lingkungan yang terisolasi dengan pipx :
pipx install codeqai
Pastikan PIPX menggunakan Python> = 3.9, <3.12.
Untuk menentukan versi Python secara eksplisit dengan PIPX, aktifkan versi Python yang diinginkan (misalnya dengan pyenv shell 3.XX ) dan instal dengan:
pipx install codeqai --python $(which python)
Jika Anda masih menghadapi masalah menggunakan PIPX, Anda juga dapat menginstal langsung dari sumber melalui PYPI dengan:
pip install codeqai
Namun, disarankan untuk menggunakan PIPX untuk mendapatkan manfaat dari lingkungan yang terisolasi untuk ketergantungan.
Kunjungi bagian pemecahan masalah untuk solusi masalah yang diketahui selama instalasi.
Catatan
Beberapa paket tidak diinstal secara default. Pada penggunaan pertama diminta untuk menginstal faiss-cpu atau faiss-gpu . FAISS-GPU direkomendasikan jika perangkat keras mendukung CUDA 7.5+. Jika embeddings lokal dan LLM digunakan, itu akan diminta lebih lanjut untuk menginstal transformator kalimat, instruktur atau llama.cpp.
Pada penggunaan pertama atau dengan berlari
codeqai configure
Proses konfigurasi dimulai, di mana embeddings dan LLM dapat dipilih.
Penting
Jika Anda ingin mengubah model embeddings dalam konfigurasi nanti, hapus file yang di -cache di ~/.cache/codeqai . Setelah itu file toko vektor dibuat lagi dengan model embeddings yang dikonfigurasi terbaru. Ini diperlukan karena pencarian kesamaan tidak berfungsi jika model berbeda.
Jika model jarak jauh digunakan, diperlukan variabel lingkungan berikut. Jika variabel lingkungan yang diperlukan sudah ditetapkan, mereka akan digunakan, jika tidak, Anda akan diminta untuk memasukkannya yang kemudian disimpan di ~/.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 " Catatan
Untuk mengubah variabel lingkungan nanti, perbarui ~/.config/codeqai/.env secara manual.
Seluruh repo GIT diuraikan dengan pohon untuk mengekstrak semua metode dengan dokumentasi dan disimpan ke database vektor FAISS lokal dengan pentripsforman kalimat, instruktur-embeddings atau openai-embedding-002.
Database vektor disimpan ke file di sistem Anda dan akan dimuat lagi lagi setelah penggunaan lebih lanjut. Setelah itu dimungkinkan untuk melakukan pencarian semantik pada basis kode berdasarkan model embeddings.
Untuk mengobrol dengan codebase llama.cpp atau ollama codebase digunakan dengan menentukan model yang diinginkan. Untuk sinkronisasi perubahan terbaru dalam repositori, hash GIT melakukan setiap file bersama dengan ID vektor disimpan ke cache. Saat menyinkronkan database vektor dengan keadaan GIT terbaru, hash komit cache dibandingkan dengan hash git saat ini dari setiap file dalam repositori. Jika hash komit git berbeda, vektor terkait dihapus dari database dan dimasukkan lagi setelah menciptakan kembali embeddings vektor. Menggunakan llama.cpp Model yang ditentukan harus tersedia pada sistem terlebih dahulu. Menggunakan Ollama The Ollama Container dengan model yang diinginkan harus berjalan secara lokal terlebih dahulu di port 11434. Juga OpenAi atau Azure-Openai dapat digunakan untuk model obrolan jarak jauh.
Instal huggingface-cli dan unduh model yang Anda inginkan dari Hub Model. Misalnya
huggingface-cli download TheBloke/CodeLlama-13B-Python-GGUF codellama-13b-python.Q5_K_M.gguf
Akan mengunduh model codellama-13b-python.Q5_K_M . Setelah unduhan selesai, jalur absolut dari file .gguf file dicetak ke konsol.
Penting
llama.cpp Model yang kompatibel harus dalam format .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
Pastikan kompiler karat diinstal pada sistem Anda dari sini.
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
Pastikan Codeqai diinstal dengan Python <3.12. Belum ada roda faiss yang tersedia untuk Python 3.12.
Jika Anda kehilangan fitur atau menghadapi bug, jangan ragu untuk membuka masalah atau mengangkat PR. Segala jenis kontribusi sangat dihargai!
Untuk membangun dan menjalankan proyek dalam mode pengembangan, pastikan untuk memiliki conda , conda-lock atau poetry yang diinstal.
Dengan menggunakan conda run:
conda env create -f environment.yml -n codeqai
atau dengan menggunakan conda-lock run:
conda-lock install --name codeqai conda-<YOUR_PLATFORM>.lock
Aktifkan lingkungan dan pasang dependensi dengan:
conda activate codeqai && poetry install
Dengan menggunakan poetry lari:
poetry install && poetry shell
Jalankan misalnya codeqai chat dalam lingkungan pengembangan dengan:
poetry run codeqai chat
Jalankan tes dengan:
poetry run pytest -s -vv