Créer des champs de métadonnées
Créez des champs de métadonnées par lots. Si knowledge_base_id n'est pas renseigné, des champs globaux applicables à tous les documents de l'Agent sont créés. S'il est renseigné, les champs s'appliquent uniquement à la base de connaissances indiquée. name et display_label doivent être uniques.
Règles de lots :
Un maximum de 50 peuvent être créés à la fois, et l'ensemble du lot ne sera pas traité s'il dépasse 50.
Si un name apparaît plusieurs fois dans la requête, seul le premier élément est traité ; les doublons suivants échouent.
En cas de conflit avec des champs existants, seuls les éléments concernés échouent ; les autres champs sont créés normalement.
Méthode de requête
POST
Endpoint
https://api-${endpoint}.gptbots.ai/v1/bot/doc/metadata/field/create
Authentification
Pour plus d'informations sur l'authentification, consultez l'Aperçu de l'API.
Requête
Exemple de requête
curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/bot/doc/metadata/field/create' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json' \
-d '{
"knowledge_base_id": "kb_001",
"fields": [
{
"name": "category",
"display_label": "Catégorie",
"type": "LIST",
"options": ["Technique", "Produit"],
"description": "Catégorie du document",
"ai_search_filter": true
}
]
}'
En-têtes de requête
| Champ | Type | Description |
|---|---|---|
| Authorization | Bearer ${API Key} | Authentifiez-vous avec Authorization: Bearer ${API Key}. Obtenez l'API Key depuis la page des clés API. |
| Content-Type | application/json | Type de données, défini sur application/json. |
Paramètres de requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| knowledge_base_id | String | Non | S'il est omis, les champs sont globaux et s'appliquent à tous les documents de l'Agent ; s'il est renseigné, ils s'appliquent uniquement à cette base de connaissances. La base de connaissances doit appartenir à l'Agent associé à l'API Key actuelle ; sinon, la requête échoue avec knowledge_base_id not found. |
| fields | Array<Object> | Oui | Une liste de champs à créer, jusqu'à 50 à la fois. |
| name | String | Oui | Identifiant interne du champ. Format ^[a-z][a-z0-9_]{0,31}$ (commence par une lettre minuscule, 1 à 32 caractères), unique. |
| display_label | String | Oui | Nom d’affichage du champ, jusqu’à 64 caractères, unique. |
| type | String | Oui | Type de champ : STRING / NUMBER / DATETIME / LIST (sensible à la casse). |
| options | Array<String> | Non | Options d'énumération. Ce paramètre est obligatoire lorsque type vaut LIST et ne peut pas être un tableau vide. |
| description | String | Non | Description du champ, jusqu'à 50 caractères. |
| ai_search_filter | Boolean | Non | Indique si le champ doit être utilisé comme filtre AI Search. |
Réponse
Exemple de réponse
{
"success_count": 1,
"failure_count": 2,
"results": [
{
"name": "category",
"success": true,
"id": "665f1c8a9b2e4d001a3f0001"
},
{
"name": "priority",
"success": false,
"error_message": "name or display_label already exists"
},
{
"name": "category",
"success": false,
"error_message": "duplicate name in request"
}
]
}
Réponse réussie
| Champ | Type | Description |
|---|---|---|
| success_count | Integer | Nombre de champs créés avec succès. |
| failure_count | Integer | Nombre de champs dont la création a échoué. |
| results | Array<Object> | Résultats champ par champ, renvoyés dans l'ordre de la demande. |
| name | String | Nom du champ. |
| success | Boolean | S'il a été créé avec succès. |
| id | String | ID de champ généré par le système, renvoyé après la création et utilisé pour modifier ou supprimer le champ. |
| error_message | String | Raison de l'échec : name or display_label already exists (name ou display_label est en conflit avec des champs existants) / duplicate name in request (duplicata dans la demande) / field limit exceeded (dépasse la limite supérieure du nombre total de champs). |
Réponse d'erreur
| Champ | Type | Description |
|---|---|---|
| code | Integer | Code d'erreur. |
| message | String | Détails de l'erreur. |
