La salida en streaming de la API de Assistant proporciona resultados en tiempo real del asistente. Estos resultados se entregan como un flujo de eventos, que contiene información de estado y mensajes de conversación desde el entorno de ejecución del asistente. Para procesar estos mensajes, debe comprender los objetos delta de mensajes y los objetos delta de pasos de ejecución.
ImportanteLa API de Assistant está en proceso de desuso. Migre a la API de Responses, que ofrece herramientas integradas y gestión de contexto de múltiples turnos.
Objeto message delta
Nombre del evento: thread.message.delta
Un fragmento de mensaje generado por el Modelo de Lenguaje Grande (LLM) durante una ejecución en transmisión.
Nombre del campo | Tipo | Descripción |
|---|---|---|
id | string | El identificador del mensaje. |
object | string | El tipo de objeto. Es el mismo que el nombre del evento. Siempre es `thread.message.delta`. |
delta | object | El objeto de fragmento de mensaje generado por el LLM. |
delta.role | string | El rol que generó el mensaje. El valor puede ser `user` o `assistant`. |
delta.file_ids | array | Este campo no se utiliza. |
delta.content | object | El objeto de contenido del mensaje. |
delta.content.type | string | El tipo de contenido del mensaje. Siempre es `text`. |
delta.content.text | object | El objeto de contenido de texto en el mensaje. |
delta.content.text.annotations | array | Este campo no se utiliza. |
delta.content.text.value | string | El contenido de texto en el mensaje. |
{
"delta": {
"content": {
"text": {
"annotations": [],
"value": "[REDACTED]"
},
"type": "text"
},
"role": "[REDACTED]",
"file_ids": []
},
"id": "[REDACTED]",
"object": "thread.message.delta",
"request_id": "[REDACTED]",
"status_code": 200
}
Objeto run step delta
Nombre del evento: thread.run.step.delta
Un fragmento de mensaje devuelto por una llamada a herramienta durante una ejecución en transmisión.
Nombre del campo | Tipo | Descripción |
|---|---|---|
id | string | El identificador del paso de ejecución. |
object | string | El tipo de objeto. Es el mismo que el nombre del evento. Siempre es `thread.run.step.delta`. |
delta | object | El objeto de fragmento de mensaje devuelto por la llamada a la herramienta. |
delta.step_details | object | El objeto de información detallada del paso para el fragmento. |
delta.step_details.type | string | El tipo de detalles del paso. El valor puede ser `message_creation` o `tool_calls`. |
delta.step_details.message_creation | object | Los detalles del mensaje creado en el paso. |
delta.step_details.message_creation.type | string | Siempre es `message_creation`. |
delta.step_details.message_creation.message_id | string | El ID del mensaje creado en este paso. |
delta.step_details.tool_calls | array | Una lista de detalles para las llamadas a herramientas. |
delta.step_details.tool_calls.type | string | El tipo de llamada a la herramienta. El valor puede ser `code_interpreter`, `quark_search`, `text_to_image` o `calculator`. |
delta.step_details.tool_calls.code_interpreter | object | El objeto de mensaje para el intérprete de código. |
delta.step_details.tool_calls.code_interpreter.arguments | string | Los parámetros de entrada para el intérprete de código. Esto incluye el tipo de código y el código completo. Es generado por el LLM. |
delta.step_details.tool_calls.code_interpreter.output | string | Los parámetros de salida del intérprete de código. Esto incluye el resultado de la ejecución. Es generado por el intérprete de código. |
delta.step_details.tool_calls.quark_search | object | El objeto de mensaje para Quark Search. |
delta.step_details.tool_calls.quark_search.arguments | string | Los parámetros de entrada para Quark Search. Esto incluye la declaración de consulta reescrita. Es generado por el LLM. |
delta.step_details.tool_calls.quark_search.output | string | Los parámetros de salida de Quark Search. Esto incluye una marca de éxito, código de error, mensaje de error y una lista de resultados de búsqueda (título, dirección, descripción, tipo, fuente del mensaje). Es generado por Quark Search. |
delta.step_details.tool_calls.text_to_image | object | El objeto de mensaje para texto a imagen. |
delta.step_details.tool_calls.text_to_image.arguments | string | Los parámetros de entrada para texto a imagen. Esto incluye el nombre del modelo, el estilo, el tamaño de la imagen, la cantidad de imágenes, el prompt positivo y el prompt negativo. Es generado por el LLM. |
delta.step_details.tool_calls.text_to_image.output | string | Los parámetros de salida de texto a imagen. Esto incluye el ID de solicitud, ID de tarea, estado de la tarea, hora de envío, tiempo estimado de finalización, hora de finalización, resultado generado, cantidad de imágenes, marca de éxito y marca de fallo. Es generado por la herramienta de texto a imagen. |
delta.step_details.tool_calls.calculator | object | El objeto de mensaje para la calculadora. |
delta.step_details.tool_calls.calculator.arguments | string | Los parámetros de entrada para la calculadora. Esto incluye la fórmula de entrada y el encabezado de la solicitud. Es generado por el LLM. |
delta.step_details.tool_calls.calculator.output | string | Los parámetros de salida de la calculadora. Esto incluye la fórmula y el resultado. Es generado por la calculadora. |
NotaLas herramientas de intérprete de código, Quark Search, texto a imagen y calculadora admiten salida en transmisión.
Otras herramientas de la API de Assistant no admiten salida en streaming. Para recuperar los resultados de estas llamadas a herramientas en la salida en streaming, utilice el método estándar de llamada a herramientas. Para más información, consulte la sección correspondiente en Descripción general de llamadas a herramientas.
{
"delta": {
"step_details": {
"tool_calls": [
{
"code_interpreter": {
"output": [],
"arguments": "[REDACTED]"
},
"type": "code_interpreter"
}
],
"type": "tool_calls"
}
},
"id": "[REDACTED]",
"object": "thread.run.step.delta",
"request_id": "[REDACTED]",
"status_code": 200
}
Flujo de eventos del asistente
Eventos que ocurren cuando ejecuta un Asistente en modo de transmisión.
En la API de Assistant, un flujo de eventos consiste en un event y data:
-
event: El servidor envía un evento cuando se crea un nuevo objeto, cambia el estado o se transmite contenido.Por ejemplo, se envía un evento cuando se crea una nueva ejecución (
thread.run.created) o cuando se completa una ejecución (thread.run.completed). -
data: Contiene datos detallados relacionados con el evento.Por ejemplo, puede contener estado, texto, mensajes de herramientas o errores.
event: thread.created
data: {"id": "thread_123", "object": "thread", ...}
Nombre del evento | Tipo de datos | Descripción |
|---|---|---|
thread.created | thread | Ocurre cuando se crea un nuevo hilo. |
thread.run.created | run | Ocurre cuando se crea una nueva ejecución. |
thread.run.queued | run | Ocurre cuando una ejecución pasa al estado `queued`. |
thread.run.in_progress | run | Ocurre cuando una ejecución pasa al estado `in_progress`. |
thread.run.requires_action | run | Ocurre cuando una ejecución pasa al estado `requires_action`. |
thread.run.completed | run | Ocurre cuando una ejecución se completa. |
thread.run.failed | run | Ocurre cuando una ejecución falla. |
thread.run.cancelled | run | Ocurre cuando una ejecución se cancela. |
thread.run.expired | run | Ocurre cuando una ejecución expira. |
thread.run.step.created | run step | Ocurre cuando se crea un paso de ejecución. |
thread.run.step.in_progress | run step | Ocurre cuando un paso de ejecución pasa al estado `in_progress`. |
thread.run.step.delta | run step delta | Ocurre cuando se transmite parte del contenido de un paso de ejecución. |
thread.run.step.completed | run step | Ocurre cuando un paso de ejecución se completa. |
thread.run.step.failed | run step | Ocurre cuando un paso de ejecución falla. |
thread.run.step.cancelled | run step | Ocurre cuando un paso de ejecución se cancela. |
thread.run.step.expired | run step | Ocurre cuando un paso de ejecución expira. |
thread.message.created | message | Ocurre cuando se crea un mensaje. |
thread.message.in_progress | message | Ocurre cuando un mensaje entra en el estado `in_progress`. |
thread.message.delta | message delta | Ocurre cuando se transmite parte del contenido de un mensaje. |
thread.message.completed | message | Ocurre cuando un mensaje se completa. |
thread.message.incomplete | message | Ocurre cuando un mensaje termina antes de completarse. |
error | error | Se activa cuando ocurre un error. Esto puede deberse a un error interno del servidor o a un tiempo de espera agotado. |
FAQ
- Si encuentra un error de ejecución de código al configurar la salida en transmisión, consulte Mensajes de error para solucionar el error.
- Para aprender a configurar la salida en transmisión para la API de Assistant, consulte Inicio rápido para la salida en transmisión de la API de Assistant.