Referência de execução da API de assistentes (Pré-visualização)
Nota
- A pesquisa de arquivos pode ingerir até 10.000 arquivos por assistente - 500 vezes mais do que antes. É rápida, suporta consultas paralelas através de pesquisas multi-thread e apresenta reclassificação e reescrita de consultas melhoradas.
- O arquivo de vetores é um novo objeto da API. Depois de um ficheiro ser adicionado a um arquivo de vetores, é automaticamente analisado, fragmentado e incorporado, ficando pronto para ser pesquisado. Os arquivos de vetores podem ser utilizados entre assistentes e threads, o que simplifica a gestão de ficheiros e a faturação.
- Adicionamos suporte para o
tool_choice
parâmetro que pode ser usado para forçar o uso de uma ferramenta específica (como pesquisa de arquivos, interpretador de código ou uma função) em uma execução específica.
Este artigo fornece documentação de referência para Python e REST para a nova API de assistentes (Preview). Orientações passo a passo mais detalhadas são fornecidas no guia de introdução.
Criar execução
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs?api-version=2024-08-01-preview
Crie uma execução.
Parâmetro Path
Parâmetro | Type | Obrigatório | Description |
---|---|---|---|
thread_id |
string | Obrigatório | A ID do thread para o qual criar uma mensagem. |
Corpo do pedido
Nome | Type | Obrigatório | Description |
---|---|---|---|
assistant_id |
string | Obrigatório | A ID do assistente a ser usado para executar essa execução. |
model |
string ou null | Opcional | O nome da implantação do modelo a ser usado para executar essa execução. Se um valor for fornecido aqui, ele substituirá o nome de implantação do modelo associado ao assistente. Caso contrário, o nome de implantação do modelo associado ao assistente será usado. |
instructions |
string ou null | Opcional | Substitui as instruções do assistente. Isso é útil para modificar o comportamento por execução. |
additional_instructions |
string | Opcional | Acrescenta instruções adicionais no final das instruções para a execução. Isso é útil para modificar o comportamento por execução sem substituir outras instruções. |
additional_messages |
matriz | Opcional | Adiciona mensagens adicionais ao thread antes de criar a execução. |
tools |
array ou null | Opcional | Substitua as ferramentas que o assistente pode usar para esta execução. Isso é útil para modificar o comportamento por execução. |
metadata |
map | Opcional | Conjunto de 16 pares chave-valor que podem ser anexados a um objeto. Isso pode ser útil para armazenar informações adicionais sobre o objeto em um formato estruturado. As teclas podem ter no máximo 64 caracteres e os valores podem ter, no máximo, 512 caracteres. |
temperature |
Número | Opcional | Qual a temperatura de amostragem a utilizar, entre 0 e 2. Valores mais altos como 0,8 tornarão a saída mais aleatória, enquanto valores mais baixos como 0,2 a tornarão mais focada e determinística. A predefinição é 1. |
top_p |
Número | Opcional | Uma alternativa à amostragem com temperatura, chamada amostragem de núcleo, onde o modelo considera os resultados dos tokens com top_p massa de probabilidade. Assim, 0,1 significa que apenas os tokens que compõem a massa de probabilidade superior de 10% são considerados. Geralmente recomendamos alterar esta ou a temperatura, mas não ambas. A predefinição é 1. |
stream |
boolean | opcional | Se true , retorna um fluxo de eventos que acontecem durante a Execução como eventos enviados pelo servidor, terminando quando a Execução entra em um estado de terminal com uma data: [DONE] mensagem. |
max_prompt_tokens |
integer | opcional | O número máximo de tokens de conclusão que podem ser usados ao longo da execução. A execução fará um esforço melhor para usar apenas o número de tokens de conclusão especificados, em várias voltas da corrida. Se a execução exceder o número de tokens de conclusão especificados, a execução terminará com status incomplete . |
max_completion_tokens |
integer | opcional | O número máximo de tokens de conclusão que podem ser usados ao longo da execução. A execução fará um esforço melhor para usar apenas o número de tokens de conclusão especificados, em várias voltas da corrida. Se a execução exceder o número de tokens de conclusão especificados, a execução terminará com status incomplete . |
truncation_strategy |
truncationObject | opcional | Controles de como um thread será truncado antes da execução. Use isso para controlar a janela de contexto inicial da execução. |
tool_choice |
string ou objeto | opcional | Controla qual (se houver) ferramenta é chamada pelo modelo. Um none valor significa que o modelo não chamará nenhuma ferramenta e, em vez disso, gerará uma mensagem. auto é o valor padrão e significa que o modelo pode escolher entre gerar uma mensagem ou chamar uma ferramenta. Especificar uma ferramenta específica como {"type": "file_search"} ou {"type": "function", "function": {"name": "my_function"}} força o modelo a chamar essa ferramenta. |
response_format |
string ou objeto | opcional | Especifica o formato que o modelo deve produzir. Compatível com GPT-4 Turbo e todos os modelos GPT-3.5 Turbo desde gpt-3.5-turbo-1106 . Configuração para { "type": "json_object" } habilitar o modo JSON, que garante que a mensagem gerada pelo modelo seja JSON válida. Importante: ao usar o modo JSON, você também deve instruir o modelo a produzir JSON por conta própria por meio de um sistema ou mensagem do usuário. Sem isso, o modelo pode gerar um fluxo interminável de espaço em branco até que a geração atinja o limite do token, resultando em uma solicitação de longa duração e aparentemente "presa". Observe também que o conteúdo da mensagem pode ser parcialmente cortado se finish_reason="length" , o que indica que a geração excedeu max_tokens ou a conversa excedeu o comprimento máximo de contexto. |
Devoluções
Um objeto run.
Exemplo criar solicitação de execução
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)
Criar thread e executar
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/runs?api-version=2024-08-01-preview
Crie um thread e execute-o em uma única solicitação.
Órgão do Pedido
Nome | Type | Obrigatório | Description |
---|---|---|---|
assistant_id |
string | Obrigatório | A ID do assistente a ser usado para executar essa execução. |
thread |
objeto | Opcional | |
model |
string ou null | Opcional | A ID do nome de implantação do modelo a ser usado para executar essa execução. Se um valor for fornecido aqui, ele substituirá o nome de implantação do modelo associado ao assistente. Caso contrário, o nome de implantação do modelo associado ao assistente será usado. |
instructions |
string ou null | Opcional | Substitua a mensagem padrão do sistema do assistente. Isso é útil para modificar o comportamento por execução. |
tools |
array ou null | Opcional | Substitua as ferramentas que o assistente pode usar para esta execução. Isso é útil para modificar o comportamento por execução. |
metadata |
map | Opcional | Conjunto de 16 pares chave-valor que podem ser anexados a um objeto. Isso pode ser útil para armazenar informações adicionais sobre o objeto em um formato estruturado. As teclas podem ter no máximo 64 caracteres e os valores podem ter, no máximo, 512 caracteres. |
temperature |
Número | Opcional | Qual a temperatura de amostragem a utilizar, entre 0 e 2. Valores mais altos como 0,8 tornarão a saída mais aleatória, enquanto valores mais baixos como 0,2 a tornarão mais focada e determinística. A predefinição é 1. |
top_p |
Número | Opcional | Uma alternativa à amostragem com temperatura, chamada amostragem de núcleo, onde o modelo considera os resultados dos tokens com top_p massa de probabilidade. Assim, 0,1 significa que apenas os tokens que compõem a massa de probabilidade superior de 10% são considerados. Geralmente recomendamos alterar esta ou a temperatura, mas não ambas. A predefinição é 1. |
stream |
boolean | opcional | Se true , retorna um fluxo de eventos que acontecem durante a Execução como eventos enviados pelo servidor, terminando quando a Execução entra em um estado de terminal com uma data: [DONE] mensagem. |
max_prompt_tokens |
integer | opcional | O número máximo de tokens de conclusão que podem ser usados ao longo da execução. A execução fará um esforço melhor para usar apenas o número de tokens de conclusão especificados, em várias voltas da corrida. Se a execução exceder o número de tokens de conclusão especificados, a execução terminará com status incomplete . |
max_completion_tokens |
integer | opcional | O número máximo de tokens de conclusão que podem ser usados ao longo da execução. A execução fará um esforço melhor para usar apenas o número de tokens de conclusão especificados, em várias voltas da corrida. Se a execução exceder o número de tokens de conclusão especificados, a execução terminará com status incomplete . |
truncation_strategy |
truncationObject | opcional | Controles de como um thread será truncado antes da execução. Use isso para controlar a janela de contexto inicial da execução. |
tool_choice |
string ou objeto | opcional | Controla qual (se houver) ferramenta é chamada pelo modelo. Um none valor significa que o modelo não chamará nenhuma ferramenta e, em vez disso, gerará uma mensagem. auto é o valor padrão e significa que o modelo pode escolher entre gerar uma mensagem ou chamar uma ferramenta. Especificar uma ferramenta específica como {"type": "file_search"} ou {"type": "function", "function": {"name": "my_function"}} força o modelo a chamar essa ferramenta. |
response_format |
string ou objeto | opcional | Especifica o formato que o modelo deve produzir. Compatível com GPT-4 Turbo e todos os modelos GPT-3.5 Turbo desde gpt-3.5-turbo-1106 . Configuração para { "type": "json_object" } habilitar o modo JSON, que garante que a mensagem gerada pelo modelo seja JSON válida. Importante: ao usar o modo JSON, você também deve instruir o modelo a produzir JSON por conta própria por meio de um sistema ou mensagem do usuário. Sem isso, o modelo pode gerar um fluxo interminável de espaço em branco até que a geração atinja o limite do token, resultando em uma solicitação de longa duração e aparentemente "presa". Observe também que o conteúdo da mensagem pode ser parcialmente cortado se finish_reason="length" , o que indica que a geração excedeu max_tokens ou a conversa excedeu o comprimento máximo de contexto. |
Devoluções
Um objeto run.
Exemplo criar thread e executar solicitação
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."}
]
}
)
Execuções de lista
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs?api-version=2024-08-01-preview
Retorna uma lista de execuções pertencentes a um thread.
Parâmetro Path
Parâmetro | Type | Obrigatório | Description |
---|---|---|---|
thread_id |
string | Obrigatório | A ID do thread ao qual a execução pertence. |
Parâmetros de Consulta
Nome | Type | Obrigatório | Description |
---|---|---|---|
limit |
integer | Opcional - Padrão para 20 | Um limite no número de objetos a serem retornados. O limite pode variar entre 1 e 100, e o padrão é 20. |
order |
string | Opcional - Padrões para desc | Ordem de classificação pelo carimbo de data/hora created_at dos objetos. asc para ordem crescente e desc para ordem decrescente. |
after |
string | Opcional | Um cursor para uso na paginação. after é um ID de objeto que define o seu lugar na lista. Por exemplo, se você fizer uma solicitação de lista e receber 100 objetos, terminando com obj_foo, sua chamada subsequente poderá incluir after=obj_foo para buscar a próxima página da lista. |
before |
string | Opcional | Um cursor para uso na paginação. antes é um ID de objeto que define seu lugar na lista. Por exemplo, se você fizer uma solicitação de lista e receber 100 objetos, terminando com obj_foo, sua chamada subsequente poderá incluir before=obj_foo para buscar a página anterior da lista. |
Devoluções
Uma lista de objetos de execução .
Exemplo de lista executa solicitação
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)
Listar etapas de execução
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/steps?api-version=2024-08-01-preview
Retorna uma lista de etapas pertencentes a uma execução.
Parâmetros de caminho
Parâmetro | Type | Obrigatório | Description |
---|---|---|---|
thread_id |
string | Obrigatório | A ID do thread ao qual a execução pertence. |
run_id |
string | Obrigatório | A ID da execução associada às etapas de execução a serem consultadas. |
Parâmetros de consultas
Nome | Type | Obrigatório | Description |
---|---|---|---|
limit |
integer | Opcional - Padrão para 20 | Um limite no número de objetos a serem retornados. O limite pode variar entre 1 e 100, e o padrão é 20. |
order |
string | Opcional - Padrões para desc | Ordem de classificação pelo carimbo de data/hora created_at dos objetos. asc para ordem crescente e desc para ordem decrescente. |
after |
string | Opcional | Um cursor para uso na paginação. after é um ID de objeto que define o seu lugar na lista. Por exemplo, se você fizer uma solicitação de lista e receber 100 objetos, terminando com obj_foo, sua chamada subsequente poderá incluir after=obj_foo para buscar a próxima página da lista. |
before |
string | Opcional | Um cursor para uso na paginação. antes é um ID de objeto que define seu lugar na lista. Por exemplo, se você fizer uma solicitação de lista e receber 100 objetos, terminando com obj_foo, sua chamada subsequente poderá incluir before=obj_foo para buscar a página anterior da lista. |
Devoluções
Uma lista de objetos de etapa de execução .
Exemplo de solicitação de etapas de execução de lista
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 execução
from openai import OpenAI
client = OpenAI()
run = client.beta.threads.runs.retrieve(
thread_id="thread_abc123",
run_id="run_abc123"
)
print(run)
Recupera uma execução.
Parâmetros de caminho
Parâmetro | Type | Obrigatório | Description |
---|---|---|---|
thread_id |
string | Obrigatório | A ID do thread que foi executado. |
run_id |
string | Obrigatório | O ID da execução a ser recuperada. |
Devoluções
O objeto run correspondente ao ID de execução especificado.
Exemplo de solicitação de etapas de execução de lista
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 etapa de execução
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 uma etapa de execução.
Parâmetros de caminho
Parâmetro | Type | Obrigatório | Description |
---|---|---|---|
thread_id |
string | Obrigatório | A ID do thread ao qual a etapa de execução e execução pertence. |
run_id |
string | Obrigatório | A ID da execução à qual a etapa de execução pertence. |
step_id |
string | Obrigatório | O ID da etapa de execução a ser recuperada. |
Devoluções
O objeto da etapa de execução correspondente à ID especificada.
Exemplo de solicitação de etapas de execução de recuperação
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 execução
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}?api-version=2024-08-01-preview
Modifica uma execução.
Parâmetros de caminho
Parâmetro | Type | Obrigatório | Description |
---|---|---|---|
thread_id |
string | Obrigatório | A ID do thread que foi executado. |
run_id |
string | Obrigatório | A ID da execução a ser modificada. |
Corpo do pedido
Nome | Type | Obrigatório | Description |
---|---|---|---|
metadata |
map | Opcional | Conjunto de 16 pares chave-valor que podem ser anexados a um objeto. Isso pode ser útil para armazenar informações adicionais sobre o objeto em um formato estruturado. As teclas podem ter no máximo 64 caracteres e os valores podem ter, no máximo, 512 caracteres. |
Devoluções
O objeto run modificado corresponde à ID especificada.
Exemplo de solicitação de execução de modificação
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)
Enviar saídas da ferramenta para execução
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/submit_tool_outputs?api-version=2024-08-01-preview
Quando uma execução tem o status: "requires_action" e required_action.type é submit_tool_outputs, esse ponto de extremidade pode ser usado para enviar as saídas das chamadas da ferramenta assim que todas forem concluídas. Todas as saídas devem ser enviadas em uma única solicitação.
Parâmetros de caminho
Parâmetro | Type | Obrigatório | Description |
---|---|---|---|
thread_id |
string | Obrigatório | A ID do thread ao qual essa execução pertence. |
run_id |
string | Obrigatório | O ID da execução que requer o envio de saída da ferramenta. |
Corpo do pedido
Nome | Type | Obrigatório | Description |
---|---|---|---|
tool_outputs |
matriz | Necessário | Uma lista de ferramentas para as quais os resultados estão sendo enviados. |
stream |
boolean | Opcional | Se true , retorna um fluxo de eventos que acontecem durante a Execução como eventos enviados pelo servidor, terminando quando a Execução entra em um estado de terminal com uma data: [DONE] mensagem. |
Devoluções
O objeto run modificado corresponde à ID especificada.
Exemplo de saídas da ferramenta de envio para executar a solicitação
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)
Cancelar uma execução
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/cancel?api-version=2024-08-01-preview
Cancela uma execução que está in_progress.
Parâmetros de caminho
Parâmetro | Type | Obrigatório | Description |
---|---|---|---|
thread_id |
string | Obrigatório | A ID do thread ao qual essa execução pertence. |
run_id |
string | Obrigatório | O ID da execução a ser cancelada. |
Devoluções
O objeto run modificado corresponde à ID especificada.
Exemplo de saídas da ferramenta de envio para executar a solicitação
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)
Executar objeto
Representa uma execução executada em um thread.
Nome | Tipo | Description |
---|---|---|
id |
string | O identificador, que pode ser referenciado em pontos de extremidade de API. |
object |
string | O tipo de objeto, que é sempre thread.run. |
created_at |
integer | O carimbo de data/hora do Unix (em segundos) para quando a execução foi criada. |
thread_id |
string | A ID do thread que foi executado como parte desta execução. |
assistant_id |
string | O ID do assistente usado para a execução desta execução. |
status |
string | O status da execução, que pode ser , , , , cancelling , cancelled failed , completed , ou expired . requires_action in_progress queued |
required_action |
objeto ou null | Detalhes sobre a ação necessária para continuar a execução. Será nulo se nenhuma ação for necessária. |
last_error |
objeto ou null | O último erro associado a esta execução. Será nulo se não houver erros. |
expires_at |
integer | O carimbo de data/hora do Unix (em segundos) para quando a execução expirará. |
started_at |
inteiro ou nulo | O carimbo de data/hora do Unix (em segundos) para quando a execução foi iniciada. |
cancelled_at |
inteiro ou nulo | O carimbo de data/hora Unix (em segundos) para quando a execução foi cancelada. |
failed_at |
inteiro ou nulo | O carimbo de data/hora do Unix (em segundos) para quando a execução falhou. |
completed_at |
inteiro ou nulo | O carimbo de data/hora do Unix (em segundos) para quando a execução foi concluída. |
model |
string | O nome de implantação do modelo que o assistente usou para essa execução. |
instructions |
string | As instruções que o assistente usou para esta execução. |
tools |
matriz | A lista de ferramentas que o assistente usou para esta execução. |
file_ids |
matriz | A lista de IDs de arquivo que o assistente usou para essa execução. |
metadata |
map | Conjunto de 16 pares chave-valor que podem ser anexados a um objeto. Isso pode ser útil para armazenar informações adicionais sobre o objeto em um formato estruturado. As teclas podem ter no máximo 64 caracteres e os valores podem ter, no máximo, 512 caracteres. |
tool_choice |
string ou objeto | Controla qual (se houver) ferramenta é chamada pelo modelo. none significa que o modelo não chamará nenhuma ferramenta e, em vez disso, gerará uma mensagem. auto é o valor padrão e significa que o modelo pode escolher entre gerar uma mensagem ou chamar uma ferramenta. Especificar uma ferramenta específica como {"type": "file_search"} ou {"type": "function", "function": {"name": "my_function"}} força o modelo a chamar essa ferramenta. |
max_prompt_tokens |
inteiro ou nulo | O número máximo de tokens de prompt especificado para ter sido usado ao longo da execução. |
max_completion_tokens |
inteiro ou nulo | O número máximo de tokens de conclusão especificado para ter sido usado ao longo da execução. |
usage |
objeto ou null | Estatísticas de utilização relacionadas com a execução. Esse valor será nulo se a execução não estiver em um estado terminal (por exemplo in_progress , queued ). |
truncation_strategy |
objeto | Controles de como um thread será truncado antes da execução. |
response_format |
string | O formato que o modelo deve produzir. Compatível com GPT-4 Turbo e todos os modelos GPT-3.5 Turbo desde gpt-3.5-turbo-1106 . |
tool_choice |
string | Controla qual (se houver) ferramenta é chamada pelo modelo. none significa que o modelo não chamará nenhuma ferramenta e, em vez disso, gerará uma mensagem. auto é o valor padrão e significa que o modelo pode escolher entre gerar uma mensagem ou chamar uma ferramenta. |
Objeto da etapa de execução
Representar uma etapa na execução de uma execução.
Nome | Tipo | Description |
---|---|---|
id |
string | O identificador da etapa de execução, que pode ser referenciado em pontos de extremidade da API. |
object |
string | O tipo de objeto, que é sempre thread.run.step. |
created_at |
integer | O carimbo de data/hora do Unix (em segundos) para quando a etapa de execução foi criada. |
assistant_id |
string | A ID do assistente associada à etapa de execução. |
thread_id |
string | A ID do thread que foi executado. |
run_id |
string | A ID da execução da qual esta etapa de execução faz parte. |
type |
string | O tipo de etapa de execução, que pode ser message_creation ou tool_calls. |
status |
string | O status da etapa de execução, que pode ser in_progress , cancelled , failed , completed , ou expired . |
step_details |
objeto | Os detalhes da etapa de execução. |
last_error |
objeto ou null | O último erro associado a esta etapa de execução. Será nulo se não houver erros. |
expired_at |
inteiro ou nulo | O carimbo de data/hora do Unix (em segundos) para quando a etapa de execução expirou. Uma etapa é considerada expirada se a execução pai tiver expirado. |
cancelled_at |
inteiro ou nulo | O carimbo de data/hora do Unix (em segundos) para quando a etapa de execução foi cancelada. |
failed_at |
inteiro ou nulo | O carimbo de data/hora do Unix (em segundos) para quando a etapa de execução falhou. |
completed_at |
inteiro ou nulo | O carimbo de data/hora do Unix (em segundos) para quando a etapa de execução foi concluída. |
metadata |
map | Conjunto de 16 pares chave-valor que podem ser anexados a um objeto. Isso pode ser útil para armazenar informações adicionais sobre o objeto em um formato estruturado. As teclas podem ter no máximo 64 caracteres e os valores podem ter, no máximo, 512 caracteres. |
Transmitir um resultado de execução (visualização)
Transmita o resultado da execução de uma Execução ou da retomada de uma Execução após o envio das saídas da ferramenta. Você pode transmitir eventos após:
Para transmitir um resultado, passe "stream": true
ao criar uma corrida. A resposta será um fluxo de eventos enviados pelo servidor.
Exemplo 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()
Objeto de truncamento
Controles de como um thread será truncado antes da execução. Use isso para controlar a janela de contexto inicial da execução.
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
type |
string | A estratégia de truncamento a ser usada para o thread. A predefinição é auto . Se definido como last_messages , o thread será truncado para as n mensagens mais recentes no thread. Quando definido como auto , as mensagens no meio do thread serão descartadas para se ajustarem ao comprimento de contexto do modelo, max_prompt_tokens . |
Sim |
last_messages |
integer | O número de mensagens mais recentes do thread ao construir o contexto para a execução. | Não |
Objeto delta da mensagem
Representa uma mensagem delta. Por exemplo, quaisquer campos alterados em uma mensagem durante o streaming.
Nome | Tipo | Description |
---|---|---|
id |
string | O identificador da mensagem, que pode ser referenciado em pontos de extremidade da API. |
object |
string | O tipo de objeto, que é sempre thread.message.delta . |
delta |
objeto | O delta que contém os campos que foram alterados na mensagem. |
Executar objeto delta da etapa
Representa um delta de etapa de execução. Por exemplo, quaisquer campos alterados em uma etapa de execução durante o streaming.
Nome | Tipo | Description |
---|---|---|
id |
string | O identificador da etapa de execução, que pode ser referenciado em pontos de extremidade da API. |
object |
string | O tipo de objeto, que é sempre thread.run.step.delta . |
delta |
objeto | O delta que contém os campos que foram alterados na etapa de execução. |
Assistente de transmissão de eventos
Representa um evento emitido durante o streaming de uma Execução. Cada evento em um fluxo de eventos enviado pelo servidor tem uma propriedade de evento e dados:
event: thread.created
data: {"id": "thread_123", "object": "thread", ...}
Os eventos são emitidos sempre que um novo objeto é criado, transita para um novo estado ou está sendo transmitido em partes (deltas). Por exemplo, thread.run.created
é emitido quando uma nova execução é criada, thread.run.completed
quando uma execução é concluída e assim por diante. Quando um Assistente escolhe criar uma mensagem durante uma corrida, emitimos um thread.message.created
evento, um thread.message.in_progress
evento, muitos tópicos.message.delta
eventos e, finalmente, um thread.message.completed
evento.
Nome | Tipo | Description |
---|---|---|
thread.created |
data é um fio. |
Ocorre quando um novo thread é criado. |
thread.run.created |
data é uma corrida. |
Ocorre quando uma nova execução é criada. |
thread.run.queued |
data é uma corrida. |
Ocorre quando uma execução é movida para um status em fila. |
thread.run.in_progress |
data é uma corrida. |
Ocorre quando uma execução é movida para um status in_progress. |
thread.run.requires_action |
data é uma corrida. |
Ocorre quando uma execução é movida para um requires_action status. |
thread.run.completed |
data é uma corrida. |
Ocorre quando uma execução é concluída. |
thread.run.failed |
data é uma corrida. |
Ocorre quando uma execução falha. |
thread.run.cancelling |
data é uma corrida. |
Ocorre quando uma execução é movida para um cancelling status. |
thread.run.cancelled |
data é uma corrida. |
Ocorre quando uma execução é cancelada. |
thread.run.expired |
data é uma corrida. |
Ocorre quando uma execução expira. |
thread.run.step.created |
data é uma etapa de execução. |
Ocorre quando uma etapa de execução é criada. |
thread.run.step.in_progress |
data é uma etapa de execução. |
Ocorre quando uma etapa de execução se move para um in_progress estado. |
thread.run.step.delta |
data é um delta de etapa de execução. |
Ocorre quando partes de uma etapa de execução estão sendo transmitidas. |
thread.run.step.completed |
data é uma etapa de execução. |
Ocorre quando uma etapa de execução é concluída. |
thread.run.step.failed |
data é uma etapa de execução. |
Ocorre quando uma etapa de execução falha. |
thread.run.step.cancelled |
data é uma etapa de execução. |
Ocorre quando uma etapa de execução é cancelada. |
thread.run.step.expired |
data é uma etapa de execução. |
Ocorre quando uma etapa de execução expira. |
thread.message.created |
data é uma mensagem. |
Ocorre quando uma mensagem é criada. |
thread.message.in_progress |
data é uma mensagem. |
Ocorre quando uma mensagem é movida para um estado in_progress. |
thread.message.delta |
data é uma mensagem delta. |
Ocorre quando partes de uma mensagem estão sendo transmitidas. |
thread.message.completed |
data é uma mensagem. |
Ocorre quando uma mensagem é concluída. |
thread.message.incomplete |
data é uma mensagem. |
Ocorre quando uma mensagem termina antes de ser concluída. |
error |
data é um erro. |
Ocorre quando ocorre um erro. Isso pode acontecer devido a um erro interno do servidor ou a um tempo limite. |
done |
data é [DONE] |
Ocorre quando um fluxo termina. |