Compartir vía


Referencia de ejecuciones de la API de asistentes (versión preliminar)

Nota:

  • La búsqueda de archivos puede ingerir hasta 10 000 archivos por asistente, 500 veces más que antes. Es rápida, compatible con consultas paralelas a través de búsquedas multiproceso y presenta características mejoradas de reordenación y reescritura de consultas.
    • El almacén de vectores es un nuevo objeto de la API. Una vez que un archivo se agrega a un almacén de vectores, se analiza automáticamente, se divide en fragmentos y se inserta, quedando listo para su búsqueda. Los almacenes de vectores se pueden usar entre asistentes y subprocesos, lo que simplifica la administración de archivos y la facturación.
  • Hemos agregado compatibilidad con el parámetro tool_choice que se puede usar para forzar el uso de una herramienta específica (como la búsqueda de archivos, el intérprete de código o una función) en una ejecución determinada.

Este artículo proporciona documentación de referencia para Python y REST para la nueva API de Asistentes (versión preliminar). Se proporcionan instrucciones paso a paso más detalladas en la guía de introducción.

Crear ejecución

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs?api-version=2024-08-01-preview

Crear una ejecución.

Parámetro de ruta de acceso

Parámetro Type Obligatorio Description
thread_id string Obligatorio Identificador del subproceso para el que se va a crear un mensaje.

Cuerpo de la solicitud

Nombre Type Obligatorio Description
assistant_id string Obligatorio Identificador del asistente que se va a usar para ejecutar esta ejecución.
model cadena o null Opcionales Nombre de la implementación de modelo que se usará para ejecutar esta ejecución. Si se proporciona un valor aquí, invalidará el nombre de la implementación de modelo asociado al asistente. Si no es así, se usará el nombre de la implementación de modelo asociado al asistente.
instructions cadena o null Opcionales Invalida las instrucciones del asistente. Esto resulta útil para modificar el comportamiento por ejecución.
additional_instructions string Opcionales Anexa instrucciones adicionales al final de las instrucciones para la ejecución. Esto resulta útil para modificar el comportamiento por ejecución sin invalidar otras instrucciones.
additional_messages array Opcionales Agrega mensajes adicionales al subproceso antes de crear la ejecución.
tools matriz o null Opcionales Invalide las herramientas que el asistente puede usar para esta ejecución. Esto resulta útil para modificar el comportamiento por ejecución.
metadata map Opcionales Conjunto de 16 pares clave-valor que se pueden adjuntar a un objeto. Esto puede ser útil para almacenar información adicional sobre el objeto en un formato estructurado. Las claves pueden tener un máximo de 64 caracteres y los valores pueden tener un máximo de 512 caracteres.
temperature number Opcionales Temperatura de muestreo que se vaya a usar, entre 0 y 2. Los valores más altos, como 0,8, harán que la salida sea más aleatoria, mientras que los valores más bajos, como 0,2, la harán más enfocada y determinista. El valor predeterminado es 1.
top_p number Opcionales Una alternativa al muestreo con temperatura, llamada muestreo de núcleo, donde el modelo considera los resultados de los tokens con masa de probabilidad top_p. Así, 0,1 significa que solo se consideran los tokens que comprenden la masa de probabilidad del 10% superior. Por lo general, recomendamos modificar esto o la temperatura, pero no ambos. El valor predeterminado es 1.
stream boolean opcional Si true, devuelve una secuencia de eventos que se producen durante los eventos enviados por el servidor, finalizando cuando la ejecución entra en un estado de terminal con un data: [DONE] mensaje.
max_prompt_tokens integer opcional Número máximo de tokens de finalización que se pueden usar durante el transcurso de la ejecución. La ejecución hará un mejor esfuerzo para usar solo el número de tokens de finalización especificados, en varios turnos de la ejecución. Si la ejecución supera el número de tokens de finalización especificados, la ejecución finalizará con el estado incomplete.
max_completion_tokens integer opcional Número máximo de tokens de finalización que se pueden usar durante el transcurso de la ejecución. La ejecución hará un mejor esfuerzo para usar solo el número de tokens de finalización especificados, en varios turnos de la ejecución. Si la ejecución supera el número de tokens de finalización especificados, la ejecución finalizará con el estado incomplete.
truncation_strategy truncationObject opcional Controla cómo se truncará un subproceso antes de la ejecución. Úselo para controlar la ventana de contexto inicial de la ejecución.
tool_choice cadena u objeto opcional Controla la herramienta (si existe) a la que llama el modelo. Un valor none significa que el modelo no llamará a ninguna herramienta y en su lugar, generará un mensaje. auto es el valor predeterminado y significa que el modelo puede elegir entre generar un mensaje o llamar a una herramienta. Especificar una función determinada como {"type": "file_search"} o {"type": "function", "function": {"name": "my_function"}} obliga al modelo a llamar a esa herramienta.
response_format cadena u objeto opcional Especifica el formato que debe generar el modelo. Compatible con GPT-4 Turbo y todos los modelos GPT-3.5 Turbo desde gpt-3.5-turbo-1106.
La configuración en { "type": "json_object" } habilita el modo JSON, lo que garantiza que el mensaje que genera el modelo es JSON válido.
Importante: al usar el modo JSON, también debe indicar al modelo que genere JSON usted mismo a través de un mensaje de usuario o sistema. Sin esta instrucción, el modelo puede generar una secuencia de espacios en blanco no deseada hasta que la generación alcance el límite del token, lo que da lugar a una solicitud de larga duración y aparentemente "bloqueada". Tenga en cuenta que el contenido del mensaje puede cortarse parcialmente si finish_reason="length", lo que indica que la generación superó max_tokens o la conversación superó la longitud máxima del contexto.

Devoluciones

Objeto de ejecución.

Ejemplo de creación de una solicitud de ejecución

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

run = client.beta.threads.runs.create(
  thread_id="thread_abc123",
  assistant_id="asst_abc123"
)
print(run)

Crear subproceso y ejecutar

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/runs?api-version=2024-08-01-preview

Crear un subproceso y ejecutarlo en una sola solicitud.

Cuerpo de la solicitud

Nombre Type Obligatorio Description
assistant_id string Obligatorio Identificador del asistente que se va a usar para ejecutar esta ejecución.
thread object Opcionales
model cadena o null Opcionales Identificador del nombre de la implementación de modelo que se va a usar para ejecutar esta ejecución. Si se proporciona un valor aquí, invalidará el nombre de la implementación de modelo asociado al asistente. Si no es así, se usará el nombre de la implementación de modelo asociado al asistente.
instructions cadena o null Opcionales Invalidar el mensaje predeterminado del sistema del asistente. Esto resulta útil para modificar el comportamiento por ejecución.
tools matriz o null Opcionales Invalide las herramientas que el asistente puede usar para esta ejecución. Esto resulta útil para modificar el comportamiento por ejecución.
metadata map Opcionales Conjunto de 16 pares clave-valor que se pueden adjuntar a un objeto. Esto puede ser útil para almacenar información adicional sobre el objeto en un formato estructurado. Las claves pueden tener un máximo de 64 caracteres y los valores pueden tener un máximo de 512 caracteres.
temperature number Opcionales Temperatura de muestreo que se vaya a usar, entre 0 y 2. Los valores más altos, como 0,8, harán que la salida sea más aleatoria, mientras que los valores más bajos, como 0,2, la harán más enfocada y determinista. El valor predeterminado es 1.
top_p number Opcionales Una alternativa al muestreo con temperatura, llamada muestreo de núcleo, donde el modelo considera los resultados de los tokens con masa de probabilidad top_p. Así, 0,1 significa que solo se consideran los tokens que comprenden la masa de probabilidad del 10% superior. Por lo general, recomendamos modificar esto o la temperatura, pero no ambos. El valor predeterminado es 1.
stream boolean opcional Si true, devuelve una secuencia de eventos que se producen durante los eventos enviados por el servidor, finalizando cuando la ejecución entra en un estado de terminal con un data: [DONE] mensaje.
max_prompt_tokens integer opcional Número máximo de tokens de finalización que se pueden usar durante el transcurso de la ejecución. La ejecución hará un mejor esfuerzo para usar solo el número de tokens de finalización especificados, en varios turnos de la ejecución. Si la ejecución supera el número de tokens de finalización especificados, la ejecución finalizará con el estado incomplete.
max_completion_tokens integer opcional Número máximo de tokens de finalización que se pueden usar durante el transcurso de la ejecución. La ejecución hará un mejor esfuerzo para usar solo el número de tokens de finalización especificados, en varios turnos de la ejecución. Si la ejecución supera el número de tokens de finalización especificados, la ejecución finalizará con el estado incomplete.
truncation_strategy truncationObject opcional Controla cómo se truncará un subproceso antes de la ejecución. Úselo para controlar la ventana de contexto inicial de la ejecución.
tool_choice cadena u objeto opcional Controla la herramienta (si existe) a la que llama el modelo. Un valor none significa que el modelo no llamará a ninguna herramienta y en su lugar, generará un mensaje. auto es el valor predeterminado y significa que el modelo puede elegir entre generar un mensaje o llamar a una herramienta. Especificar una función determinada como {"type": "file_search"} o {"type": "function", "function": {"name": "my_function"}} obliga al modelo a llamar a esa herramienta.
response_format cadena u objeto opcional Especifica el formato que debe generar el modelo. Compatible con GPT-4 Turbo y todos los modelos GPT-3.5 Turbo desde gpt-3.5-turbo-1106.
La configuración en { "type": "json_object" } habilita el modo JSON, lo que garantiza que el mensaje que genera el modelo es JSON válido.
Importante: al usar el modo JSON, también debe indicar al modelo que genere JSON usted mismo a través de un mensaje de usuario o sistema. Sin esta instrucción, el modelo puede generar una secuencia de espacios en blanco no deseada hasta que la generación alcance el límite del token, lo que da lugar a una solicitud de larga duración y aparentemente "bloqueada". Tenga en cuenta que el contenido del mensaje puede cortarse parcialmente si finish_reason="length", lo que indica que la generación superó max_tokens o la conversación superó la longitud máxima del contexto.

Devoluciones

Objeto de ejecución.

Ejemplo de creación de subprocesos y ejecución de solicitud

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

run = client.beta.threads.create_and_run(
  assistant_id="asst_abc123",
  thread={
    "messages": [
      {"role": "user", "content": "Explain deep learning to a 5 year old."}
    ]
  }
)

Ejecuciones de lista

GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs?api-version=2024-08-01-preview

Devuelve una lista de ejecuciones que pertenecen a un subproceso.

Parámetro de ruta de acceso

Parámetro Type Obligatorio Description
thread_id string Obligatorio Identificador del subproceso al que pertenece la ejecución.

Parámetros de consulta

Nombre Type Obligatorio Descripción
limit integer Opcional: el valor predeterminado es 20 Límite en el número de objetos que se van a devolver. El límite puede oscilar entre 1 y 100 y el valor predeterminado es 20.
order string Opcional: el valor predeterminado es desc Orden de clasificación por la marca de tiempo created_at de los objetos. asc para orden ascendente y desc para orden descendente.
after string Opcionales Cursor para su uso en la paginación. después de es un identificador de objeto que define su lugar en la lista. Por ejemplo, si realiza una solicitud de lista y recibe 100 objetos que terminan en obj_foo, su llamada posterior puede incluir after=obj_foo para recuperar la siguiente página de la lista.
before string Opcionales Cursor para su uso en la paginación. antes de es un identificador de objeto que define su lugar en la lista. Por ejemplo, si realiza una solicitud de lista y recibe 100 objetos que terminan en obj_foo, su llamada posterior puede incluir before=obj_foo para recuperar la página anterior de la lista.

Devoluciones

Lista de ejecutar objetos.

Solicitud de ejecución de lista de ejemplo

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

runs = client.beta.threads.runs.list(
  "thread_abc123"
)
print(runs)

Enumerar los pasos de ejecución

GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/steps?api-version=2024-08-01-preview

Devuelve una lista de pasos que pertenecen a una ejecución.

Parámetros de la ruta de acceso

Parámetro Type Obligatorio Description
thread_id string Obligatorio Identificador del subproceso al que pertenece la ejecución.
run_id string Obligatorio Identificador de la ejecución asociada a los pasos de ejecución que se van a consultar.

Parámetros de consulta

Nombre Type Obligatorio Descripción
limit integer Opcional: el valor predeterminado es 20 Límite en el número de objetos que se van a devolver. El límite puede oscilar entre 1 y 100 y el valor predeterminado es 20.
order string Opcional: el valor predeterminado es desc Orden de clasificación por la marca de tiempo created_at de los objetos. asc para orden ascendente y desc para orden descendente.
after string Opcionales Cursor para su uso en la paginación. después de es un identificador de objeto que define su lugar en la lista. Por ejemplo, si realiza una solicitud de lista y recibe 100 objetos que terminan en obj_foo, su llamada posterior puede incluir after=obj_foo para recuperar la siguiente página de la lista.
before string Opcionales Cursor para su uso en la paginación. antes de es un identificador de objeto que define su lugar en la lista. Por ejemplo, si realiza una solicitud de lista y recibe 100 objetos que terminan en obj_foo, su llamada posterior puede incluir before=obj_foo para recuperar la página anterior de la lista.

Devoluciones

Una lista de objetos de pasos de ejecución.

Ejemplo de solicitud de pasos de ejecución de la lista de ejemplos

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

run_steps = client.beta.threads.runs.steps.list(
    thread_id="thread_abc123",
    run_id="run_abc123"
)
print(run_steps)

Recuperar ejecución

from openai import OpenAI
client = OpenAI()

run = client.beta.threads.runs.retrieve(
  thread_id="thread_abc123",
  run_id="run_abc123"
)

print(run)

Recupera una ejecución.

Parámetros de la ruta de acceso

Parámetro Type Obligatorio Description
thread_id string Obligatorio Identificador del subproceso que se ejecutó.
run_id string Obligatorio Identificador de la ejecución que se va a recuperar.

Devoluciones

El objeto de ejecutar que coincide con el ID de ejecución especificado.

Ejemplo de solicitud de pasos de ejecución de la lista de ejemplos

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

run = client.beta.threads.runs.retrieve(
  thread_id="thread_abc123",
  run_id="run_abc123"
)
print(run)

Recuperar paso de ejecución

GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/steps/{step_id}?api-version=2024-08-01-preview

Recupera un paso de ejecución.

Parámetros de la ruta de acceso

Parámetro Type Obligatorio Description
thread_id string Obligatorio Identificador del subproceso al que pertenece el paso de ejecución y ejecución.
run_id string Obligatorio Identificador de la ejecución a la que pertenece el paso de ejecución.
step_id string Obligatorio Identificador del paso de ejecución que se va a recuperar.

Devoluciones

El objeto de paso de ejecución que coincide con el ID especificado.

Ejemplo de recuperación de la solicitud de pasos de ejecución

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

run_step = client.beta.threads.runs.steps.retrieve(
    thread_id="thread_abc123",
    run_id="run_abc123",
    step_id="step_abc123"
)
print(run_step)

Modificar ejecución

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}?api-version=2024-08-01-preview

Modifica una ejecución.

Parámetros de la ruta de acceso

Parámetro Type Obligatorio Description
thread_id string Obligatorio Identificador del subproceso que se ejecutó.
run_id string Obligatorio Identificador de la ejecución que se va a modificar.

Cuerpo de la solicitud

Nombre Type Obligatorio Descripción
metadata map Opcionales Conjunto de 16 pares clave-valor que se pueden adjuntar a un objeto. Esto puede ser útil para almacenar información adicional sobre el objeto en un formato estructurado. Las claves pueden tener un máximo de 64 caracteres y los valores pueden tener un máximo de 512 caracteres.

Devoluciones

El objeto de ejecución modificado que coincide con el ID especificado.

Ejemplo de modificación de la solicitud de ejecución

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

run = client.beta.threads.runs.update(
  thread_id="thread_abc123",
  run_id="run_abc123",
  metadata={"user_id": "user_abc123"},
)
print(run)

Envío de salidas de herramientas para ejecutar

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/submit_tool_outputs?api-version=2024-08-01-preview

Cuando una ejecución tiene el estado: "requires_action" y require_action.type es submit_tool_outputs, este punto final se puede utilizar para enviar los resultados de las llamadas a la herramienta una vez que se hayan completado. Todas las salidas deben enviarse en una sola solicitud.

Parámetros de la ruta de acceso

Parámetro Type Obligatorio Description
thread_id string Obligatorio Identificador del subproceso al que pertenece esta ejecución.
run_id string Obligatorio Identificador de la ejecución que requiere el envío de salida de la herramienta.

Cuerpo de la solicitud

Nombre Type Obligatorio Descripción
tool_outputs array Obligatorio Lista de herramientas para las que se envían las salidas.
stream boolean Opcionales Si true, devuelve una secuencia de eventos que se producen durante los eventos enviados por el servidor, finalizando cuando la ejecución entra en un estado de terminal con un data: [DONE] mensaje.

Devoluciones

El objeto de ejecución modificado que coincide con el ID especificado.

Salida de la herramienta de envío de ejemplo para ejecutar la solicitud

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

run = client.beta.threads.runs.submit_tool_outputs(
  thread_id="thread_abc123",
  run_id="run_abc123",
  tool_outputs=[
    {
      "tool_call_id": "call_abc123",
      "output": "28C"
    }
  ]
)
print(run)

Cancelación de una ejecución

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/cancel?api-version=2024-08-01-preview

Cancela una ejecución que se in_progress.

Parámetros de la ruta de acceso

Parámetro Type Obligatorio Description
thread_id string Obligatorio Identificador del subproceso al que pertenece esta ejecución.
run_id string Obligatorio Identificador de la ejecución que se va a cancelar.

Devoluciones

El objeto de ejecución modificado que coincide con el ID especificado.

Salida de la herramienta de envío de ejemplo para ejecutar la solicitud

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

run = client.beta.threads.runs.cancel(
  thread_id="thread_abc123",
  run_id="run_abc123"
)
print(run)

Objeto Run

Representa una ejecución de ejecución en un subproceso.

Nombre Escribir Description
id string Identificador al que se puede hacer referencia en puntos de conexión de API.
object string Tipo de objeto, que siempre es thread.run.
created_at integer Marca de tiempo de Unix (en segundos) para cuando se creó la ejecución.
thread_id string Identificador del subproceso en el que se ejecutó como parte de esta ejecución.
assistant_id string Identificador del asistente usado para la ejecución de esta ejecución.
status string Estado de la ejecución, que puede ser queued, in_progress, requires_action, cancelling, cancelled, failed, completed o expired.
required_action objeto o null Detalles sobre la acción necesaria para continuar la ejecución. Será null si no se requiere ninguna acción.
last_error objeto o null El último error asociado a esta ejecución. Será null si no hay errores.
expires_at integer Marca de tiempo de Unix (en segundos) para cuando expire la ejecución.
started_at entero o null Marca de tiempo de Unix (en segundos) para cuando se inició la ejecución.
cancelled_at entero o null Marca de tiempo de Unix (en segundos) para cuando se canceló la ejecución.
failed_at entero o null Marca de tiempo de Unix (en segundos) para cuando se produjo un error en la ejecución.
completed_at entero o null Marca de tiempo de Unix (en segundos) para cuando se completó la ejecución.
model string Nombre de la implementación de modelo que usó el asistente para esta ejecución.
instructions string Las instrucciones que el asistente usó para esta ejecución.
tools array Lista de herramientas que el asistente usó para esta ejecución.
file_ids array Lista de identificadores de archivo que usa el asistente para esta ejecución.
metadata map Conjunto de 16 pares clave-valor que se pueden adjuntar a un objeto. Esto puede ser útil para almacenar información adicional sobre el objeto en un formato estructurado. Las claves pueden tener un máximo de 64 caracteres y los valores pueden tener un máximo de 512 caracteres.
tool_choice cadena u objeto Controla la herramienta (si existe) a la que llama el modelo. none significa que el modelo no llamará a ninguna herramienta, sino que generará un mensaje. auto es el valor predeterminado y significa que el modelo puede elegir entre generar un mensaje o llamar a una herramienta. Especificar una función determinada como {"type": "file_search"} o {"type": "function", "function": {"name": "my_function"}} obliga al modelo a llamar a esa herramienta.
max_prompt_tokens entero o null Número máximo de tokens de solicitud especificados que se usaron durante el transcurso de la ejecución.
max_completion_tokens entero o null Número máximo de tokens de finalización especificados que se usaron durante el transcurso de la ejecución.
usage objeto o null Estadísticas de uso relacionadas con la ejecución. Este valor será NULL si la ejecución no está en un estado terminal (por ejemplo in_progress, queued).
truncation_strategy objeto Controla cómo se truncará un subproceso antes de la ejecución.
response_format string Formato que debe generar el modelo. Compatible con GPT-4 Turbo y todos los modelos GPT-3.5 Turbo desde gpt-3.5-turbo-1106.
tool_choice string Controla la herramienta (si existe) a la que llama el modelo. none significa que el modelo no llamará a ninguna herramienta, sino que generará un mensaje. auto es el valor predeterminado y significa que el modelo puede elegir entre generar un mensaje o llamar a una herramienta.

Ejecutar objeto de paso

Representar un paso en la ejecución de una ejecución.

Nombre Escribir Description
id string Identificador del paso de ejecución, al que se puede hacer referencia en puntos de conexión de API.
object string Tipo de objeto, que siempre es thread.run.step.
created_at integer Marca de tiempo de Unix (en segundos) para cuando se creó el paso de ejecución.
assistant_id string Identificador del asistente asociado al paso de ejecución.
thread_id string Identificador del subproceso que se ejecutó.
run_id string El identificador de la ejecución de la que forma parte este paso de ejecución.
type string Tipo de paso de ejecución, que puede ser message_creation o tool_calls.
status string Estado del paso de ejecución, que puede ser in_progress, cancelled, failed, completed o expired.
step_details object Detalles del paso de ejecución.
last_error objeto o null Último error asociado a este paso de ejecución. Será null si no hay errores.
expired_at entero o null Marca de tiempo de Unix (en segundos) para cuando el paso de ejecución expiró. Un paso se considera expirado si la ejecución primaria ha expirado.
cancelled_at entero o null Marca de tiempo de Unix (en segundos) para cuando se canceló el paso de ejecución.
failed_at entero o null Marca de tiempo de Unix (en segundos) para cuando se produjo un error en el paso de ejecución.
completed_at entero o null Marca de tiempo de Unix (en segundos) para cuando se complete el paso de ejecución.
metadata map Conjunto de 16 pares clave-valor que se pueden adjuntar a un objeto. Esto puede ser útil para almacenar información adicional sobre el objeto en un formato estructurado. Las claves pueden tener un máximo de 64 caracteres y los valores pueden tener un máximo de 512 caracteres.

Transmisión de un resultado de ejecución (versión preliminar)

Transmita el resultado de ejecutar una ejecución o reanudar una ejecución después de enviar salidas de la herramienta. Puede transmitir eventos después de:

Para transmitir un resultado, pase "stream": true al crear una ejecución. La respuesta será una secuencia de Eventos enviados por el servidor.

Ejemplo de streaming

from typing_extensions import override
from openai import AssistantEventHandler
 
# First, we create a EventHandler class to define
# how we want to handle the events in the response stream.
 
class EventHandler(AssistantEventHandler):    
  @override
  def on_text_created(self, text) -> None:
    print(f"\nassistant > ", end="", flush=True)
      
  @override
  def on_text_delta(self, delta, snapshot):
    print(delta.value, end="", flush=True)
      
  def on_tool_call_created(self, tool_call):
    print(f"\nassistant > {tool_call.type}\n", flush=True)
  
  def on_tool_call_delta(self, delta, snapshot):
    if delta.type == 'code_interpreter':
      if delta.code_interpreter.input:
        print(delta.code_interpreter.input, end="", flush=True)
      if delta.code_interpreter.outputs:
        print(f"\n\noutput >", flush=True)
        for output in delta.code_interpreter.outputs:
          if output.type == "logs":
            print(f"\n{output.logs}", flush=True)
 
# Then, we use the `create_and_stream` SDK helper 
# with the `EventHandler` class to create the Run 
# and stream the response.
 
with client.beta.threads.runs.stream(
  thread_id=thread.id,
  assistant_id=assistant.id,
  instructions="Please address the user as Jane Doe. The user has a premium account.",
  event_handler=EventHandler(),
) as stream:
  stream.until_done()

Truncamiento (objeto)

Controla cómo se truncará un subproceso antes de la ejecución. Úselo para controlar la ventana de contexto inicial de la ejecución.

Nombre Escribir Descripción Obligatorio
type string Estrategia de truncamiento que se va a usar para el subproceso. El valor predeterminado es auto. Si se establece en last_messages, el subproceso se truncará en los n mensajes más recientes del subproceso. Cuando se establece en auto, los mensajes en el centro del subproceso se quitarán para ajustarse a la longitud de contexto del modelo, max_prompt_tokens.
last_messages integer Número de mensajes más recientes del subproceso al construir el contexto de la ejecución. No

Objeto delta de mensaje

Representa un delta de mensaje. Por ejemplo, los campos modificados de un mensaje durante el streaming.

Nombre Escribir Description
id string Identificador del mensaje, al que se puede hacer referencia en puntos de conexión de API.
object string Tipo de objeto, que siempre es thread.message.delta.
delta objeto Delta que contiene los campos que han cambiado en el mensaje.

Ejecutar el objeto delta de paso

Representa un delta de paso de ejecución. Por ejemplo, los campos modificados de un paso de ejecución durante el streaming.

Nombre Escribir Description
id string Identificador del paso de ejecución, al que se puede hacer referencia en puntos de conexión de API.
object string Tipo de objeto, que siempre es thread.run.step.delta.
delta objeto Delta que contiene los campos que han cambiado en el paso de ejecución.

Eventos de transmisión del asistente

Representa un evento emitido al transmitir una ejecución. Cada evento de una secuencia de eventos enviados por el servidor tiene una propiedad de evento y datos:

event: thread.created
data: {"id": "thread_123", "object": "thread", ...}

Los eventos se emiten cada vez que se crea un nuevo objeto, se realiza la transición a un nuevo estado o se transmiten en partes (delta). Por ejemplo, thread.run.created se emite cuando se crea una nueva ejecución, thread.run.completed cuando se completa una ejecución, etc. Cuando un Asistente decide crear un mensaje durante una ejecución, emitimos un evento thread.message.created, un evento thread.message.in_progress, muchos subprocesos.message.delta eventos y, por último, un evento thread.message.completed.

Nombre Escribir Descripción
thread.created data es un subproceso. Se produce cuando se crea un nuevo subproceso.
thread.run.created data es una ejecución. Se produce cuando se crea una nueva ejecución.
thread.run.queued data es una ejecución. Se produce cuando una ejecución se mueve a un estado en cola.
thread.run.in_progress data es una ejecución. Se produce cuando una ejecución se mueve a un estado de in_progress.
thread.run.requires_action data es una ejecución. Se produce cuando una ejecución se mueve a un estado de requires_action.
thread.run.completed data es una ejecución. Se produce cuando se completa una ejecución.
thread.run.failed data es una ejecución. Se produce cuando se produce un error en una ejecución.
thread.run.cancelling data es una ejecución. Se produce cuando una ejecución se mueve a un estado de cancelling.
thread.run.cancelled data es una ejecución. Se produce cuando se cancela una ejecución.
thread.run.expired data es una ejecución. Se produce cuando expira una ejecución.
thread.run.step.created data es un paso de ejecución. Se produce cuando se crea un paso de ejecución.
thread.run.step.in_progress data es un paso de ejecución. Se produce cuando un paso de ejecución se mueve a un estado de in_progress.
thread.run.step.delta data es un delta de paso de ejecución. Se produce cuando se transmiten partes de un paso de ejecución.
thread.run.step.completed data es un paso de ejecución. Se produce cuando se completa un paso de ejecución.
thread.run.step.failed data es un paso de ejecución. Se produce cuando falla un paso de ejecución.
thread.run.step.cancelled data es un paso de ejecución. Se produce cuando se cancela un paso de ejecución.
thread.run.step.expired data es un paso de ejecución. Se produce cuando expira un paso de ejecución.
thread.message.created data es un mensaje. Se produce cuando se crea un mensaje.
thread.message.in_progress data es un mensaje. Se produce cuando un mensaje se mueve a un estado de in_progress.
thread.message.delta data es un delta de mensaje. Se produce cuando se transmiten partes de un mensaje.
thread.message.completed data es un mensaje. Se produce cuando se completa un mensaje.
thread.message.incomplete data es un mensaje. Se produce cuando finaliza un mensaje antes de que se complete.
error data es un error. Se produce cuando ocurre un error. Esto puede ocurrir debido a un error interno del servidor o a un tiempo de espera.
done data es [DONE]. Se produce cuando finaliza una secuencia.