Añadir documentos de texto
Se pueden cargar por lotes documentos de texto, que se procesarán secuencialmente mediante segmentación, generación de embeddings (vectorización) y almacenamiento, para obtener nuevos ID de documento.
Nota:
Puede especificar el modelo de embedding medianteembedding_model_version_id; si se omite, se utiliza el modelo de embedding predeterminado del sistema.
Solo se devuelven los resultados de la carga, no los resultados finales del embedding. Se pueden obtener los resultados finales mediante la API «Consultar estado del documento».
Método de solicitud
POST
URL de solicitud
https://api-${endpoint}.gptbots.ai/v1/bot/doc/text/add
Autenticación de la solicitud
Para más información sobre la autenticación, consulte la sección «Visión general».
Solicitud
Ejemplo de solicitud
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/docs/article_1.pdf",
"file_base64": "SGVsbG8sIEJhc2U2NCBFbmNvZGluZyE=",
"source_url": "https://www.gptbots.ai/docs/article_1.pdf",
"file_name": "article_1.pdf"
}
]
}'
Cabecera de la solicitud
| Campo | Tipo | Descripción |
|---|---|---|
| Authorization | Bearer ${API Key} | Para la autenticación, se utiliza Authorization: Bearer ${API Key}. La clave de API se obtiene en la página «API Key». |
| Content-Type | application/json | Tipo de datos; se establece en application/json. |
Parámetros de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| knowledge_base_id | String | No | Base de conocimiento de destino a la que se añade el documento. Si no se completa, se utiliza de forma predeterminada la base de conocimiento «Default». |
| files | Array<Object> | Sí | Lista de documentos que se van a añadir. Se admite añadir hasta 20 documentos simultáneamente. |
| file_url | String | No | URL del documento que se va a añadir. Formatos admitidos: pdf/txt/md/doc/docx. El tamaño máximo para PDF es 30 MB y, para el resto de formatos, 10 MB. Nota: Se debe proporcionar la URL o el base64. Si se proporcionan ambos, base64 tiene prioridad. |
| file_base64 | String | No | base64 del documento que se va a añadir. Formatos admitidos: pdf/txt/md/doc/docx. El tamaño máximo para PDF es 30 MB y, para el resto de formatos, 10 MB. Nota: Se debe proporcionar la URL o el base64. Si se proporcionan ambos, base64 tiene prioridad. |
| file_name | String | Sí | Nombre del documento que se va a añadir. 1-200 caracteres. |
| source_url | String | No | URL de origen del documento que se va a añadir. Debe cumplir las especificaciones de formato de URL. |
| embedding_model_version_id | String | No | ID de la versión del modelo de embedding con el que se vectoriza este lote de documentos. Si se omite, se utiliza el modelo de embedding predeterminado del sistema. Obtenga un valor válido del campo modelId del grupo EMBEDDING que devuelve la API Obtener lista de modelos. |
| chunk_token | Integer | No | Número máximo de tokens por fragmento de conocimiento durante la segmentación. El valor predeterminado es 600. El intervalo válido es 1-1000. Nota: Se debe especificar chunk_token o splitter. Cuando se proporcionan ambos, splitter tiene prioridad. Si no se proporciona ninguno, la solicitud se completa correctamente, pero el documento falla en la fase de vectorización (estado FAIL_STORE); proporcione siempre al menos uno de los dos. |
| splitter | String | No | Delimitador utilizado para la fragmentación del texto. El valor predeterminado está vacío. Se puede utilizar una «cadena personalizada» como delimitador. Nota: Se debe especificar chunk_token o splitter. Cuando se proporcionan ambos, splitter tiene prioridad. Si no se proporciona ninguno, la solicitud se completa correctamente, pero el documento falla en la fase de vectorización (estado FAIL_STORE); proporcione siempre al menos uno de los dos. |
Respuesta
Ejemplo de respuesta
{
"doc": [
{
"doc_id": "xxxxxx",
"doc_name": "test_1.txt"
},
{
"doc_id": "xxxxxx",
"doc_name": "test_2.pdf"
}
],
"failed": [
"file_1",
"file_2"
]
}
Respuesta de éxito
| Campo | Tipo | Descripción |
|---|---|---|
| doc | Array<Object> | Lista de documentos añadidos. |
| doc_id | String | ID del documento añadido. |
| doc_name | String | Nombre del documento añadido. |
| failed | Array<String> | Lista de nombres de documentos cuya adición ha fallado. |
Respuesta de error
| Campo | Tipo | Descripción |
|---|---|---|
| code | Int | Código de error. |
| message | String | Detalles del error. |
Códigos de error
| Code | Message |
|---|---|
| 40000 | Parámetro no válido |
| 40000 | The embedding_model_version_id does not exist: el ID de versión del modelo indicado no existe en el catálogo de modelos de la plataforma |
| 40000 | The embedding_model_version_id is not an embedding model: el ID indicado corresponde a un modelo que no es de embedding (por ejemplo, el modelId de un modelo de chat) |
| 40000 | The embedding_model_version_id is not an available embedding model: el proveedor de este modelo de embedding aún no admite su especificación mediante la API |
| 40127 | Error de autenticación del desarrollador |
| 20059 | El agente ha sido eliminado |
Nota: Si la validación de
embedding_model_version_idfalla, no se crea ningún documento del lote y ninguno aparece en la listafailed; se devuelve directamente la respuesta de error anterior.
