Crear campos de metadatos
Permite crear campos de metadatos por lotes. Si no se especifica knowledge_base_id, se crean campos globales aplicables a todos los documentos del Agent. Si se especifica, los campos solo se crean en la base de conocimientos indicada. Tanto name como display_label deben ser únicos.
Reglas de lotes:
Se puede crear un máximo de 50 a la vez y no se procesará el lote completo si supera los 50.
Si un name se repite en la solicitud, solo se procesa el primer elemento y los duplicados posteriores fallan.
Si hay conflictos con campos existentes, solo fallan los elementos en conflicto; los demás se crean con normalidad.
Método de solicitud
POST
Endpoint
https://api-${endpoint}.gptbots.ai/v1/bot/doc/metadata/field/create
Autenticación
Para obtener información sobre la autenticación, consulte Visión general de la API.
Solicitud
Ejemplo de solicitud
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": "Categoría",
"type": "LIST",
"options": ["Técnico", "Producto"],
"description": "Categoría del documento",
"ai_search_filter": true
}
]
}'
Encabezados de solicitud
| Campo | Tipo | Descripción |
|---|---|---|
| Authorization | Bearer ${API Key} | Autentíquese con Authorization: Bearer ${API Key}. Obtenga la API Key en la página de claves API. |
| Content-Type | application/json | Tipo de datos, establecido en application/json. |
Parámetros de solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| knowledge_base_id | String | No | Si se omite, los campos son globales y se aplican a todos los documentos del Agent; si se especifica, solo se aplican a esta base de conocimientos. La base de conocimientos debe pertenecer al Agent asociado con la API Key actual; de lo contrario, la solicitud falla con knowledge_base_id not found. |
| fields | Array<Object> | Sí | Una lista de campos para crear, hasta 50 a la vez. |
| name | String | Sí | Identificador interno del campo. Formato ^[a-z][a-z0-9_]{0,31}$ (empieza por una letra minúscula y tiene entre 1 y 32 caracteres), único. |
| display_label | String | Sí | Nombre para mostrar del campo, hasta 64 caracteres, único. |
| type | String | Sí | Tipo de campo: STRING / NUMBER / DATETIME / LIST (distingue entre mayúsculas y minúsculas). |
| options | Array<String> | No | Opciones de enumeración. Es obligatorio cuando type es LIST y no puede ser un array vacío. |
| description | String | No | Descripción del campo, hasta 50 caracteres. |
| ai_search_filter | Boolean | No | Indica si el campo se utiliza como filtro de AI Search. |
Respuesta
Ejemplo de respuesta
{
"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"
}
]
}
Respuesta correcta
| Campo | Tipo | Descripción |
|---|---|---|
| success_count | Integer | Número de campos creados correctamente. |
| failure_count | Integer | El número de campos que no se pudieron crear. |
| results | Array<Object> | Resultados campo por campo, devueltos en el orden de solicitud. |
| name | String | Nombre del campo. |
| success | Boolean | Si se creó correctamente. |
| id | String | ID de campo generado por el sistema; se devuelve al crear el campo y se utiliza para editarlo o eliminarlo. |
| error_message | String | Motivo del error: name or display_label already exists (name o display_label entran en conflicto con campos existentes) / duplicate name in request (duplicado dentro de la solicitud) / field limit exceeded (excede el límite superior del número total de campos). |
Respuesta de error
| Campo | Tipo | Descripción |
|---|---|---|
| code | Integer | Código de error. |
| message | String | Detalles del error. |
