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 . |
Sí |
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. |