Technikblog

RAGO-X

Die RAGO-X API nutzen: von internen Richtlinien bis zum Kundensupport

API-Schlüssel, Dokumentenschränke, RAG Chat und SSE anhand von Richtlinienassistenten, Supportentwürfen und der Suche in Produkthandbüchern.

RAGO-XVeröffentlicht Aktualisiert
#API#RAG#Integration#LLM
Portale, Supportwerkzeuge und Produktansichten verbinden sich über ein Backend mit der RAGO-X API

Ein Mitarbeiter sucht im Intranet nach Urlaubsregeln, eine Supportkraft beantwortet eine Anfrage, ein Nutzer fragt auf der Produktseite nach der Installation. Alle möchten dokumentengestützte Antworten direkt in ihrem Arbeitsablauf erhalten.

Die RAGO-X API bindet dokumentenbasierte Fragen und Antworten in solche Oberflächen ein. Ihr Dienst übernimmt Anmeldung und Benutzeroberfläche. RAGO-X verarbeitet RAG Chat für die Dokumentenschränke, die dem API-Schlüssel zugewiesen sind.

Dieser Artikel basiert auf dem Entwicklermenü und der externen Integrations-API. Die Szenarien und Fragen sind Beispiele, keine Ergebnisse eines Kundeneinsatzes. API-Zugriff ist derzeit ab Pro verfügbar. Prüfen Sie die Bedingungen unter Preise und im Entwicklermenü.

Anfrage und Antwortempfang sind getrennt

Die HTTP-Antwort auf eine Frage enthält nicht unmittelbar die fertige Antwort. Zunächst erhalten Sie eine task_id. Anschließend verbinden Sie sich mit dem Stream dieses Tasks, um das Ergebnis zu empfangen.

text
Oberfläche des bestehenden Dienstes
    ↓ Frage
Eigenes Backend — Anmeldung und Zugriffsprüfung
    ↓ Frage mit API-Schlüssel senden
RAGO-X API — Task annehmen und task_id zurückgeben
    ↓ SSE-Stream des Tasks öffnen
Eigenes Backend — Ergebnis empfangen und weiterleiten
    ↓
Benutzeroberfläche — Antwort und vorhandene Belege prüfen

Der Schlüssel bleibt auf dem Integrationsserver. Nutzer melden sich bei Ihrem Dienst an; der Browser benötigt den RAGO-X-Schlüssel nicht. Dieses Muster gilt für Intranet, Supportwerkzeuge und Produktoberflächen gleichermaßen.

Beispiel 1: ein Assistent für interne Richtlinien

Die Frage des Mitarbeiters

„Wie beantrage ich einen halben Tag Urlaub?“

Ergänzen Sie ein Fragefeld im Intranet und verbinden Sie einen Dokumentenschrank mit Personalrichtlinien. Beschäftigte können passende Erläuterungen direkt lesen, statt mehrere Dokumente zu öffnen.

So erfolgt die Anbindung

  1. Urlaubsregeln, Arbeitszeithinweise und Antragsverfahren in einem RAGO-X-Dokumentenschrank bereitstellen.
  2. Einen API-Schlüssel erstellen, der nur diesen Schrank erlaubt.
  3. Das Backend nimmt die Frage des angemeldeten Mitarbeiters entgegen und fordert RAG Chat an.
  4. Den Task-Stream empfangen und die Antwort im Intranet anzeigen.
  5. Zurückgegebene Belege anzeigen, damit die Originalrichtlinie überprüft werden kann.

Unterscheiden sich die Leserechte nach Person oder Abteilung, muss das Backend sie vor dem Senden prüfen. Der Geltungsbereich des API-Schlüssels entspricht nicht den Rechten einzelner Mitarbeiter. Eine vom Browser übergebene Schrank-UUID darf nicht ungeprüft übernommen werden.

Trennen Sie auch die Gespräche. Verwalten Sie die Beziehung zwischen Nutzer, Schrank und Gespräch im Backend und vergeben Sie für neue Gespräche eine eindeutige session_id. Verwenden Sie keinen festen gemeinsamen Wert für mehrere Personen.

API-Schlüssel vorbereiten und die erste Frage senden

Die drei Szenarien verwenden dieselben Endpunkte.

Schritt Methode und Pfad Zweck
1 GET /api/v2/integrations/cabinets Für den Schlüssel erlaubte Schränke auflisten
2 POST /api/v2/integrations/cabinets/{cabinet_uuid}/rag-chat Frage an den ausgewählten Schrank senden
3 GET /api/v2/integrations/rag-chat/{task_id}/stream SSE-Antwort des Tasks empfangen

1. Schlüssel im Entwicklermenü erstellen

Wählen Sie unter Entwickler → API-Schlüsselverwaltung einen verständlichen Namen, etwa „Intranet-Richtlinienassistent“, und nur die benötigten Dokumentenschränke.

Sie können ein Ablaufdatum sowie erlaubte Quell-IPs/CIDRs festlegen. Bei einem Server mit fester ausgehender IP lässt sich so der Ursprung einschränken. Eine leere Adressliste bedeutet, dass keine Quelladressbeschränkung besteht.

Der vollständige Schlüssel wird nur unmittelbar nach der Erstellung einmal angezeigt. Speichern Sie ihn in einem serverseitigen Secretspeicher, nicht in URLs, Frontendcode oder Browserspeichern. Der Login-JWT für die Schlüsselverwaltung ist vom API-Schlüssel für Integrationsanfragen zu unterscheiden.

Führen Sie die folgenden cURL-Beispiele auf dem Integrationsserver oder in einem Entwicklerterminal aus.

Umgebungsvariable Wert
RAGO_X_API_BASE_URL Die für Ihre Umgebung angegebene API-Basisadresse ohne /api/v2
RAGO_X_API_KEY Der ausgestellte API-Schlüssel
CABINET_UUID UUID aus der Liste erlaubter Schränke
TASK_ID Bei der Frage zurückgegebene Task-ID

Die Adresse der Landingpage ist keine API-Basisadresse. Maßgeblich sind die Verbindungsdaten und aktuellen Formate unter Entwickler → API-Nutzungsanleitung Ihrer Umgebung.

2. Erlaubte Dokumentenschränke abrufen

bash
curl --fail-with-body --request GET \
  --url "${RAGO_X_API_BASE_URL}/api/v2/integrations/cabinets" \
  --header "Authorization: Bearer ${RAGO_X_API_KEY}"

Die Liste steht unter data.items. Jeder Eintrag enthält cabinet_uuid und name. Setzen Sie CABINET_UUID auf den vorgesehenen Schrank.

Ist die Liste leer, prüfen Sie zunächst die Schlüsselberechtigungen. Wählen Sie den Schrank serverseitig ausdrücklich aus, statt einfach den ersten Eintrag zu verwenden.

3. Frage senden und Task-ID erhalten

bash
curl --fail-with-body --request POST \
  --url "${RAGO_X_API_BASE_URL}/api/v2/integrations/cabinets/${CABINET_UUID}/rag-chat" \
  --header "Authorization: Bearer ${RAGO_X_API_KEY}" \
  --header "Content-Type: application/json" \
  --data '{
    "session_id": "hr-demo-conversation-001",
    "question": "Wie beantrage ich einen halben Tag Urlaub?"
  }'

session_id kennzeichnet das Gespräch, question enthält die Frage. Der feste Beispielwert dient nur einem einzelnen Tester. Ersetzen Sie ihn produktiv durch eine vom Backend vergebene Gesprächs-ID.

Übernehmen Sie die zurückgegebene task_id als TASK_ID. Task-Annahme und abgeschlossene Generierung sind verschiedene Zustände. Zeigen Sie zunächst die laufende Verarbeitung an und öffnen Sie den Stream.

4. Ergebnisse über SSE empfangen

bash
curl --fail-with-body --no-buffer --request GET \
  --url "${RAGO_X_API_BASE_URL}/api/v2/integrations/rag-chat/${TASK_ID}/stream" \
  --header "Authorization: Bearer ${RAGO_X_API_KEY}" \
  --header "Accept: text/event-stream"

Verwenden Sie denselben API-Schlüssel, mit dem die Frage übermittelt wurde. Ein anderer Schlüssel darf den Task nicht beliebig abrufen, selbst wenn beide zur gleichen Organisation gehören.

Der Stream verwendet derzeit subscribed zur Verbindungsbestätigung und message für Ergebnisse. Warten Sie nicht ausschließlich auf ein SSE-Ereignis namens final. Werten Sie type sowie Abschluss- und Fehlerinformationen innerhalb der JSON-Daten von message aus.

SSE trennt Ereignisse durch Leerzeilen. Ein gelesener Netzwerkblock entspricht nicht zwingend einem Ereignis. Puffern Sie die Daten und verarbeiten Sie vollständige Ereignisse. Auch Kommentarzeilen zur Verbindungserhaltung sind möglich.

Das native EventSource des Browsers kann keinen beliebigen Authorization-Header setzen. Das Backend empfängt den authentifizierten RAGO-X-Stream und leitet Ergebnisse passend an das Frontend weiter.

Beispiel 2: Antwortentwürfe im Support

Die Frage der Supportkraft

„Ein Kunde möchte die Lieferadresse ändern. Welche Vorgehensweise gilt je nach Versandstatus?“

Ein Button Entwurf aus Dokumenten neben der Kundenanfrage sendet die Frage an einen Schrank mit Supportrichtlinien und Betriebshandbüchern.

Entwurf und Geschäftsdaten gemeinsam prüfen

RAGO-X-Dokumente belegen Regeln und Abläufe. Aktuelle Zustände, etwa ob eine Bestellung versendet wurde, kommen aus dem Bestellsystem. Die API-Anbindung führt nicht automatisch Bestellabfragen oder Adressänderungen aus.

  • Bestellstatus im vorhandenen System prüfen.
  • Erforderlichen Kontext und Frage an RAGO-X senden.
  • Antwort und Belege anzeigen.
  • Die Supportkraft gleicht Richtlinie und tatsächlichen Zustand ab und bestätigt die Antwort.

Die Frage kann beispielsweise „bereits versendet“ enthalten. Unnötige Kontakt- oder Zahlungsdaten müssen nicht mitgesendet werden. Beschränken Sie den Kontext auf die Informationen, die für die Regelanwendung nötig sind.

Mit bearbeitbaren, von Menschen bestätigten Entwürfen lassen sich Ergebnisse und Betriebsregeln zunächst besser prüfen als mit sofortigen automatischen Kundenantworten.

Beispiel 3: Handbuchsuche direkt im Produkt

Die Frage des Nutzers

„Bei der ersten Verbindung tritt ein Authentifizierungsfehler auf. Welche Einstellungen soll ich prüfen?“

Ergänzen Sie im Einstellungsbereich ein Hilfefeld und verbinden Sie Installationsanleitungen, Fehlerhilfen und Betriebshandbücher in einem Dokumentenschrank.

Dokumente nach Produkt und Version auswählen

Müssen Produkte oder Versionen getrennt bleiben, verwenden Sie getrennte Schränke und lassen Sie das Backend den passenden auswählen. Die gezeigte Frage-API nimmt session_id und question entgegen. Beliebige zusätzliche Felder wie product_version sind nicht automatisch wirksame Filter.

Eine Versionsangabe in der Frage liefert Kontext, ersetzt aber weder die Schrankauswahl noch die Zugriffskontrolle.

Zeigen Sie Belege an, wenn sie zurückgegeben werden. Richten Sie Felder und Originalzugriff nach der Spezifikation Ihrer Umgebung aus. Öffentliche Download-URLs oder numerische Konfidenzwerte sind nicht in jeder Antwort garantiert. Bei unzureichenden Belegen sollte die Oberfläche Dokumentergänzungen oder den Kontakt zum Support ermöglichen.

Unterschiede der drei Szenarien

Punkt Richtlinienassistent Supportentwurf Handbuchsuche
Fragende Person Angemeldeter Mitarbeiter Supportkraft Produktnutzer
Dokumente Regeln und Anträge Richtlinien und Handbücher Installation und Fehlerbehebung
Prüfung durch eigenen Dienst Individuelle Leserechte Aktueller Geschäftszustand Produkt, Version, Berechtigung
Anzeige Intranet-Fragefeld Entwurfsbereich im Support Hilfe im Produkt
Anfangsprüfung Gesprächstrennung Bestätigung durch Supportkraft Richtiger Dokumentenschrank

Der API-Ablauf bleibt gleich. Entscheidend ist, welcher Schrank angeschlossen wird, was vorher geprüft wird und wo das Ergebnis erscheint.

Bei Fehlern nicht sofort dieselbe Anfrage wiederholen

Trennen Sie Fehler beim Einreichen von Fehlern während des Streamempfangs.

Antwort oder Situation Prüfung Verhalten des eigenen Dienstes
401 Fehlender oder ungültiger Schlüssel Authentifizierung prüfen; vorübergehende Nichtverfügbarkeit anzeigen
403 Schrank-/Task-Zugriff, Schlüssel- oder Quellrichtlinien Fehlercode und Berechtigungen prüfen
409 wegen fehlender Credits Verfügbare Organisationscredits Weitere Anfragen stoppen; Administration informieren
429 Aufruflimit Gemäß Retry-After warten und Anfragemenge reduzieren
400 oder 422 Schrankkonfiguration oder Anfragewerte Pflichtfelder und Fehlermeldung prüfen
503 Vorübergehend keine Verarbeitung Begrenzte Wiederholungen und Störungshinweis
Abbruch nach Annahme task_id und Abschlusszustand Bestehenden Task von einer neuen Anfrage unterscheiden

Unbedachte Wiederholungen können mehrere Tasks erzeugen. Dieselbe session_id ist kein zugesicherter Idempotenzschlüssel.

Sollen Gespräche in Supporthistorien oder Auditansichten erhalten bleiben, planen Sie die Speicherung gesondert. Eine sichtbare Antwort bedeutet nicht, dass Ihr Geschäftssystem sie gespeichert hat.

Mit einem Schrank und einer Oberfläche beginnen

Wählen Sie zunächst einen Schrank und ein Fragefeld. Prüfen Sie echte Fragen, Antworten, Belege und Fehlerbehandlung vor der Erweiterung. Für Richtlinien eignen sich häufige Fragen zu Urlaub, Genehmigung und Nachweisen; für Produkthilfe Installationsschritte und typische Fehlermeldungen. Testen Sie auch Fragen ohne Antwort in den Dokumenten.

RAGO-X übernimmt dokumentenbasierte Fragen und Antworten. Ihr Dienst kennt Nutzer, Berechtigungen und Geschäftszustand. So bleiben die Zuständigkeiten klar.

Weitere Informationen bieten die Integrationsübersicht, der API-Anwendungsfall, die RAGO-X-Architektur und RAG-Chunking. Verbindungsdaten Ihrer Umgebung erhalten Sie im Entwicklermenü oder beim Support.