Repochat es un proyecto de chatbot interactivo diseñado para participar en conversaciones sobre repositorios de GitHub utilizando un modelo de lenguaje grande (LLM). Permite a los usuarios tener discusiones significativas, hacer preguntas y recuperar información relevante de un repositorio de GitHub. Este ReadMe proporciona instrucciones paso a paso para configurar y usar Repochat en su máquina local.
Repochat ofrece 2 ramas con funcionalidades distintas:
La rama principal de Repochat está diseñada para funcionar completamente en su máquina local. Esta versión de Repochat no depende de llamadas de API externas y ofrece un mayor control sobre sus datos. Si está buscando una solución autónoma, la rama main es el camino a seguir.
La rama en la nube de Repochat se basa principalmente en llamadas API a servicios externos para inferencia y almacenamiento del modelo. Es adecuado para aquellos que prefieren una solución basada en la nube y no quieren configurar un entorno local.
Para comenzar con Repochat, deberá seguir estos pasos de instalación:
Cree un entorno virtual y active en su máquina local para aislar las dependencias del proyecto.
python -m venv repochat-env
source repochat-env/bin/activateClonar el repositorio de repotes y navegar al directorio del proyecto.
git clone https://github.com/pnkvalavala/repochat.git
cd repochat Instale los paquetes de Python requeridos con pip .
pip install -r requirements.txtInstale la biblioteca "Llama-CPP-Python".
pip install llama-cpp-python llama.cpp admite múltiples backends BLA para un procesamiento más rápido.
Para instalar con OpenBlas, establezca las variables de entorno LLAMA_BLAS and LLAMA_BLAS_VENDOR antes de instalar:
CMAKE_ARGS= " -DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS " pip install llama-cpp-python Para instalar con CUBLAS, establezca la variable de entorno LLAMA_CUBLAS=1 antes de instalar:
CMAKE_ARGS= " -DLLAMA_CUBLAS=on " pip install llama-cpp-python Para instalar con clblast, establezca la variable de entorno LLAMA_CLBLAST=1 antes de instalar:
CMAKE_ARGS= " -DLLAMA_CLBLAST=on " pip install llama-cpp-python Para instalar con metal (MPS), establezca la variable de entorno LLAMA_METAL=on antes de instalar:
CMAKE_ARGS= " -DLLAMA_METAL=on " pip install llama-cpp-python Para instalar con soporte HIPBLAS / ROCM para tarjetas AMD, establezca la variable LLAMA_HIPBLAS=on el entorno antes de instalar:
CMAKE_ARGS= " -DLLAMA_HIPBLAS=on " pip install llama-cpp-pythonPara conocer más sobre la aceleración de hardware, consulte Readme oficial de Llama-CPP-Python
Cree una carpeta con nombre models en el directorio del proyecto.
Descargue un modelo de idioma del Hub Model Face Bash Bash the Capacilies de su computadora. Se recomienda usar el siguiente modelo como punto de partida: TheBloke/Codellama-7b-GGUF. Si desea cuantizar un modelo disponible en la cara de abrazo, siga las instrucciones de Llama.cpp
Copie el archivo de modelo descargado a la carpeta "Modelos".
Abra el archivo models.py ubicado en la carpeta "Repoquat" y establezca la ubicación del archivo de modelo en la función code_llama() de la siguiente manera:
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 Abra su terminal y ejecute el siguiente comando para iniciar la aplicación RepoChat:
streamlit run app.pyAhora puede ingresar el enlace del repositorio de GitHub.
Repochat obtendrá todos los archivos del repositorio y los almacenará en una carpeta llamada "Cloned_repo". Luego dividirá los archivos en trozos más pequeños y calculará sus incrustaciones utilizando el modelo de transformadores de oraciones, específicamente oraciones-transformadores/All-MPNET-Base-V2.
Los incrustaciones se almacenan localmente en una base de datos vectorial llamada ChromAdB.
Repochat le permite participar en conversaciones con el chatbot. Puede hacer preguntas o proporcionar información, y el chatBot recuperará documentos relevantes de la base de datos de vector. Luego envía su entrada, junto con los documentos recuperados, al modelo de lenguaje para generar respuestas. Por defecto, he configurado el modelo en "Codellama-7B-Instructo", pero puede cambiarlo en función de la velocidad de su computadora, e incluso puede probar el modelo cuantificado 13B para respuestas.
El chatbot retiene la memoria durante la conversación para proporcionar respuestas contextualmente relevantes.
Si se encuentra con algún problema, tiene sugerencias o desea informar un error, visite la sección de problemas del repositorio de Repochat y cree un nuevo problema. Proporcione información detallada sobre el problema que enfrenta, y haré todo lo posible para ayudarlo.
Este proyecto tiene licencia bajo la licencia Apache 2.0. Para más detalles, consulte el archivo de licencia. Tenga en cuenta que este es un cambio de la licencia anterior, y es importante revisar los términos y condiciones de la nueva licencia.