Поиск по кодовой базе семантически или общайтесь с ним из CLI. Держите векторную базу данных сверхбыстей в курсе последних изменений кода. 100% локальная поддержка без каких -либо данных.
Построенный из Langchain, Treestert, Transformers, инструктора, Faiss, Lama.cpp, Ollama, Streamlit.
Примечание
Будут лучшие результаты, если код хорошо задокументирован. Вы можете рассмотреть Doc-Comments-AI для генерации документации кода.
codeqai search

codeqai chat

codeqai sync
codeqai app

Примечание
При первом использовании репозиторий будет проиндексирован с настроенной моделью Enterdings, которая может занять некоторое время.
Установите в изолированной среде с pipx :
pipx install codeqai
Убедитесь, что PIPX использует Python> = 3,9, <3.12.
Чтобы явно указать версию Python с помощью PIPX, активируйте нужную версию Python (например, с pyenv shell 3.XX ) и установите с:
pipx install codeqai --python $(which python)
Если вы все еще сталкиваетесь с проблемами, используя PIPX, вы также можете установить непосредственно из Source через PYPI с:
pip install codeqai
Тем не менее, рекомендуется использовать PIPX для извлечения выгоды из изолированных сред для зависимостей.
Посетите раздел по устранению неполадок для решений известных проблем во время установки.
Примечание
Некоторые пакеты не установлены по умолчанию. Сначала используется его установить faiss-cpu или faiss-gpu . FAISS-GPU рекомендуется, если оборудование поддерживает CUDA 7.5+. Если используются локальные встраивания и LLMS, они будут далее установить преобразователи, инструктор или Llama.cpp.
С первого использования или бега
codeqai configure
Инициируется процесс конфигурации, где могут быть выбраны вставки и LLMS.
Важный
Если вы хотите изменить модель Enterdings в конфигурации позже, удалите кэшированные файлы в ~/.cache/codeqai . После этого файлы Vector Store снова создаются с недавней настроенной моделью Enterdings. Это необходимо, поскольку поиск сходства не работает, если модели различаются.
Если используются удаленные модели, требуются следующие переменные среды. Если требуемые переменные среды уже установлены, они будут использоваться, в противном случае вам будет предложено ввести их, которые затем хранятся в ~/.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 Repo проанализирована Treestert для извлечения всех методов с документами и сохранена в локальную базу данных вектора FAISS с преобразователями предложений, инструкторами-эмбеддингс или текстовым эмблдинг-ADA-002.
Векторная база данных сохраняется в файле в вашей системе и будет загружена позже после дальнейшего использования. После этого можно сделать семантический поиск на кодовой базе на основе модели Entgddings.
Поговорить с кодовой базой локально llama.cpp или Ollama используется путем указания желаемой модели. Для синхронизации недавних изменений в репозитории хэши коммита GIT каждого файла вместе с векторными идентификаторами сохраняются в кэше. При синхронизации векторной базы данных с последним состоянием GIT кэшированные хэши коммита сравниваются с текущим хэшем GIT каждого файла в репозитории. Если хэши коммита GIT различаются, связанные векторы удаляются из базы данных и снова вставляются после воссоздания векторных вторжений. Используя llama.cpp Указанная модель должна быть доступна в системе заранее. Используя Ollama, контейнер Ollama с желаемой моделью должен работать локально на порте 11434. Также 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 .
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
Обязательно установил CodeQai с Python <3.12. Колесо Faiss еще не доступно для Python 3.12.
Если вам не хватает функции или столкнетесь с ошибкой, не стесняйтесь открыть проблему или поднять пиар. Любой вид вклада высоко ценится!
Чтобы создать и запустить проект в режиме разработки, убедитесь, что установлены conda , conda-lock или poetry .
С помощью conda Run:
conda env create -f environment.yml -n codeqai
или с помощью conda-lock Run:
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