Ai-assistant-Schwanz
Projektbeschreibung
Dieses Projekt zeigt, wie verschiedene Komponenten aus den Bibliotheken langchain_community und langchain_core verwendet werden, um Dokumente aus einer PostgreSQL -Datenbank mit aktivierter PGVector zu laden, zu transformieren, einbetten und abzurufen. Die Dokumente werden aus URLs bezogen, in Text umgewandelt, in überschaubare Stücke aufgeteilt und als Vektoren in der Datenbank zum Abrufen gespeichert. Das Projekt zeigt auch, wie man eine Kette von Lappen (Abruf-ausgerüstete Generation) erstellt, die das Ollama-Sprachmodell verwendet, um Fragen basierend auf dem aus dem Vektor Store abgerufenen Kontext zu beantworten.
Voraussetzungen
- Python 3.7+
- PostgreSQL mit aktivierter PGVector
- Docker (optional, um PostgreSQL mit PGVector auszuführen)
Installation
- Klonen Sie das Repository:
git clone https://github.com/Atomic-man007/AI-assistant-ollama.git
- Erstellen Sie eine virtuelle Umgebung und aktivieren Sie sie:
python -m venv venv
source venv/bin/activate # On Windows, use `venvScriptsactivate`
- Installieren Sie die erforderlichen Pakete:
pip install -r requirements.txt
- Richten Sie PostgreSQL mit aktivierter PGVector ein. Sie können Docker verwenden, um eine PostgreSQL -Instanz mit PGVector schnell zu verbessern:
docker run --name pgvector -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 ankane/pgvector
- Legen Sie die
DB_URL -Umgebungsvariable fest, um auf Ihre PostgreSQL -Instanz hinzuweisen:
export DB_URL=postgresql://postgres:mysecretpassword@localhost:5432/postgres
Verwendung
Aktualisieren Sie die urls -Liste in der main mit den URLs der Dokumente, die Sie verarbeiten möchten.
Führen Sie das Skript aus:
Komponenten
- AsynChTMlloader : Asynchron lädt HTML -Inhalte aus den bereitgestellten URLs.
- HTML2TextTransformer : Verwandelt HTML -Dokumente in Klartext.
- Ollamaembeding : Einbettet die Textdokumente in den Vektorraum.
- PGVector : Eine Vektorspeicherimplementierung mit PostgreSQL mit PGVector -Erweiterung.
- RecursivecharactertextSPlitter : Teilen Textdokumente in Stücke angegebener Größe.
- ChatpromptTemplate : Erstellt eine Chat -Eingabeaufforderung Vorlage zum Generieren von Antworten.
- RunnablePass Through : Ein Durchgangsrunning für Kettenkomponenten.
- Ollama : Ein Sprachmodell, das verwendet wird, um Antworten basierend auf dem abgerufenen Kontext zu generieren.
Beispiel
Das Skript zeigt die folgenden Schritte:
- Laden Sie HTML -Dokumente aus den bereitgestellten URLs.
- Verwandeln Sie HTML -Dokumente in Klartext.
- Teilen Sie die Textdokumente in kleinere Stücke auf.
- Einbetten Sie die Textbrocken in den Vektorraum ein und speichern Sie sie in der PostgreSQL -Datenbank.
- Relevante Kontext aus dem Vektor Store abrufen.
- Verwenden Sie den abgerufenen Kontext, um eine Antwort auf eine Frage mit dem Ollama -Sprachmodell zu generieren.
Lizenz
Dieses Projekt ist unter der MIT -Lizenz lizenziert. Weitere Informationen finden Sie in der Lizenzdatei.
Anerkennung
-
langchain_community und langchain_core -Bibliotheken für die Bereitstellung der in diesem Projekt verwendeten Komponenten. - PostgreSQL und PGVector für die Implementierung der Vektorspeicher.
- Ollama für das Sprachmodell, das zum Generieren von Antworten verwendet wird.