logo
Développement
Rechercher
Synchroniser immédiatement la base de connaissances

Synchroniser immédiatement la base de connaissances

Permet de déclencher immédiatement la synchronisation incrémentale des connaissances sourcées d'une base de connaissances ; seule la source Google Drive est actuellement prise en charge.

Remarque :

L'interface répond immédiatement après avoir terminé la validation et la planification ; elle renvoie donc « pris en compte » et non « mis à jour ».

Limite de fréquence : au maximum 1 fois par minute pour chaque Agent / Workflow.

Méthode de requête

POST

Adresse d'appel

Choisissez le chemin correspondant au type de ressource auquel appartient l'API Key. Les paramètres de requête, la structure de réponse et les règles de limitation de débit des deux interfaces sont strictement identiques.

  • Agent :

https://api-${endpoint}.gptbots.ai/v1/agent/knowledge-base/sync

  • Workflow :

https://api-${endpoint}.gptbots.ai/v1/workflow/knowledge-base/sync

Les descriptions de requête / réponse ci-dessous s'appliquent aux deux chemins ; les exemples sont écrits avec le chemin Agent.

Vérification de l'appel

Consultez les instructions d'authentification de Présentation de l'API.

Requête

Exemple de requête

  • Synchroniser des bases de connaissances spécifiées :
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"] }'
                      
                      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"]
}'

                    
Ce bloc de code dans la fenêtre flottante
  • Synchroniser toutes les bases de connaissances de cet Agent :
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" }'
                      
                      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"
}'

                    
Ce bloc de code dans la fenêtre flottante

En-têtes de requête

Champ Type Description
Authorization Bearer ${API Key} Utilisez Authorization: Bearer ${API Key} pour la vérification de l'appel ; récupérez la clé sur la page des clés API pour l'utiliser comme API Key.
Content-Type application/json Type de données, valeur application/json.

Paramètres de requête

Champ Type Obligatoire Description
source String Oui Type de source. Seul google-drive est actuellement pris en charge ; toute autre valeur renvoie une erreur de paramètre.
knowledge_base_ids Array<String> Non Liste des ID de bases de connaissances cibles, au maximum 200 ; au-delà, une erreur de paramètre est renvoyée. Ne rien transmettre, transmettre null ou un tableau vide désigne toutes les bases de connaissances de cet Agent / Workflow. Les ID de la liste qui n'existent pas ou n'appartiennent pas à l'Agent / Workflow courant ne font pas échouer l'ensemble de la requête et apparaissent dans skipped.

Réponse

Exemple de réponse

{ "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 } }
                      
                      {
    "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
    }
}

                    
Ce bloc de code dans la fenêtre flottante

Réponse en cas de succès

Champ Type Description
code Integer Code de retour, 0 indique un succès.
message String Message de retour.
data Object Résultat de la prise en compte.
accepted Boolean Indique si la demande a été prise en compte. false signifie que rien n'a été lancé cette fois-ci ; la raison figure dans skipped.
source String Type de source de cette synchronisation.
matched_knowledge_base_count Integer Nombre de bases de connaissances concernées cette fois-ci.
matched_doc_count Integer Nombre de documents de connaissances qui seront vérifiés cette fois-ci. Notez qu'il s'agit de « seront vérifiés » et non de « ont été mis à jour ».
matched_folder_count Integer Nombre de sources de dossiers dont les nouveaux fichiers seront vérifiés cette fois-ci.
skipped Array<Object> Détail des éléments ignorés, agrégés par « base de connaissances + raison », sans détail document par document.
reason String Raison de l'ignorance ; valeurs possibles dans le tableau ci-dessous.
message String Explication de la raison.
knowledge_base_id String ID de la base de connaissances affectée. Ce champ n'est pas renvoyé pour les raisons globales (par ex. solde insuffisant).
doc_count Integer Nombre de documents affectés. Ce champ n'est pas renvoyé lorsqu'une base de connaissances est ignorée dans son ensemble.
scheduled_round_running Boolean Indique si un cycle de synchronisation planifiée du système est en cours d'exécution. Fourni à titre informatif uniquement, sans incidence sur la prise en compte. Lorsque accepted vaut false, cette évaluation n'est pas effectuée et la valeur null est renvoyée.

Valeurs de skipped[].reason

Valeur Signification Recommandation
KNOWLEDGE_BASE_NOT_FOUND La base de connaissances n'existe pas ou n'appartient pas à l'Agent / Workflow lié à l'API Key courante. Vérifiez knowledge_base_ids ; vous pouvez d'abord appeler « Obtenir la liste des bases de connaissances » pour confirmer.
NO_GOOGLE_DRIVE_SOURCE La base de connaissances existe, mais ne contient aucun document provenant de Google Drive. Situation normale, indiquant que cette base de connaissances n'a pas besoin d'être synchronisée.
DRIVE_NOT_AUTHORIZED Le membre propriétaire du document n'a pas d'autorisation Google Drive utilisable (jamais autorisée ou autorisation expirée). Demandez à ce membre de réautoriser Google Drive.
DOC_IN_PROGRESS Le document est en cours de traitement. Généralement dû à un cycle planifié ou à une synchronisation précédente non terminée. Réessayez plus tard ou attendez la fin du traitement.
DOC_NO_OWNER Le document ne comporte pas d'information sur le membre propriétaire, il est impossible de déterminer quelle autorisation Google Drive utiliser. Contactez le support pour investiguer ce document.
INSUFFICIENT_BALANCE Solde insuffisant de l'organisation. Dans ce cas, accepted vaut false et aucune synchronisation n'est lancée. Réessayez après recharge.
SYNC_IN_PROGRESS La synchronisation manuelle précédente de cet Agent / Workflow est encore en cours. Dans ce cas, accepted vaut false. Réessayez une fois la précédente terminée.

Réponse en cas d'échec

Champ Type Description
code Integer Code d'erreur.
message String Détail de l'erreur.

Codes d'erreur courants :

HTTP code Scénario
400 40000 source manquant ou non pris en charge ; knowledge_base_ids dépasse 200 ; le nombre de documents concernés en une fois dépasse 5000 (réduisez la portée avec knowledge_base_ids).
400 40001 Déclenchements trop fréquents, dépassant la limite de débit de l'interface.
401 40101 En-tête Authorization manquant.
401 40127 API Key invalide.

Exemple de réponse lorsque source est invalide :

{ "code": 40000, "message": "Unsupported source: sharepoint. Supported: google-drive" }
                      
                      {
    "code": 40000,
    "message": "Unsupported source: sharepoint. Supported: google-drive"
}

                    
Ce bloc de code dans la fenêtre flottante

Notes d'utilisation

Ce qui est renvoyé est « pris en compte », pas « terminé »

L'interface répond immédiatement après avoir terminé la validation et la planification ; la récupération, l'analyse et la vectorisation réelles s'exécutent en arrière-plan de manière asynchrone. Ainsi, matched_doc_count indique « combien de documents seront vérifiés cette fois-ci » et non « combien de documents ont été mis à jour ». Pour confirmer le résultat final, interrogez périodiquement l'interface Obtenir la liste des documents de connaissances pour consulter l'état des documents ; lorsqu'un document passe à l'état AVAILABLE, cela signifie qu'il a fini d'être synchronisé.

Uniquement incrémental, sans consommation répétée du quota

Pour chaque document, le système compare d'abord la date de dernière modification sur Google Drive :

  • Document source non modifié : ignoré, sans nouveau téléchargement, nouvelle analyse ni consommation de quota.
  • Document source modifié : de nouveau récupéré, réanalysé et revectorisé.
  • Nouveaux fichiers dans le dossier lié : automatiquement ajoutés en tant que documents de connaissances.

Par conséquent, appeler cette interface de manière répétée est sûr ; le contenu inchangé n'entraîne aucun coût supplémentaire.

Cette interface ne peut pas réessayer les documents dont l'analyse a échoué

Le jugement incrémental ne regarde que si le document source sur Google Drive a changé, pas l'état actuel du document.

Ainsi, un document dont l'analyse a précédemment échoué (état FAIL) ne sera pas retraité par cette interface tant que son fichier source sur Google Drive n'a pas été modifié — il sera considéré comme « document source non modifié » et directement ignoré, son état restant inchangé, et il n'apparaîtra pas non plus dans skipped.

Pour réessayer les documents dont l'analyse a échoué, utilisez l'interface Réintégrer les documents. Vous pouvez aussi effectuer une modification du fichier source sur Google Drive afin de mettre à jour sa date de dernière modification, ce qui permet à cette interface de le récupérer à nouveau.

La synchronisation supprime des documents de connaissances

Cette interface ne fait pas que des ajouts et des mises à jour ; elle supprime aussi des documents de connaissances selon l'état actuel de Google Drive.

Lorsqu'un dossier Google Drive lié devient vide, tous les documents de connaissances déjà importés depuis ce dossier sont supprimés. La condition de déclenchement est que le dossier reste accessible sur Google Drive mais qu'aucun fichier ne puisse y être listé. Le système vérifie d'abord l'accessibilité du dossier ; s'il ne parvient pas à obtenir les métadonnées du dossier (dossier déplacé, permissions modifiées, temporairement inaccessible, etc.), il ignore la suppression afin d'éviter toute suppression accidentelle.

La portée de la suppression est limitée à « ce dossier + cette base de connaissances ». Lorsqu'un même dossier Google Drive est référencé par plusieurs bases de connaissances, celles-ci n'ont aucune incidence les unes sur les autres.

Ce comportement est identique à celui de la synchronisation planifiée du système ; cette interface ne fait que le déclencher plus tôt. Toutefois, comme cette interface couvre aussi les documents pour lesquels aucun plan de synchronisation planifiée n'a été configuré lors de l'importation (documents que, normalement, aucun flux automatique ne supprimerait), vérifiez avant l'appel que le contenu des dossiers côté Google Drive est conforme à vos attentes.

Portée de la couverture

La portée de la synchronisation couvre tous les documents de la base de connaissances provenant de Google Drive, y compris ceux pour lesquels aucun plan de synchronisation planifiée n'a été configuré lors de l'importation — ces documents ne sont pas traités par les cycles planifiés du système et ne peuvent être mis à jour que via cette interface.

Limitation de débit

  • Au maximum 1 fois par minute pour chaque Agent / Workflow. Les deux chemins partagent le même compteur ; changer de chemin ne contourne pas la limitation.
  • Soumis également à la limite du nombre de requêtes par minute (RPM) des API de type base de connaissances du forfait de l'organisation, quota partagé avec les autres interfaces de base de connaissances.
  • Si la synchronisation précédente du même Agent / Workflow n'est pas encore terminée, un nouvel appel renvoie accepted=false et reason=SYNC_IN_PROGRESS.

Relation avec la synchronisation planifiée

Cette interface et la synchronisation planifiée du système sont indépendantes et ne se bloquent pas mutuellement. Lorsque scheduled_round_running vaut true, la requête est tout de même prise en compte et n'est pas rejetée au motif qu'un cycle planifié est en cours.

Lorsque les deux traitent le même document simultanément, aucun contenu dupliqué n'est produit : le système effectue un jugement incrémental d'après la date de dernière modification du document source, et les fichiers déjà importés ne sont pas recréés.

La synchronisation planifiée s'exécute automatiquement à la fréquence configurée pour chaque base de connaissances, tandis que cette interface ignore cette fréquence et déclenche immédiatement. Les deux sont complémentaires : la synchronisation planifiée assure la mise à jour courante, cette interface répond au besoin de « synchroniser maintenant ».