Compartir vía


Referencia 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.

Creación de un asistente

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview

Cree un asistente con un modelo e instrucciones.

Cuerpo de la solicitud

Nombre Type Obligatorio Descripción
model string Obligatorio Nombre de implementación del modelo que se va a usar.
name cadena o null Opcionales Nombre del asistente. La longitud máxima es de 256 caracteres.
descripción cadena o null Opcionales Descripción del asistente. La longitud máxima es de 512 caracteres.
detalladas cadena o null Opcionales Las instrucciones del sistema que usa el asistente. La longitud máxima es de 256 000 caracteres.
tools array Opcionales El valor predeterminado es []. Lista de herramientas habilitadas en el asistente. Puede haber un máximo de 128 herramientas por asistente. Actualmente, las herramientas pueden ser de tipos code_interpreter o function. Una descripción de function puede tener un máximo de 1024 caracteres.
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.
temperatura número o null Opcionales De manera predeterminada, su valor es 1. Determina la temperatura de muestreo que se va 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.
top_p número o null Opcionales De manera predeterminada, su valor es 1. 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.
response_format cadena u objeto Opcionales 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. Al establecer este parámetro en { "type": "json_object" } se habilita el modo JSON, lo que garantiza que el mensaje que genera el modelo es JSON válido. Importantemente, al usar el modo JSON, también debe indicar al modelo que genere JSON usted mismo mediante 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". Además, el contenido del mensaje puede cortarse parcialmente si usa finish_reason="length", lo que indica que la generación superó max_tokens o la conversación superó la longitud máxima del contexto.
tool_resources objeto Opcionales Conjunto de recursos que usan las herramientas del asistente. Los recursos son específicos del tipo de herramienta. Por ejemplo, la herramienta code_interpreter requiere una lista de identificadores de archivo, mientras que la file_search herramienta requiere una lista de identificadores de almacén de vectores.

Devoluciones

Objeto assistant.

Ejemplo de solicitud de creación del asistente

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")
    )

assistant = client.beta.assistants.create(
  instructions="You are an AI assistant that can write code to help answer math questions",
  model="<REPLACE WITH MODEL DEPLOYMENT NAME>", # replace with model deployment name. 
  tools=[{"type": "code_interpreter"}]
)

Enumerar asistentes

GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview

Devuelve una lista de todos los asistentes.

Parámetros de consulta

Parámetro Type Obligatorio Descripción
limit integer Opcionales 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. after 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. before 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 objetos assistant

Lista de ejemplo de asistentes

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")
    )

my_assistants = client.beta.assistants.list(
    order="desc",
    limit="20",
)
print(my_assistants.data)

Recuperar asistente

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

Recupera un asistente.

Parámetros de la ruta de acceso

Parámetro Type Obligatorio Description
assistant_id string Obligatorio Identificador del asistente que se va a recuperar.

Devuelve

Objeto assistant que coincide con el identificador especificado.

Asistente de recuperación de ejemplo

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

my_assistant = client.beta.assistants.retrieve("asst_abc123")
print(my_assistant)

Modificar asistente

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

Modifica un asistente.

Parámetros de la ruta de acceso

Parámetro Type Obligatorio Descripción
assistant_id string Obligatorio Identificador del asistente al que pertenece el archivo.

Cuerpo de la solicitud

Parámetro Type Obligatorio Descripción
model Opcionales Nombre de la implementación del modelo que se va a usar.
name cadena o null Opcionales Nombre del asistente. La longitud máxima es de 256 caracteres.
description cadena o null Opcionales Descripción del asistente. La longitud máxima es de 512 caracteres.
instructions cadena o null Opcionales Las instrucciones del sistema que usa el asistente. La longitud máxima es de 32768 caracteres.
tools array Opcionales El valor predeterminado es []. Lista de herramientas habilitadas en el asistente. Puede haber un máximo de 128 herramientas por asistente. Las herramientas pueden ser de tipos code_interpreter o función. Una descripción de function puede tener un máximo de 1024 caracteres.
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 número o null Opcionales De manera predeterminada, su valor es 1. Determina la temperatura de muestreo que se va 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.
top_p número o null Opcionales De manera predeterminada, su valor es 1. 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.
response_format cadena u objeto Opcionales 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. Al establecer este parámetro en { "type": "json_object" } se habilita el modo JSON, lo que garantiza que el mensaje que genera el modelo es JSON válido. Importantemente, al usar el modo JSON, también debe indicar al modelo que genere JSON usted mismo mediante 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". Además, el contenido del mensaje puede cortarse parcialmente si usa finish_reason="length", lo que indica que la generación superó max_tokens o la conversación superó la longitud máxima del contexto.
tool_resources objeto Opcionales Conjunto de recursos que usan las herramientas del asistente. Los recursos son específicos del tipo de herramienta. Por ejemplo, la herramienta code_interpreter requiere una lista de identificadores de archivo, mientras que la file_search herramienta requiere una lista de identificadores de almacén de vectores.

Devuelve

Objeto assistant object modificado.

Ejemplo de modificación de asistente

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

my_updated_assistant = client.beta.assistants.update(
  "asst_abc123",
  instructions="You are an HR bot, and you have access to files to answer employee questions about company policies. Always respond with info from either of the files.",
  name="HR Helper",
  tools=[{"type": "code-interpreter"}],
  model="gpt-4", #model = model deployment name
)

print(my_updated_assistant)

Eliminar asistente

DELETE https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}?api-version=2024-08-01-preview

Elimina un asistente.

Parámetros de la ruta de acceso

Parámetro Type Obligatorio Description
assistant_id string Obligatorio Identificador del asistente al que pertenece el archivo.

Devuelve

Estado de eliminación.

Ejemplo de eliminación de asistente

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

response = client.beta.assistants.delete("asst_abc123")
print(response)

Referencia de API de carga de archivos

Los asistentes usan la misma API para la carga de archivos como ajuste preciso. Al cargar un archivo, debe especificar un valor adecuado para el parámetro de propósito.

Objeto Assistant

Campo Tipo 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 asistente.
created_at integer Marca de tiempo de Unix (en segundos) para cuando se creó el asistente.
name cadena o null Nombre del asistente. La longitud máxima es de 256 caracteres.
description cadena o null Descripción del asistente. La longitud máxima es de 512 caracteres.
model string Nombre del nombre de implementación del modelo que se va a usar.
instructions cadena o null Las instrucciones del sistema que usa el asistente. La longitud máxima es de 32768 caracteres.
tools array Lista de herramientas habilitadas en el asistente. Puede haber un máximo de 128 herramientas por asistente. Las herramientas pueden ser de tipos code_interpreter o función. Una descripción de function puede tener un máximo de 1024 caracteres.
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.
temperature número o null De manera predeterminada, su valor es 1. Determina la temperatura de muestreo que se va 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.
top_p número o null De manera predeterminada, su valor es 1. 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.
response_format cadena u objeto 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. Al establecer este parámetro en { "type": "json_object" } se habilita el modo JSON, lo que garantiza que el mensaje que genera el modelo es JSON válido. Importantemente, al usar el modo JSON, también debe indicar al modelo que genere JSON usted mismo mediante 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". Además, el contenido del mensaje puede cortarse parcialmente si usa finish_reason="length", lo que indica que la generación superó max_tokens o la conversación superó la longitud máxima del contexto.
tool_resources objeto Conjunto de recursos que usan las herramientas del asistente. Los recursos son específicos del tipo de herramienta. Por ejemplo, la herramienta code_interpreter requiere una lista de identificadores de archivo, mientras que la file_search herramienta requiere una lista de identificadores de almacén de vectores.