Repochat - это интерактивный проект чат -бота, предназначенный для разговоров о репозиториях GitHub с использованием большой языковой модели (LLM). Это позволяет пользователям вести значимые обсуждения, задавать вопросы и получать соответствующую информацию из репозитория GitHub. Этот README предоставляет пошаговые инструкции для настройки и использования RepoChat на вашей локальной машине.
Repochat предлагает 2 ветви с различными функциями:
Основная ветвь репохата предназначена для полного запуска на вашей местной машине. Эта версия Repochat не полагается на внешние вызовы API и предлагает больший контроль над вашими данными. Если вы ищете автономное решение, main ветвь-это путь.
Облачная ветвь репохата в первую очередь опирается на вызовы API на внешние службы для модели и хранения. Он хорошо подходит для тех, кто предпочитает облачное решение и не хочет создавать локальную среду.
Чтобы начать с RepoChat, вам нужно выполнить эти шаги установки:
Создайте виртуальную среду и активируйте на местной машине, чтобы изолировать зависимости проекта.
python -m venv repochat-env
source repochat-env/bin/activateКлонировать реподшат и перейти к каталогу проекта.
git clone https://github.com/pnkvalavala/repochat.git
cd repochat Установите необходимые пакеты Python с помощью pip .
pip install -r requirements.txtУстановите библиотеку «Llama-Cpp-Python».
pip install llama-cpp-python llama.cpp поддерживает несколько бэкэндов BLA для более быстрой обработки.
Чтобы установить с OpenBlas, установите переменные среды LLAMA_BLAS and LLAMA_BLAS_VENDOR перед установкой:
CMAKE_ARGS= " -DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS " pip install llama-cpp-python Чтобы установить с Cublas, установите переменную среды LLAMA_CUBLAS=1 перед установкой:
CMAKE_ARGS= " -DLLAMA_CUBLAS=on " pip install llama-cpp-python Чтобы установить с помощью CLBLAST, установите переменную среды LLAMA_CLBLAST=1 перед установкой:
CMAKE_ARGS= " -DLLAMA_CLBLAST=on " pip install llama-cpp-python Чтобы установить с помощью металла (MPS), установите LLAMA_METAL=on переменную среды перед установкой:
CMAKE_ARGS= " -DLLAMA_METAL=on " pip install llama-cpp-python Чтобы установить с поддержкой Hipblas / ROCM для карт AMD, установите LLAMA_HIPBLAS=on переменную среды перед установкой:
CMAKE_ARGS= " -DLLAMA_HIPBLAS=on " pip install llama-cpp-pythonЧтобы узнать больше об ускорении аппаратного обеспечения, обратитесь к официальному чтению от Llama-Cpp-Python
Создайте папку с именем models в каталоге Project.
Загрузите языковую модель из модели обнимающего лица на основе возможностей вашего компьютера. Рекомендуется использовать следующую модель в качестве отправной точки: TheBloke/Codellama-7b-Gguf. Если вы хотите квантовать модель, доступную для обнимающего лица, следуйте инструкциям от llama.cpp
Скопируйте загруженный файл модели в папку «Модели».
Откройте файл models.py , расположенный в папке "Repochat", и установите местоположение файла модели в функции code_llama() следующим образом:
def code_llama ():
callbackmanager = CallbackManager ([ StreamingStdOutCallbackHandler ()])
llm = LlamaCpp (
model_path = "./models/codellama-7b.Q4_K_M.gguf" ,
n_ctx = 2048 ,
max_tokens = 200 ,
n_gpu_layers = 1 ,
f16_kv = True ,
callback_manager = callbackmanager ,
verbose = True ,
use_mlock = True
)
return llm Откройте свой терминал и запустите следующую команду, чтобы запустить приложение Repochat:
streamlit run app.pyТеперь вы можете ввести ссылку на репозиторий GitHub.
RepoChat принесет все файлы из репозитория и сохранит их в папке с именем "clone_repo". Затем он разделит файлы на более мелкие куски и вычисляет их встроенные модели, используя модель трансформаторов предложений, в частности, преобразователи предложения/All-MPnet-Base-V2.
Встроения хранятся локально в векторной базе данных под названием ChromADB.
Repochat позволяет вам вести разговоры с чатботом. Вы можете задать вопросы или предоставить вклад, а чат -бот будет получать соответствующие документы из векторной базы данных. Затем он отправляет ваш ввод вместе с полученными документами в языковую модель для генерации ответов. По умолчанию я установил модель на «Codellama-7B-Instruct», но вы можете изменить ее на основе скорости вашего компьютера, и вы даже можете попробовать квантованную модель 13B для ответов.
Чатбот сохраняет память во время разговора, чтобы предоставить контекстуально релевантные ответы.
Если вы столкнетесь с какими -либо проблемами, имеете предложения или хотите сообщить об ошибке, посетите раздел «Проблемы репоксата» и создайте новую проблему. Предоставьте подробную информацию о проблеме, с которой вы сталкиваетесь, и я сделаю все возможное, чтобы помочь вам.
Этот проект лицензирован по лицензии Apache 2.0. Для получения подробной информации см. Файл лицензии. Обратите внимание, что это изменение по сравнению с предыдущей лицензией, и важно пересмотреть условия новой лицензии.