Ajouter des documents de type texte
Téléversez en lot des documents de type texte, qui seront traités séquentiellement par découpage/segmentation, embedding/vectorisation, puis stockage afin d'obtenir de nouveaux identifiants de documents.
Remarque :
Vous pouvez spécifier le modèle d'embedding viaembedding_model_version_id; s'il est omis, le modèle d'embedding par défaut du système est utilisé.
Seuls les résultats du téléversement sont renvoyés, et non les résultats finaux de l'embedding. Vous pouvez obtenir les résultats finaux via l'API "Interroger le statut du document".
Méthode de requête
POST
URL de la requête
https://api-${endpoint}.gptbots.ai/v1/bot/doc/text/add
Authentification de la requête
Voir la section Présentation pour les détails d'authentification.
Requête
Exemple de requête
curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/bot/doc/text/add' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json' \
-d '{
"knowledge_base_id": "67457fea6f658672d6482542",
"embedding_model_version_id": "6620f06262390a0be1411c5d",
"chunk_token": 700,
"splitter": "\n",
"files": [
{
"file_url": "https://www.gptbots.ai/fr_FR/docs/article_1.pdf",
"file_base64": "SGVsbG8sIEJhc2U2NCBFbmNvZGluZyE=",
"source_url": "https://www.gptbots.ai/fr_FR/docs/article_1.pdf",
"file_name": "article_1.pdf"
}
]
}'
En-tête de la requête
| Champ | Type | Description |
|---|---|---|
| Authorization | Bearer ${API Key} | Utilisez Authorization: Bearer ${API Key} pour l'authentification. Obtenez la clé API depuis la page Clé API. |
| Content-Type | application/json | Type de données, à définir sur application/json. |
Paramètres de la requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| knowledge_base_id | String | Non | La base de connaissances cible à laquelle le document est ajouté. Si non renseigné, la base "Par défaut" est utilisée. |
| files | Array<Object> | Oui | Liste des documents à ajouter. Prend en charge l'ajout de jusqu'à 20 documents simultanément. |
| file_url | String | Non | URL du document à ajouter. Formats pris en charge : pdf/txt/md/doc/docx. Taille maximale pour PDF : 30 Mo, autres formats : 10 Mo. Remarque : soit l'URL, soit le base64 doit être fourni. Si les deux sont fournis, le base64 est prioritaire. |
| file_base64 | String | Non | Encodage base64 du document à ajouter. Formats pris en charge : pdf/txt/md/doc/docx. Taille maximale pour PDF : 30 Mo, autres formats : 10 Mo. Remarque : soit l'URL, soit le base64 doit être fourni. Si les deux sont fournis, le base64 est prioritaire. |
| file_name | String | Oui | Nom du document à ajouter. 1 à 200 caractères. |
| source_url | String | Non | URL source du document à ajouter. Doit respecter les spécifications de format d'URL. |
| embedding_model_version_id | String | Non | ID de la version du modèle d'embedding utilisé pour vectoriser ce lot de documents. S'il est omis, le modèle d'embedding par défaut du système est utilisé. Obtenez une valeur valide dans le champ modelId du groupe EMBEDDING renvoyé par l'API Obtenir la liste des modèles. |
| chunk_token | Integer | Non | Nombre maximal de tokens par segment lors de la découpe. Valeur par défaut : 600. Plage valide : 1-1000. Remarque : soit chunk_token, soit splitter doit être spécifié. Si les deux sont spécifiés, le splitter est prioritaire. Si aucun n'est fourni, la requête aboutit, mais le document échoue à l'étape de vectorisation (statut FAIL_STORE) ; fournissez donc toujours au moins l'un des deux. |
| splitter | String | Non | Délimiteur utilisé pour la segmentation du texte. Par défaut : vide. Peut utiliser une "chaîne personnalisée" comme séparateur. Remarque : soit chunk_token, soit splitter doit être spécifié. Si les deux sont spécifiés, le splitter est prioritaire. Si aucun n'est fourni, la requête aboutit, mais le document échoue à l'étape de vectorisation (statut FAIL_STORE) ; fournissez donc toujours au moins l'un des deux. |
Réponse
Exemple de réponse
{
"doc": [
{
"doc_id": "xxxxxx",
"doc_name": "test_1.txt"
},
{
"doc_id": "xxxxxx",
"doc_name": "test_2.pdf"
}
],
"failed": [
"file_1",
"file_2"
]
}
Réponse en cas de succès
| Champ | Type | Description |
|---|---|---|
| doc | Array<Object> | Liste des documents ajoutés. |
| doc_id | String | ID du document ajouté. |
| doc_name | String | Nom du document ajouté. |
| failed | Array<Object> | Liste des noms de documents dont l'ajout a échoué. |
Réponse en cas d'échec
| Champ | Type | Description |
|---|---|---|
| code | Int | Code d'erreur. |
| message | String | Détails de l'erreur. |
Codes d'erreur
| Code | Message |
|---|---|
| 40000 | Paramètre invalide |
| 40000 | The embedding_model_version_id does not exist: l'ID de version de modèle indiqué est introuvable dans le catalogue de modèles de la plateforme |
| 40000 | The embedding_model_version_id is not an embedding model: l'ID indiqué correspond à un modèle qui n'est pas un modèle d'embedding (par exemple le modelId d'un modèle de chat) |
| 40000 | The embedding_model_version_id is not an available embedding model: le fournisseur de ce modèle d'embedding ne prend pas encore en charge la spécification via l'API |
| 40127 | Échec de l'authentification du développeur |
| 20059 | Agent supprimé |
Remarque : si la validation de
embedding_model_version_idéchoue, aucun document du lot n'est créé et aucun n'apparaît dans la listefailed; la réponse d'erreur ci-dessus est renvoyée directement.
