Repochat ist ein interaktives Chatbot -Projekt, mit dem Gespräche über Github -Repositories unter Verwendung eines großen Sprachmodells (LLM) führen sollen. Es ermöglicht Benutzern, aussagekräftige Diskussionen zu führen, Fragen zu stellen und relevante Informationen aus einem GitHub -Repository abzurufen. Dieses Readme bietet Schritt-für-Schritt-Anweisungen zum Einrichten und Verwenden von Repochat auf Ihrem lokalen Computer.
Repochat bietet 2 Zweige mit unterschiedlichen Funktionen:
Der Hauptzweig von Repochat ist so konzipiert, dass er vollständig auf Ihrer lokalen Maschine läuft. Diese Version von Repochat beruht nicht auf externe API -Aufrufe und bietet eine bessere Kontrolle über Ihre Daten. Wenn Sie nach einer in sich geschlossenen Lösung suchen, ist der main der richtige Weg.
Der Cloud -Zweig von Repochat basiert hauptsächlich auf API -Aufrufen externer Dienste für Modellinferenz und Speicher. Es ist gut geeignet für diejenigen, die eine Cloud-basierte Lösung bevorzugen und keine lokale Umgebung einrichten möchten.
Um mit Repochat zu beginnen, müssen Sie folgende Installationsschritte befolgen:
Erstellen Sie eine virtuelle Umgebung und aktivieren Sie Ihre lokale Maschine, um die Abhängigkeiten des Projekts zu isolieren.
python -m venv repochat-env
source repochat-env/bin/activateKlonen Sie das Repochat -Repository und navigieren Sie zum Projektverzeichnis.
git clone https://github.com/pnkvalavala/repochat.git
cd repochat Installieren Sie die erforderlichen Python -Pakete mit pip .
pip install -r requirements.txtInstallieren Sie die Bibliothek "Lama-CPP-Python".
pip install llama-cpp-python llama.cpp unterstützt mehrere BLAS -Backends für eine schnellere Verarbeitung.
Setzen Sie vor der Installation die Umgebungsvariablen LLAMA_BLAS and LLAMA_BLAS_VENDOR , um mit OpenBLAs zu installieren, vor Installation die Umgebungsvariablen von LLAMA und Lama_Blas_Vendor:
CMAKE_ARGS= " -DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS " pip install llama-cpp-python Setzen Sie die Variable LLAMA_CUBLAS=1 Umgebungsvariable vor der Installation, um mit Cublas zu installieren:
CMAKE_ARGS= " -DLLAMA_CUBLAS=on " pip install llama-cpp-python Um mit Clblast zu installieren, legen Sie die Umgebungsvariable LLAMA_CLBLAST=1 vor der Installation fest:
CMAKE_ARGS= " -DLLAMA_CLBLAST=on " pip install llama-cpp-python Setzen Sie vor der Installation die LLAMA_METAL=on Environment Variable auf Umgebungsvariable, um mit Metall (MPS) zu installieren:
CMAKE_ARGS= " -DLLAMA_METAL=on " pip install llama-cpp-python Um mit HIPBLAs / ROCM -Unterstützung für AMD -Karten zu installieren, stellen Sie vor der Installation die LLAMA_HIPBLAS=on Umgebungsvariable fest:
CMAKE_ARGS= " -DLLAMA_HIPBLAS=on " pip install llama-cpp-pythonUm mehr über die Beschleunigung der Hardware zu erfahren
Erstellen Sie einen Ordner namens models im Projektverzeichnis.
Laden Sie ein Sprachmodell aus dem Umarmungs -Face -Modell Hub basierend auf den Funktionen Ihres Computers herunter. Es wird empfohlen, das folgende Modell als Ausgangspunkt zu verwenden: TheBloke/Codellama-7b-Guf. Wenn Sie ein Modell quantisieren möchten, das auf Umarmungsgesicht verfügbar ist, befolgen Sie die Anweisungen von llama.cpp
Kopieren Sie die heruntergeladene Modelldatei in den Ordner "Modelle".
Öffnen Sie die Datei models.py -Datei im Ordner "Repochat" und setzen Sie den Speicherort der Modelldatei in der Funktion code_llama() wie folgt fest:
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 Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus, um die Repochat -Anwendung zu starten:
streamlit run app.pySie können jetzt den GitHub -Repository -Link eingeben.
Repochat holt alle Dateien aus dem Repository ab und speichert sie in einem Ordner mit dem Namen "Cloned_repo". Anschließend wird die Dateien in kleinere Stücke aufgeteilt und ihre Einbetten mithilfe des Satztransformatorenmodells, insbesondere Satztransformatoren/All-MPNET-Base-V2, berechnet.
Die Einbettungen werden lokal in einer Vektor -Datenbank namens Chromadb gespeichert.
Mit Repochat können Sie Gespräche mit dem Chatbot führen. Sie können Fragen stellen oder Eingaben bereitstellen, und der Chatbot ruft relevante Dokumente aus der Vektor -Datenbank ab. Anschließend wird Ihre Eingabe zusammen mit den abgerufenen Dokumenten an das Sprachmodell zum Generieren von Antworten gesendet. Standardmäßig habe ich das Modell auf "Codellama-7b-Instruction" festgelegt, aber Sie können es basierend auf der Geschwindigkeit Ihres Computers ändern, und Sie können sogar das 13B-quantisierte Modell für Antworten ausprobieren.
Der Chatbot behält den Speicher während der Konversation bei, um kontextbezogene Antworten zu liefern.
Wenn Sie auf Probleme stoßen, Vorschläge haben oder einen Fehler melden möchten, besuchen Sie bitte den Abschnitt "Ausgaben" des Repochat -Repositorys und erstellen Sie ein neues Problem. Geben Sie detaillierte Informationen zu dem Problem an, mit dem Sie konfrontiert sind, und ich werde mein Bestes tun, um Ihnen zu helfen.
Dieses Projekt ist unter der Apache -Lizenz 2.0 lizenziert. Weitere Informationen finden Sie in der Lizenzdatei. Bitte beachten Sie, dass dies eine Änderung gegenüber der vorherigen Lizenz ist und es wichtig ist, die Bedingungen der neuen Lizenz zu überprüfen.