Zum Hauptinhalt springen
Background

Entwicklung eines evidenzbasierten RAG‑Chatbots auf Kubernetes

Verwenden Sie Python, LangGraph, PostgreSQL und LKE, um komplexe Airline-Richtlinien in kontextbezogene Antworten mit Quellenangaben zu verwandeln.

Sehen Sie sich die Entwicklung eines RAG‑Chatbots an

Verfolgen Sie die vollständige Entwicklung: von der Bereitstellung der Kubernetes-Infrastruktur über die Indizierung von Richtliniendokumenten bis hin zum Test evidenzbasierter Antworten.

Bevor Sie beginnen

Beschaffen bzw. installieren Sie die nötigen Anmeldedaten und Befehlszeilentools, um die Infrastruktur bereitzustellen, Dokumente hochzuladen und die Anwendung bereitzustellen.

  • Akamai Cloud-Konto und API‑Token
  • OpenAI-API‑Schlüssel
  • Lokale Terraform-Installation
  • Lokale kubectl-Installation
  • Lokale s3cmd-Installation
  • Zugriff auf GitHub-Repository
  • SSH‑Schlüsselpaar für den Bereitstellungsschlüssel

Entwicklung eines RAG‑Chatbots in vier Phasen

Stellen Sie die Infrastruktur bereit, laden Sie die Knowledge Base hoch, stellen Sie die Anwendung bereit und validieren Sie den fertigen Chatbot.

Klonen Sie das Projekt:

git clone https://github.com/akamai-developers/rag-langgraph-k8s-quickstart.git
cd rag-langgraph-k8s-quickstart

Kopieren Sie die Terraform-Beispieldatei und konfigurieren Sie sie mit Ihrem Akamai Cloud-API‑Token und den bevorzugten Ressourceneinstellungen:

cp terraform/terraform.tfvars.example terraform/terraform.tfvars

Stellen Sie das LKE‑Cluster, zwei PostgreSQL-Datenbanken und den Object-Storage-Bucket bereit:

cd terraform
terraform init
terraform plan
terraform apply

Sorgen Sie für sichere Terraform-Ausgaben – sie enthalten vertrauliche Verbindungsdetails.

Laden Sie die Terraform-Ausgaben in Umgebungsvariablen:

export S3_BUCKET=$(terraform output -raw S3_BUCKET_NAME)
export S3_ENDPOINT=$(terraform output -raw S3_ENDPOINT)
export S3_ACCESS_KEY=$(terraform output -raw S3_ACCESS_KEY)
export S3_SECRET_KEY=$(terraform output -raw S3_SECRET_KEY)

Laden Sie die enthaltenen Airline-Richtliniendokumente hoch:

s3cmd sync ../documents/ s3://${S3_BUCKET}/ \
--host=${S3_ENDPOINT} \
--host-bucket=${S3_ENDPOINT} \
--access_key=${S3_ACCESS_KEY} \
--secret_key=${S3_SECRET_KEY}

Sie können die Beispielrichtlinien durch Ihre eigenen PDF-, HTML- oder Textdokumente ersetzen.

Legen Sie die generierte kubeconfig fest:

export KUBECONFIG=./kubeconfig.yaml

Rufen Sie die anfänglichen App Platform-Anmeldedaten aus dem keycloak-Namespace ab und melden Sie sich an.

In App Platform:

  1. Installieren Sie die Harbor-Containerregistrierung.
  2. Generieren Sie einen GitHub-Bereitstellungsschlüssel.
  3. Fügen Sie den öffentlichen Schlüssel zum Repository hinzu.
  4. Speichern Sie den privaten Schlüssel als Sealed Secret.
  5. Verbinden Sie das Code-Repository.
  6. Erstellen Sie das Anwendungsimage.
  7. Erstellen Sie Sealed Secrets für OpenAI, PostgreSQL, Object Storage und den Admin-API‑Schlüssel.
  8. Fügen Sie Netzwerkrichtlinien für beide PostgreSQL-Datenbanken hinzu.
  9. Erstellen Sie die Workload über charts/workflow.example.yaml.
  10. Erstellen Sie einen öffentlichen Service für die Anwendung.

Verwenden Sie keine festcodierten Anmeldedaten in der Repository- oder Workload-Konfiguration.

Überprüfen Sie, ob die Anwendung ausgeführt wird:

curl http://<Ihr Service-Endpoint>/api/health

Initialisieren Sie die Datenbanken:

curl -X POST \
--header "x-api-key: <your-admin-api-key>" \
http://<Ihr Service-Endpoint>/api/admin/initialize_databases

Indizieren Sie die Richtliniendokumente:

curl -X POST \
--header "x-api-key: <your-admin-api-key>" \
http://<Ihr Service-Endpoint>/api/admin/index_documents

Verwenden Sie die zurückgegebene Job‑ID, um den Fortschritt zu überprüfen:

curl -X GET \
--header "x-api-key: <your-admin-api-key>" \
http://<Ihr Service-Endpoint>/api/admin/index_documents/<job-id>

Wenn die Indizierung abgeschlossen ist, öffnen Sie den Service-Endpoint und stellen Sie eine Frage zu den hochgeladenen Richtlinien.

Häufig gestellte Fragen (FAQ)

Häufig gestellte Fragen (FAQ)

Er ruft relevante Abschnitte aus den Airline-Richtliniendokumenten ab und verwendet sie, um Antworten mit unterstützenden Quellenangaben zu generieren.

Die Anwendung kann PDF-, HTML- und Textdateien verarbeiten, die in Object Storage gespeichert sind.

Eine speichert Vektoreinbettungen für semantische Abrufe. Die zweite speichert den Unterhaltungsverlauf und den LangGraph-Status.

Nein. Das aktuelle Projekt verwendet OpenAI‑APIs für Einbettungen und Chatabschluss. Sie können es später so anpassen, dass es ein Open‑Source-Modell auf GPU‑gestützten LKE‑Knoten ausführt.

Ja. Ersetzen Sie die Beispiel-Airline-Richtlinien im Verzeichnis documents durch Ihre eigenen unterstützten Dateien, bevor Sie sie hochladen.

Das Projekt verwendet Sealed Secrets für OpenAI-, Datenbank-, Object Storage-, Bereitstellungsschlüssel- und Admin-Anmeldedaten.

Der Indizierungsendpoint gibt eine Job‑ID zurück. Verwenden Sie den Status-Endpoint, um den Job zu überwachen, bevor Sie den Chatbot testen.

Nein. Akamai Cloud-Credits gelten für berechtigte Akamai Cloud-Infrastruktur. Die OpenAI‑API-Nutzung wird separat abgerechnet.