Heim >Backend-Entwicklung >Python-Tutorial >Experimentieren Sie mit der Chainlit AI-Schnittstelle mit RAG auf Upsun

Experimentieren Sie mit der Chainlit AI-Schnittstelle mit RAG auf Upsun

Patricia Arquette
Patricia ArquetteOriginal
2025-01-21 00:14:14373Durchsuche

Chainlit: Ein skalierbares Konversations-KI-Framework

Chainlit ist ein asynchrones Open-Source-Python-Framework, das für die Erstellung robuster und skalierbarer Konversations-KI-Anwendungen entwickelt wurde. Es bietet eine flexible Grundlage, die es Entwicklern ermöglicht, externe APIs, benutzerdefinierte Logik und lokale Modelle nahtlos zu integrieren.

Experiment with Chainlit AI interface with RAG on Upsun

Dieses Tutorial demonstriert zwei Retrieval Augmented Generation (RAG)-Implementierungen in Chainlit:

  1. Nutzung von OpenAI-Assistenten mit hochgeladenen Dokumenten.
  2. Verwendung von llama_index mit einem lokalen Dokumentordner.

Lokales Chainlit-Setup

Virtuelle Umgebung

Erstellen Sie eine virtuelle Umgebung:

<code class="language-bash">mkdir chainlit && cd chainlit
python3 -m venv venv
source venv/bin/activate</code>

Abhängigkeiten installieren

Erforderliche Pakete installieren und Abhängigkeiten speichern:

<code class="language-bash">pip install chainlit
pip install llama_index  # For implementation #2
pip install openai
pip freeze > requirements.txt</code>

Chainlit testen

Chainlit starten:

<code class="language-bash">chainlit hello</code>

Zugriff auf den Platzhalter unter https://www.php.cn/link/2674cea93e3214abce13e072a2dc2ca5

Experiment with Chainlit AI interface with RAG on Upsun

Upsun-Bereitstellung

Git-Initialisierung

Git-Repository initialisieren:

<code class="language-bash">git init .</code>

Erstellen Sie eine .gitignore Datei:

<code>.env
database/**
data/**
storage/**
.chainlit
venv
__pycache__</code>

Upsun-Projekterstellung

Erstellen Sie ein Upsun-Projekt mit der CLI (folgen Sie den Anweisungen). Upsun konfiguriert das Remote-Repository automatisch.

Konfiguration

Beispiel für eine Upsun-Konfiguration für Chainlit:

<code class="language-yaml">applications:
  chainlit:
    source:
      root: "/"
    type: "python:3.11"
    mounts:
      "/database":
        source: "storage"
        source_path: "database"
      ".files":
        source: "storage"
        source_path: "files"
      "__pycache__":
        source: "storage"
        source_path: "pycache"
      ".chainlit":
        source: "storage"
        source_path: ".chainlit"
    web:
      commands:
        start: "chainlit run app.py --port $PORT --host 0.0.0.0"
      upstream:
        socket_family: tcp
      locations:
        "/":
          passthru: true
        "/public":
          passthru: true
    build:
      flavor: none
    hooks:
      build: |
        set -eux
        pip install -r requirements.txt
      deploy: |
        set -eux
      # post_deploy: |
routes:
  "https://{default}/":
    type: upstream
    upstream: "chainlit:http"
  "https://www.{default}":
    type: redirect
    to: "https://{default}/"</code>

Legen Sie die Umgebungsvariable OPENAI_API_KEY über Upsun CLI fest:

<code class="language-bash">upsun variable:create env:OPENAI_API_KEY --value=sk-proj[...]</code>

Bereitstellung

Festschreiben und bereitstellen:

<code class="language-bash">git add .
git commit -m "First chainlit example"
upsun push</code>

Überprüfen Sie den Bereitstellungsstatus. Bei erfolgreicher Bereitstellung wird angezeigt, dass Chainlit in Ihrer Hauptumgebung ausgeführt wird.

Experiment with Chainlit AI interface with RAG on Upsun

Implementierung 1: OpenAI-Assistent und hochgeladene Dateien

Diese Implementierung verwendet einen OpenAI-Assistenten, um hochgeladene Dokumente zu verarbeiten.

Assistentenerstellung

Erstellen Sie einen neuen OpenAI-Assistenten auf der OpenAI-Plattform. Legen Sie Systemanweisungen fest, wählen Sie ein Modell (mit Textantwortformat) und halten Sie die Temperatur niedrig (z. B. 0,10). Kopieren Sie die Assistenten-ID (asst_[xxx]) und legen Sie sie als Umgebungsvariable fest:

<code class="language-bash">upsun variable:create env:OPENAI_ASSISTANT_ID --value=asst_[...]</code>

Inhalt hochladen

Laden Sie Ihre Dokumente (Markdown bevorzugt) in den Assistenten hoch. OpenAI erstellt einen Vektorspeicher.

Experiment with Chainlit AI interface with RAG on Upsun

Experiment with Chainlit AI interface with RAG on Upsun

Assistant Logic (app.py)

Ersetzen Sie app.py den Inhalt durch den bereitgestellten Code. Wichtige Teile: @cl.on_chat_start erstellt einen neuen OpenAI-Thread und @cl.on_message sendet Benutzernachrichten an den Thread und streamt die Antwort.

Übernehmen Sie die Änderungen und stellen Sie sie bereit. Testen Sie den Assistenten.

Experiment with Chainlit AI interface with RAG on Upsun

Implementierung 2: OpenAI llama_index

Diese Implementierung verwendet llama_index für das lokale Wissensmanagement und OpenAI für die Antwortgenerierung.

Zweigerstellung

Neuen Zweig erstellen:

<code class="language-bash">mkdir chainlit && cd chainlit
python3 -m venv venv
source venv/bin/activate</code>

Ordnererstellung und Bereitstellung

Erstellen Sie die Ordner data und storage. Fügen Sie Halterungen zur Upsun-Konfiguration hinzu.

app.py-Update

Aktualisieren Sie app.py mit dem bereitgestellten llama_index-Code. Dieser Code lädt Dokumente, erstellt einen VectorStoreIndex und verwendet ihn, um Anfragen über OpenAI zu beantworten.

Stellen Sie die neue Umgebung bereit und laden Sie den Ordner data hoch. Testen Sie die Anwendung.

Experiment with Chainlit AI interface with RAG on Upsun

Bonus: Authentifizierung

Authentifizierung mithilfe einer SQLite-Datenbank hinzufügen.

Datenbank-Setup

Erstellen Sie einen database-Ordner und fügen Sie einen Mount zur Upsun-Konfiguration hinzu. Erstellen Sie eine Umgebungsvariable für den Datenbankpfad:

<code class="language-bash">pip install chainlit
pip install llama_index  # For implementation #2
pip install openai
pip freeze > requirements.txt</code>

Authentifizierungslogik (app.py)

Fügen Sie mit app.py Authentifizierungslogik zu @cl.password_auth_callback hinzu. Dadurch wird ein Anmeldeformular hinzugefügt.

Erstellen Sie ein Skript, um gehashte Passwörter zu generieren. Fügen Sie Benutzer zur Datenbank hinzu (mithilfe von gehashten Passwörtern). Stellen Sie die Authentifizierung bereit und testen Sie die Anmeldung.

Experiment with Chainlit AI interface with RAG on Upsun

Fazit

Dieses Tutorial demonstrierte die Bereitstellung einer Chainlit-Anwendung auf Upsun mit zwei RAG-Implementierungen und Authentifizierung. Die flexible Architektur ermöglicht verschiedene Anpassungen und Integrationen.

Das obige ist der detaillierte Inhalt vonExperimentieren Sie mit der Chainlit AI-Schnittstelle mit RAG auf Upsun. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Kopierer vs. AusstecherNächster Artikel:Kopierer vs. Ausstecher