API HTTP

Una referencia completa para la API RESTful de olabox. Antes de continuar, asegúrate de tener tu clave de API de olabox lista para la autenticación.

Códigos de Error

CódigoMensajeDescripción
400Bad RequestParámetros de solicitud inválidos
401UnauthorizedAcceso no autorizado
403ForbiddenAcceso denegado
404Not FoundRecurso no encontrado
500Internal Server ErrorError interno del servidor
1001Invalid Chunk IDID de Chunk inválido
1002Chunk Update FailedFalló la actualización del Chunk

API Compatible con OpenAI

Crear finalización de chat

Crea una respuesta del modelo para una conversación de chat dada. Esta API sigue el mismo formato de solicitud y respuesta que la API de OpenAI.

POST
/api/v1/chats_openai/{chat_id}/chat/completions

Parámetros

NombreTipoDescripción
model*stringEl modelo utilizado para generar la respuesta. El servidor lo analizará automáticamente, por lo que puedes establecer cualquier valor por ahora.
messages*list[object]Una lista de mensajes de chat históricos utilizados para generar la respuesta. Debe contener al menos un mensaje con el rol de usuario.
streambooleanSi se debe recibir la respuesta como un stream. Establécelo en `false` explícitamente si prefieres recibir la respuesta completa de una vez.

Ejemplo de Solicitud

curl --request POST \
     --url http://{address}/api/v1/chats_openai/{chat_id}/chat/completions \
     --header 'Content-Type: application/json' \
     --header 'Authorization: Bearer <YOUR_API_KEY>' \
     --data '{
        "model": "model",
        "messages": [{"role": "user", "content": "Say this is a test!"}],
        "stream": true
      }'

Ejemplos de Respuesta

Respuesta (Stream)
{
  "id": "chatcmpl-3a9c3572f29311efa69751e139332ced",
  "choices": [ { "delta": { "content": "This is a test...", "role": "assistant" } } ],
  "created": 1740543996,
  "model": "model",
  "object": "chat.completion.chunk"
}
Respuesta (No-Stream)
{
  "choices":[ { "finish_reason":"stop", "message":{ "content":"This is a test...", "role":"assistant" } } ],
  "created":1740543499,
  "id":"chatcmpl-3a9c3572f29311efa69751e139332ced",
  "model":"model",
  "object":"chat.completion"
}
Respuesta (Fallo)
{
  "code": 102,
  "message": "The last content of this conversation is not from user."
}

Crear finalización de agente

Crea una respuesta del modelo para una conversación de chat de agente dada. Esta API sigue el mismo formato que la API de OpenAI.

POST
/api/v1/agents_openai/{agent_id}/chat/completions

Parámetros

NombreTipoDescripción
model*stringEl modelo utilizado para generar la respuesta.
messages*list[object]Una lista de mensajes de chat históricos. Debe contener al menos un mensaje con el rol de usuario.
streambooleanSi se debe recibir la respuesta como un stream.

Ejemplo de Solicitud

curl --request POST \
     --url http://{address}/api/v1/agents_openai/{agent_id}/chat/completions \
     --header 'Content-Type: application/json' \
     --header 'Authorization: Bearer <YOUR_API_KEY>' \
     --data '{
        "model": "model",
        "messages": [{"role": "user", "content": "Say this is a test!"}],
        "stream": true
      }'

Gestión de Datasets

Crear dataset

Crea un nuevo conjunto de datos.

POST
/api/v1/datasets

Parámetros

NombreTipoDescripción
name*stringNombre único del dataset. Máx 128 caracteres, no distingue mayúsculas/minúsculas.
descriptionstringBreve descripción del dataset.
embedding_modelstringNombre del modelo de embedding a usar. Ej: "BAAI/bge-large-zh-v1.5@BAAI".
permissionstringPermisos de acceso. Opciones: "me" (defecto), "team".
chunk_methodenum<string>Método de chunking. Opciones: "naive" (defecto), "book", "email", "manual", etc.
parser_configobjectConfiguración para el parser, varía según `chunk_method`.

Ejemplo de Solicitud

curl --request POST \
     --url http://{address}/api/v1/datasets \
     --header 'Content-Type: application/json' \
     --header 'Authorization: Bearer <YOUR_API_KEY>' \
     --data '{
      "name": "test_1"
      }'

Ejemplos de Respuesta

Respuesta (Éxito)
{
  "code": 0,
  "data": {
      "id": "3b4de7d4241d11f0a6a79f24fc270c7f",
      "name": "Tbox Veritas example",
      "chunk_method": "naive",
      "embedding_model": "BAAI/bge-large-zh-v1.5@BAAI",
      "permission": "me",
      "status": "1"
  }
}
Respuesta (Fallo)
{
  "code": 101,
  "message": "Dataset name 'Tbox Veritas example' already exists"
}

Listar datasets

Obtiene una lista de los conjuntos de datos.

GET
/api/v1/datasets

Parámetros

NombreTipoDescripción
pageintegerNúmero de página. Defecto: 1.
page_sizeintegerTamaño de página. Defecto: 30.
order_bystringCampo de ordenación. Opciones: `create_time` (defecto), `update_time`.
descbooleanOrden descendente. Defecto: true.
namestringFiltrar por nombre de dataset.
idstringFiltrar por ID de dataset.

Ejemplo de Solicitud

curl --request GET \
     --url http://{address}/api/v1/datasets?page=1&page_size=10 \
     --header 'Authorization: Bearer <YOUR_API_KEY>'

Actualizar dataset

Actualiza la configuración de un dataset específico.

PUT
/api/v1/datasets/{dataset_id}

Parámetros

NombreTipoDescripción
dataset_id*stringID del dataset a actualizar (en la ruta).
namestringNuevo nombre para el dataset.
descriptionstringNueva descripción.

Ejemplo de Solicitud

curl --request PUT \
     --url http://{address}/api/v1/datasets/{dataset_id} \
     --header 'Content-Type: application/json' \
     --header 'Authorization: Bearer <YOUR_API_KEY>' \
     --data '{
          "name": "updated_dataset"
     }'

Eliminar datasets

Elimina uno o más datasets por su ID.

DELETE
/api/v1/datasets

Parámetros

NombreTipoDescripción
ids*list[string]Lista de IDs de datasets a eliminar. Si es `null`, se eliminan todos.

Ejemplo de Solicitud

curl --request DELETE \
     --url http://{address}/api/v1/datasets \
     --header 'Content-Type: application/json' \
     --header 'Authorization: Bearer <YOUR_API_KEY>' \
     --data '{
     "ids": ["d94a8dc02c9711f0930f7fbc369eab6d"]
     }'

Gestión de Archivos

Subir documentos

Sube uno o más documentos a un dataset específico.

POST
/api/v1/datasets/{dataset_id}/documents

Parámetros

NombreTipoDescripción
dataset_id*stringID del dataset (en la ruta).
file*fileDocumento a subir (form-data). Se pueden enviar múltiples archivos.

Ejemplo de Solicitud

curl --request POST \
     --url http://{address}/api/v1/datasets/{dataset_id}/documents \
     --header 'Content-Type: multipart/form-data' \
     --header 'Authorization: Bearer <YOUR_API_KEY>' \
     --form 'file=@./test1.txt'