Dies ist ein Rast-Backend für einen Konversationsagenten, der es ermöglicht, Dokumentationen einzubetten, sie mithilfe semantischer Suche nach einer QA zu suchen, basierend auf Dokumenten und Dokumentenverarbeitung mit großsprachigen Modellen durchzuführen.
Im Moment überarbeite ich nach Langgraph, deshalb werden nicht alle Versionen auf Main mit allen Anbietern zusammenarbeiten. Ich werde die Anbieter in den nächsten Wochen aktualisieren. Bitte verwenden Sie die Veröffentlichungen, um eine funktionierende Version zu erhalten.
Wenn Sie ein Aleph Alpha-Backend verwenden möchten, würde ich mein anderes Backend empfehlen: https://github.com/mfmezger/aleph-alpha-rag.
Um das komplette System mit Docker auszuführen, verwenden Sie diesen Befehl:
git clone https://github.com/mfmezger/conversational-agent-langchain.git
cd conversational-agent-langchain
Erstellen Sie eine .env-Datei aus der .Env-Template und setzen Sie den QDrant-API-Schlüssel. Für Tests werden es einfach auf Test gesetzt. QDRANT_API_KEY = "Test"
Dann starten Sie das System mit
docker compose up -d
Gehen Sie dann zu http://127.0.0.1:8001/docs oder http://127.0.0.1:8001/redoc, um die API -Dokumentation anzuzeigen.
Frontend: Localhost: 8501 QDrant Dashboard: Localhost: 6333/Dashboard
Dieses Projekt ist ein Konversationsagent, der Aleph Alpha und OpenAI große Sprachmodelle verwendet, um Antworten auf Benutzeranfragen zu generieren. Der Agent enthält auch eine Vektordatenbank und eine mit Fastapi erstellte REST -API.
Merkmale
Die semantische Suche ist eine erweiterte Suchtechnik, die darauf abzielt, die Bedeutung und den Kontext der Abfrage eines Benutzers zu verstehen, anstatt die Schlüsselwörter zu übereinstimmen. Es beinhaltet die natürliche Sprachverarbeitung (NLP) und die Algorithmen für maschinelles Lernen zur Analyse und Interpretation von Benutzerabsichten, Synonymen, Beziehungen zwischen Wörtern und der Struktur des Inhalts. Durch die Betrachtung dieser Faktoren verbessert die semantische Suche die Genauigkeit und Relevanz von Suchergebnissen und bietet eine intuitivere und personalisiertere Benutzererfahrung.
Langchain ist eine Bibliothek für die Verarbeitung natürlicher Sprache und maschinelles Lernen. Fastapi ist ein modernes, schnelles (leistungsstarkes) Web-Framework zum Aufbau von APIs mit Python 3.7+ basierend auf Standard-Tipps von Python-Typen. Eine Vectordatabase ist eine Datenbank, die Vektoren speichert, die für Ähnlichkeitssuche und andere maschinelle Lernaufgaben verwendet werden kann.
Zwei Möglichkeiten zur Verwaltung Ihrer API -Schlüssel sind verfügbar. Der einfachste Ansatz besteht darin, das API -Token in der Anfrage als Token zu senden. Eine andere Möglichkeit besteht darin, eine .env -Datei zu erstellen und das API -Token dort hinzuzufügen. Wenn Sie OpenAI von Azure oder Openai direkt verwenden, müssen Sie die richtigen Parameter in der Datei .env festlegen.
Unter Linux oder Mac müssen Sie Ihre /etc /hosts -Datei an die folgende Zeile einstellen:
127.0.0.1 qdrant
Installieren Sie zuerst Python -Abhängigkeiten:
Sie müssen Roggen installieren, wenn Sie es verwenden möchten, um die Datei der Anforderungen zu synchronisieren. Roggeninstallation.
rye sync
# or if you do not want to use rye
pip install -r requirements.lock
Starten Sie das komplette System mit:
docker compose up -d
So führen Sie die QDrant -Datenbank Local aus.
docker compose up qdrant
Verwenden Sie diesen Befehl im Stammverzeichnis, um den Backend auszuführen:
poetry run uvicorn agent.api:app --reload
Um die Tests auszuführen, können Sie diesen Befehl verwenden:
poetry run coverage run -m pytest -o log_cli=true -vvv tests
Verwenden Sie diesen Befehl im Root -Verzeichnis, um den Frontend auszuführen:
poetry run streamlit run gui.py --theme.base= " dark "
Mypy Rag-Explicit-Package-Basen
QDrant Dashboard ist unter http://127.0.0.1:6333/dashboard erhältlich. Dort müssen Sie den API -Schlüssel eingeben.
Um die QDrant -API zu verwenden, müssen Sie die richtigen Parameter in der Datei .env festlegen. QDRANT_API_KEY ist der API -Schlüssel für die QDrant -API. Und Sie müssen es in der qdrant.yaml -Datei im Konfigurationsordner ändern.
Wenn Sie eine große Datenmenge einnehmen möchten, empfehlen Sie, die Skripte in Agent/Einnahme zu verwenden.
Um die API zu testen, würde ich Bruno empfehlen. Die API -Anfragen werden im Ordner Convagentbruno gespeichert.