Wissensdatenbank sofort synchronisieren
Löst sofort die inkrementelle Synchronisierung des verbundenen Wissens einer Wissensdatenbank aus; derzeit wird nur Google Drive als Quelle unterstützt.
Hinweis:
Die Schnittstelle kehrt sofort nach Abschluss von Prüfung und Planung zurück; zurückgegeben wird daher „angenommen“ und nicht „aktualisiert“.
Frequenzbegrenzung: höchstens 1-mal pro Minute je Agent / Workflow.
Anfragemethode
POST
Anfrage-URL
Wählen Sie den passenden Pfad je nach Ressourcentyp, zu dem der API Key gehört. Anfrageparameter, Antwortstruktur und Drosselungsregeln der beiden Schnittstellen sind vollständig identisch.
- Agent:
https://api-${endpoint}.gptbots.ai/v1/agent/knowledge-base/sync
- Workflow:
https://api-${endpoint}.gptbots.ai/v1/workflow/knowledge-base/sync
Die nachfolgenden Erläuterungen zu Anfrage / Antwort gelten für beide Pfade; die Beispiele sind mit dem Agent-Pfad geschrieben.
Authentifizierung der Anfrage
Einzelheiten finden Sie in den Erläuterungen zur Authentifizierung in der API-Übersicht.
Anfrage
Beispielanfrage
- Bestimmte Wissensdatenbanken synchronisieren:
curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/agent/knowledge-base/sync' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json' \
-d '{
"source": "google-drive",
"knowledge_base_ids": ["6a44c3512ceb43775567391c", "6a44c3512ceb43775567391d"]
}'
- Alle Wissensdatenbanken dieses Agent synchronisieren:
curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/agent/knowledge-base/sync' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json' \
-d '{
"source": "google-drive"
}'
Anfrage-Header
| Feld | Typ | Beschreibung |
|---|---|---|
| Authorization | Bearer ${API Key} | Verwenden Sie Authorization: Bearer ${API Key} zur Authentifizierung der Anfrage; bitte holen Sie den Schlüssel auf der Seite der API-Schlüssel als API Key ab. |
| Content-Type | application/json | Datentyp, Wert application/json. |
Anfrageparameter
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| source | String | Ja | Quelltyp. Derzeit wird nur google-drive unterstützt; andere Werte führen zu einem Parameterfehler. |
| knowledge_base_ids | Array<String> | Nein | Liste der Ziel-Wissensdatenbank-IDs, höchstens 200; bei Überschreitung wird ein Parameterfehler zurückgegeben. Wird nichts, null oder ein leeres Array übergeben, gilt dies für alle Wissensdatenbanken dieses Agent / Workflow. IDs in der Liste, die nicht existieren oder nicht zum aktuellen Agent / Workflow gehören, lassen die gesamte Anfrage nicht scheitern; sie erscheinen in skipped. |
Antwort
Beispielantwort
{
"code": 0,
"message": "OK",
"data": {
"accepted": true,
"source": "google-drive",
"matched_knowledge_base_count": 2,
"matched_doc_count": 37,
"matched_folder_count": 3,
"skipped": [
{
"reason": "DRIVE_NOT_AUTHORIZED",
"message": "The document owner has not authorized Google Drive, or the authorization has expired.",
"knowledge_base_id": "6a44c3512ceb43775567391e",
"doc_count": 8
},
{
"reason": "KNOWLEDGE_BASE_NOT_FOUND",
"message": "Knowledge base does not exist or does not belong to this agent.",
"knowledge_base_id": "deadbeefdeadbeefdeadbeef"
}
],
"scheduled_round_running": false
}
}
Erfolgreiche Antwort
| Feld | Typ | Beschreibung |
|---|---|---|
| code | Integer | Rückgabecode, 0 bedeutet Erfolg. |
| message | String | Rückgabeinformation. |
| data | Object | Ergebnis der Annahme. |
| accepted | Boolean | Ob angenommen. false bedeutet, dass diesmal nichts gestartet wurde; der Grund steht in skipped. |
| source | String | Quelltyp dieser Synchronisierung. |
| matched_knowledge_base_count | Integer | Anzahl der diesmal getroffenen Wissensdatenbanken. |
| matched_doc_count | Integer | Anzahl der Wissensdokumente, die diesmal geprüft werden. Beachten Sie: „werden geprüft“, nicht „wurden aktualisiert“. |
| matched_folder_count | Integer | Anzahl der Ordnerquellen, die diesmal auf neue Dateien geprüft werden. |
| skipped | Array<Object> | Details der übersprungenen Einträge, aggregiert nach „Wissensdatenbank + Grund“, nicht je Dokument aufgeschlüsselt. |
| reason | String | Grund für das Überspringen; Werte siehe folgende Tabelle. |
| message | String | Erläuterung des Grunds. |
| knowledge_base_id | String | ID der betroffenen Wissensdatenbank. Bei übergreifenden Gründen (z. B. unzureichendes Guthaben) wird dieses Feld nicht zurückgegeben. |
| doc_count | Integer | Anzahl der betroffenen Dokumente. Wird eine Wissensdatenbank insgesamt übersprungen, wird dieses Feld nicht zurückgegeben. |
| scheduled_round_running | Boolean | Ob gerade eine geplante Synchronisierungsrunde des Systems ausgeführt wird. Nur informativ, beeinflusst die aktuelle Annahme nicht. Ist accepted gleich false, wurde diese Prüfung nicht vorgenommen und null zurückgegeben. |
Werte von skipped[].reason
| Wert | Bedeutung | Handlungsempfehlung |
|---|---|---|
| KNOWLEDGE_BASE_NOT_FOUND | Wissensdatenbank existiert nicht oder gehört nicht zum Agent / Workflow, an den der aktuelle API Key gebunden ist. | Prüfen Sie knowledge_base_ids; Sie können zunächst „Dokumentenliste abrufen“ aufrufen, um dies zu bestätigen. |
| NO_GOOGLE_DRIVE_SOURCE | Die Wissensdatenbank existiert, enthält aber keine Dokumente aus Google Drive. | Normalfall; die Wissensdatenbank muss nicht synchronisiert werden. |
| DRIVE_NOT_AUTHORIZED | Das Mitglied, dem das Dokument gehört, hat keine gültige Google-Drive-Autorisierung (nie autorisiert oder Autorisierung abgelaufen). | Lassen Sie das Mitglied Google Drive erneut autorisieren. |
| DOC_IN_PROGRESS | Das Dokument wird gerade verarbeitet. Meist ist eine geplante Runde oder die vorige Synchronisierung noch nicht abgeschlossen. | Später erneut versuchen oder den Abschluss der Verarbeitung abwarten. |
| DOC_NO_OWNER | Dem Dokument fehlen Informationen zum zugehörigen Mitglied, sodass sich nicht bestimmen lässt, wessen Google-Drive-Autorisierung verwendet werden soll. | Wenden Sie sich an den Support, um dieses Dokument zu prüfen. |
| INSUFFICIENT_BALANCE | Das Guthaben der Organisation ist unzureichend. In diesem Fall ist accepted gleich false und es wird keine Synchronisierung gestartet. |
Nach dem Aufladen erneut versuchen. |
| SYNC_IN_PROGRESS | Die vorige manuelle Synchronisierung dieses Agent / Workflow läuft noch. In diesem Fall ist accepted gleich false. |
Auf den Abschluss der vorigen Synchronisierung warten und erneut versuchen. |
Fehlerantwort
| Feld | Typ | Beschreibung |
|---|---|---|
| code | Integer | Fehlercode. |
| message | String | Fehlerdetails. |
Häufige Fehlercodes:
| HTTP | code | Szenario |
|---|---|---|
| 400 | 40000 | source fehlt oder wird nicht unterstützt; knowledge_base_ids überschreitet 200; die Anzahl der pro Aufruf getroffenen Dokumente überschreitet 5000 (mit knowledge_base_ids den Bereich eingrenzen). |
| 400 | 40001 | Zu häufige Auslösung, Überschreitung der Schnittstellendrosselung. |
| 401 | 40101 | Der Anfrage-Header Authorization fehlt. |
| 401 | 40127 | API Key ungültig. |
Beispielantwort bei ungültigem source:
{
"code": 40000,
"message": "Unsupported source: sharepoint. Supported: google-drive"
}
Nutzungshinweise
Zurückgegeben wird „angenommen“, nicht „abgeschlossen“
Die Schnittstelle kehrt sofort nach Abschluss von Prüfung und Planung zurück; der eigentliche Abruf, das Parsen und die Vektorisierung erfolgen asynchron im Hintergrund. Daher gibt matched_doc_count an, „wie viele Dokumente diesmal geprüft werden“, nicht „wie viele Dokumente aktualisiert wurden“. Um das Endergebnis zu bestätigen, rufen Sie die Schnittstelle Dokumentenliste abrufen per Polling ab und prüfen den Dokumentstatus; wechselt der Status zu AVAILABLE, ist das Dokument fertig synchronisiert.
Nur inkrementell, kein wiederholter Guthabenverbrauch
Für jedes Dokument vergleicht das System zuerst die letzte Änderungszeit in Google Drive:
- Quelldokument unverändert: übersprungen, kein erneuter Download, kein erneutes Parsen, kein Guthabenverbrauch.
- Quelldokument geändert: erneut abgerufen sowie erneut geparst und vektorisiert.
- Neue Dateien im gebundenen Ordner: automatisch als Wissensdokument hinzugefügt.
Daher ist ein wiederholter Aufruf dieser Schnittstelle sicher; für unveränderte Inhalte entstehen keine zusätzlichen Kosten.
Diese Schnittstelle kann fehlgeschlagene Dokumente nicht erneut parsen
Die inkrementelle Beurteilung betrachtet nur, ob sich das Quelldokument in Google Drive geändert hat, nicht den aktuellen Status des Dokuments.
Ein Dokument, das zuvor fehlgeschlagen ist (Status FAIL), wird daher – solange seine Quelldatei in Google Drive nicht geändert wurde – beim Aufruf dieser Schnittstelle nicht erneut verarbeitet: Es wird als „Quelldokument unverändert“ direkt übersprungen, der Status bleibt unverändert und es erscheint auch nicht in skipped.
Um fehlgeschlagene Dokumente erneut zu parsen, verwenden Sie die Schnittstelle Fehlgeschlagene Dokumente neu einbetten. Oder nehmen Sie in Google Drive eine Änderung an der Quelldatei vor, damit sich ihre letzte Änderungszeit aktualisiert; dann kann diese Schnittstelle sie erneut abrufen.
Die Synchronisierung löscht Wissensdokumente
Diese Schnittstelle fügt nicht nur hinzu und aktualisiert, sondern löscht Wissensdokumente auch gemäß dem aktuellen Zustand in Google Drive.
Wird ein gebundener Google-Drive-Ordner leer, werden alle bereits importierten Wissensdokumente unter diesem Ordner vollständig gelöscht. Auslösebedingung ist, dass der Ordner in Google Drive weiterhin zugänglich ist, aber keine Dateien aufgelistet werden können. Das System prüft zunächst die Zugänglichkeit des Ordners; kann es die Ordnermetadaten nicht abrufen (Ordner verschoben, Berechtigung geändert, vorübergehend nicht erreichbar usw.), wird das Löschen übersprungen, um versehentliches Löschen zu vermeiden.
Der Löschumfang ist auf „diesen Ordner + diese Wissensdatenbank“ beschränkt. Wird derselbe Google-Drive-Ordner von mehreren Wissensdatenbanken referenziert, beeinflussen sich die einzelnen Wissensdatenbanken nicht gegenseitig.
Dieses Verhalten entspricht der geplanten Systemsynchronisierung; diese Schnittstelle lässt es nur früher eintreten. Da diese Schnittstelle jedoch auch Dokumente abdeckt, für die beim Import kein Plan für die geplante Synchronisierung konfiguriert wurde (diese würden von keinem automatischen Prozess gelöscht), bestätigen Sie vor dem Aufruf, dass der Ordnerinhalt auf der Google-Drive-Seite den Erwartungen entspricht.
Abdeckungsbereich
Der Synchronisierungsbereich umfasst alle Dokumente aus Google Drive in der Wissensdatenbank, einschließlich derjenigen, für die beim Import kein Plan für die geplante Synchronisierung konfiguriert wurde – diese Dokumente werden von den geplanten Systemrunden nicht verarbeitet und können nur über diese Schnittstelle aktualisiert werden.
Drosselung
- Höchstens 1-mal pro Minute je Agent / Workflow. Beide Pfade teilen sich denselben Zähler; ein Pfadwechsel umgeht die Drosselung nicht.
- Zusätzlich gilt die Begrenzung der Anfragen pro Minute (RPM) für Wissensdatenbank-APIs gemäß dem Organisationstarif; dieses Kontingent wird mit anderen Wissensdatenbank-Schnittstellen geteilt.
- Läuft die vorige Synchronisierung desselben Agent / Workflow noch, gibt ein erneuter Aufruf
accepted=falseundreason=SYNC_IN_PROGRESSzurück.
Verhältnis zur geplanten Synchronisierung
Diese Schnittstelle und die geplante Systemsynchronisierung sind voneinander unabhängig und blockieren sich nicht gegenseitig. Ist scheduled_round_running gleich true, wird die aktuelle Anfrage dennoch angenommen und nicht deshalb abgelehnt, weil gerade eine geplante Runde ausgeführt wird.
Wenn beide gleichzeitig dasselbe Dokument verarbeiten, entstehen keine doppelten Inhalte: Das System führt die inkrementelle Beurteilung anhand der letzten Änderungszeit des Quelldokuments durch, und bereits importierte Dateien werden nicht doppelt erstellt.
Die geplante Synchronisierung wird automatisch mit der von der Wissensdatenbank selbst konfigurierten Frequenz ausgeführt, während diese Schnittstelle diese Frequenz ignoriert und sofort auslöst. Beide ergänzen sich: Die geplante Synchronisierung übernimmt die reguläre Aktualisierung, diese Schnittstelle das Szenario „jetzt sofort synchronisieren“.
