Repochat est un projet de chatbot interactif conçu pour engager des conversations sur les référentiels GitHub à l'aide d'un modèle grand langage (LLM). Il permet aux utilisateurs d'avoir des discussions significatives, de poser des questions et de récupérer des informations pertinentes à partir d'un référentiel GitHub. Cette lecture fournit des instructions étape par étape pour configurer et utiliser Repochat sur votre machine locale.
Repochat propose 2 branches avec des fonctionnalités distinctes:
La branche principale de Repochat est conçue pour fonctionner entièrement sur votre machine locale. Cette version de Repochat ne s'appuie pas sur les appels API externes et offre un plus grand contrôle sur vos données. Si vous cherchez une solution autonome, la branche main est la voie à suivre.
La branche cloud de Repochat repose principalement sur les appels d'API aux services externes pour l'inférence et le stockage du modèle. Il est bien adapté à ceux qui préfèrent une solution basée sur le cloud et ne veulent pas configurer un environnement local.
Pour commencer avec Repochat, vous devrez suivre ces étapes d'installation:
Créez un environnement virtuel et activez sur votre machine locale pour isoler les dépendances du projet.
python -m venv repochat-env
source repochat-env/bin/activateClone le référentiel Repochat et accédez au répertoire du projet.
git clone https://github.com/pnkvalavala/repochat.git
cd repochat Installez les packages Python requis à l'aide de pip .
pip install -r requirements.txtInstallez la bibliothèque "Llama-Cpp-Python".
pip install llama-cpp-python llama.cpp prend en charge plusieurs backends BLAS pour un traitement plus rapide.
Pour installer avec OpenBlas, définissez les variables d'environnement LLAMA_BLAS and LLAMA_BLAS_VENDOR avant l'installation:
CMAKE_ARGS= " -DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS " pip install llama-cpp-python Pour installer avec Cublas, définissez la variable d'environnement LLAMA_CUBLAS=1 avant d'installer:
CMAKE_ARGS= " -DLLAMA_CUBLAS=on " pip install llama-cpp-python Pour installer avec CLBLAST, définissez la variable d'environnement LLAMA_CLBLAST=1 avant d'installer:
CMAKE_ARGS= " -DLLAMA_CLBLAST=on " pip install llama-cpp-python Pour installer avec du métal (MPS), définissez la variable LLAMA_METAL=on l'environnement avant l'installation:
CMAKE_ARGS= " -DLLAMA_METAL=on " pip install llama-cpp-python Pour installer avec la prise en charge hipblas / rocm pour les cartes AMD, définissez la variable LLAMA_HIPBLAS=on l'environnement avant l'installation:
CMAKE_ARGS= " -DLLAMA_HIPBLAS=on " pip install llama-cpp-pythonPour en savoir plus sur l'accélération matérielle, reportez-vous à la lecture officielle de Llama-Cpp-Python
Créez un dossier nommé models dans le répertoire du projet.
Téléchargez un modèle linguistique à partir du HUB Face Model Hub en fonction des capacités de votre ordinateur. Il est recommandé d'utiliser le modèle suivant comme point de départ: TheBloke / Codellama-7b-Gguf. Si vous souhaitez quantifier un modèle disponible sur la face étreinte, suivez les instructions de Llama.cpp
Copiez le fichier de modèle téléchargé dans le dossier "Modèles".
Ouvrez le fichier models.py situé dans le dossier "Rebochat" et définissez l'emplacement du fichier de modèle dans la fonction code_llama() comme suit:
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 Ouvrez votre terminal et exécutez la commande suivante pour démarrer l'application Repochat:
streamlit run app.pyVous pouvez désormais saisir le lien du référentiel GitHub.
Repochat va récupérer tous les fichiers du référentiel et les stocker dans un dossier nommé "CLONED_REPO". Il divisera ensuite les fichiers en morceaux plus petits et calculera leurs incorporations à l'aide du modèle de transformateurs de phrase, spécifiquement des transformateurs de phrases / All-MPNET-Base-V2.
Les incorporations sont stockées localement dans une base de données vectorielle appelée ChromAdB.
Repochat vous permet d'engager des conversations avec le chatbot. Vous pouvez poser des questions ou fournir des commentaires, et le chatbot récupérera les documents pertinents de la base de données vectorielle. Il envoie ensuite votre contribution, ainsi que les documents récupérés, au modèle de langue pour générer des réponses. Par défaut, j'ai défini le modèle sur «Codellama-7b-instruct», mais vous pouvez le modifier en fonction de la vitesse de votre ordinateur, et vous pouvez même essayer le modèle quantifié 13B pour les réponses.
Le chatbot conserve la mémoire pendant la conversation pour fournir des réponses contextuellement pertinentes.
Si vous rencontrez des problèmes, ayez des suggestions ou souhaitez signaler un bogue, veuillez visiter la section des problèmes du référentiel Repochat et créer un nouveau problème. Fournissez des informations détaillées sur le problème auquel vous êtes confronté, et je ferai de mon mieux pour vous aider.
Ce projet est concédé sous licence Apache 2.0. Pour plus de détails, consultez le fichier de licence. Veuillez noter qu'il s'agit d'un changement par rapport à la licence précédente, et il est important d'examiner les termes et conditions de la nouvelle licence.