Compartilhar via


Referência de execuções da API de Assistentes (Versão Prévia)

Observação

  • A pesquisa de arquivos pode ingerir até 10.000 arquivos por assistente – 500 vezes mais do que antes. Ela é rápida, dá suporte a consultas paralelas por meio de pesquisas com vários threads e recursos aprimorados de reclassificação e reescrita de consulta.
    • O repositório de vetores é um novo objeto na API. Depois que um arquivo é adicionado a um repositório de vetores, ele é analisado automaticamente, em partes e inserido, pronto para ser pesquisado. Os repositórios de vetores podem ser usados entre assistentes e threads, simplificando o gerenciamento de arquivos e a cobrança.
  • Adicionamos suporte para o parâmetro tool_choice que pode ser usado para forçar o uso de uma ferramenta específica (como pesquisa de arquivo, 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 (Versão prévia). Diretrizes 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 de caminho

Parâmetro Type Obrigatória Descrição
thread_id string Obrigatório A ID do thread para o qual criar uma mensagem.

Corpo da solicitação

Nome Digitar Obrigatória Descrição
assistant_id string Obrigatório A ID do assistente a ser usada para executar esta execução.
model cadeia de caracteres ou nulo Opcional O nome da implantação de 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 da implantação do modelo associado ao assistente será usado.
instructions cadeia de caracteres ou nulo Opcional Substitui as instruções do assistente. Isto é útil para modificar o comportamento por execução.
additional_instructions string Opcional Acrescenta instruções adicionais ao final das instruções para a execução. Isto é útil para modificar o comportamento por execução sem substituir outras instruções.
additional_messages matriz Opcional Acrescenta mensagens adicionais ao thread antes de criar a execução.
tools matriz ou nulo Opcional Substitua as ferramentas que o assistente pode usar para esta execução. Isto é ú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 chaves podem ter no máximo 64 caracteres e os valores podem ter no máximo 512 caracteres.
temperature número Opcional Qual temperatura de amostragem usar, 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. O padrão é UTF-1.
top_p número Opcional Uma alternativa à amostragem com temperatura, chamada de amostragem de núcleo, onde o modelo considera os resultados dos tokens com massa de probabilidade top_p. Portanto, 0,1 significa que apenas os tokens que compõem a massa de probabilidade de 10% do topo são considerados. Geralmente, é recomendável alterar este ou a temperatura, mas não ambos. O padrão é UTF-1.
stream boolean opcionais Se true, retornará um fluxo de eventos que ocorrem durante os eventos executados como enviados pelo servidor, encerrando quando a Execução entra em um estado de terminal com uma mensagem data: [DONE].
max_prompt_tokens Número inteiro opcionais O número máximo de tokens de conclusão que podem ser usados ao longo da execução. A execução fará o melhor esforço para usar apenas o número de tokens de conclusão especificados, em várias voltas da execução. Se a execução exceder o número de tokens de conclusão especificados, ela terminará com status incomplete.
max_completion_tokens Número inteiro opcionais O número máximo de tokens de conclusão que podem ser usados ao longo da execução. A execução fará o melhor esforço para usar apenas o número de tokens de conclusão especificados, em várias voltas da execução. Se a execução exceder o número de tokens de conclusão especificados, ela terminará com status incomplete.
truncation_strategy truncationObject opcionais Controla como um thread será truncado antes da execução. Use isso para controlar a janela de contexto inicial da execução.
tool_choice cadeia de caracteres ou objeto opcionais Controla qual ferramenta (se houver) é chamada pelo modelo. Um valor 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 função. Especificar uma determinada ferramenta como {"type": "file_search"} ou {"type": "function", "function": {"name": "my_function"}} força o modelo a chamar essa função.
response_format cadeia de caracteres ou objeto opcionais Especifica o formato que o modelo precisa gerar. Compatível com GPT-4 Turbo e todos os modelos GPT-3.5 Turbo a partir do gpt-3.5-turbo-1106.
A configuração para { "type": "json_object" } habilita o modo JSON, que garante que a mensagem gerada pelo modelo seja um JSON válido.
Importante: ao usar o modo JSON, você também deve instruir o modelo para que ele produza o JSON por uma mensagem do sistema ou do usuário. Sem isso, o modelo pode gerar um fluxo sem fim de espaço em branco até que a geração atinja o limite de tokens, resultando em uma solicitação de execução longa e aparentemente "paralisada". Além disso, observe 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 do contexto.

Devoluções

Um objeto de execução.

Exemplo para 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.

Corpo da solicitação

Nome Digitar Obrigatória Descrição
assistant_id string Obrigatório A ID do assistente a ser usada para executar esta execução.
thread objeto Opcional
model cadeia de caracteres ou nulo Opcional A ID do nome da Implantação de modelo a ser usado para executar esta 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 da implantação do modelo associado ao assistente será usado.
instructions cadeia de caracteres ou nulo Opcional Substitua a mensagem do sistema padrão do assistente. Isto é útil para modificar o comportamento por execução.
tools matriz ou nulo Opcional Substitua as ferramentas que o assistente pode usar para esta execução. Isto é ú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 chaves podem ter no máximo 64 caracteres e os valores podem ter no máximo 512 caracteres.
temperature número Opcional Qual temperatura de amostragem usar, 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. O padrão é UTF-1.
top_p número Opcional Uma alternativa à amostragem com temperatura, chamada de amostragem de núcleo, onde o modelo considera os resultados dos tokens com massa de probabilidade top_p. Portanto, 0,1 significa que apenas os tokens que compõem a massa de probabilidade de 10% do topo são considerados. Geralmente, é recomendável alterar este ou a temperatura, mas não ambos. O padrão é UTF-1.
stream boolean opcionais Se true, retornará um fluxo de eventos que ocorrem durante os eventos executados como enviados pelo servidor, encerrando quando a Execução entra em um estado de terminal com uma mensagem data: [DONE].
max_prompt_tokens Número inteiro opcionais O número máximo de tokens de conclusão que podem ser usados ao longo da execução. A execução fará o melhor esforço para usar apenas o número de tokens de conclusão especificados, em várias voltas da execução. Se a execução exceder o número de tokens de conclusão especificados, ela terminará com status incomplete.
max_completion_tokens Número inteiro opcionais O número máximo de tokens de conclusão que podem ser usados ao longo da execução. A execução fará o melhor esforço para usar apenas o número de tokens de conclusão especificados, em várias voltas da execução. Se a execução exceder o número de tokens de conclusão especificados, ela terminará com status incomplete.
truncation_strategy truncationObject opcionais Controla como um thread será truncado antes da execução. Use isso para controlar a janela de contexto inicial da execução.
tool_choice cadeia de caracteres ou objeto opcionais Controla qual ferramenta (se houver) é chamada pelo modelo. Um valor 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 função. Especificar uma determinada ferramenta como {"type": "file_search"} ou {"type": "function", "function": {"name": "my_function"}} força o modelo a chamar essa função.
response_format cadeia de caracteres ou objeto opcionais Especifica o formato que o modelo precisa gerar. Compatível com GPT-4 Turbo e todos os modelos GPT-3.5 Turbo a partir do gpt-3.5-turbo-1106.
A configuração para { "type": "json_object" } habilita o modo JSON, que garante que a mensagem gerada pelo modelo seja um JSON válido.
Importante: ao usar o modo JSON, você também deve instruir o modelo para que ele produza o JSON por uma mensagem do sistema ou do usuário. Sem isso, o modelo pode gerar um fluxo sem fim de espaço em branco até que a geração atinja o limite de tokens, resultando em uma solicitação de execução longa e aparentemente "paralisada". Além disso, observe 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 do contexto.

Devoluções

Um objeto de execução.

Exemplo de 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."}
    ]
  }
)

Listar execuções

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 que pertencem a um thread.

Parâmetro de caminho

Parâmetro Type Obrigatória Descrição
thread_id string Obrigatório A ID do thread à qual a execução pertence.

Parâmetros de consulta

Nome Digitar Obrigatória Descrição
limit Número inteiro Opcional – Os padrões para 20 Um limite no número de objetos a serem retornados. "Limit" pode variar entre 1 e 100 e o padrão é 20.
order string Opcional – Os padrões para desc Ordem de classificação pelo carimbo de data/hora de created_at dos objetos. "asc" para ordem crescente e "desc" para ordem decrescente.
after string Opcional Um cursor para uso na paginação. "after" é uma ID de objeto que define seu lugar na lista. Por exemplo, caso faça uma solicitação de lista e receba 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. "before" é uma ID de objeto que define seu lugar na lista. Por exemplo, caso faça uma solicitação de lista e receba 100 objetos, terminando com obj_foo, sua chamada subsequente poderá incluir before=obj_foo, para buscar a página anterior da lista.

Retornos

Uma lista de objetos de execução.

Solicitação de execuções de lista de exemplo

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)

Etapas de execução de lista

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 que pertencem a uma execução.

Parâmetros de caminho

Parâmetro Type Obrigatória Descrição
thread_id string Obrigatório A ID do thread à 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 consulta

Nome Digitar Obrigatória Descrição
limit Número inteiro Opcional – Os padrões para 20 Um limite no número de objetos a serem retornados. "Limit" pode variar entre 1 e 100 e o padrão é 20.
order string Opcional – Os padrões para desc Ordem de classificação pelo carimbo de data/hora de created_at dos objetos. "asc" para ordem crescente e "desc" para ordem decrescente.
after string Opcional Um cursor para uso na paginação. "after" é uma ID de objeto que define seu lugar na lista. Por exemplo, caso faça uma solicitação de lista e receba 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. "before" é uma ID de objeto que define seu lugar na lista. Por exemplo, caso faça uma solicitação de lista e receba 100 objetos, terminando com obj_foo, sua chamada subsequente poderá incluir before=obj_foo, para buscar a página anterior da lista.

Retornos

Uma lista de objetos de etapa de execução.

Solicitação de etapas de execução de lista de exemplo

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ória Descrição
thread_id string Obrigatório A ID do thread que foi executado.
run_id string Obrigatório A ID da execução a ser recuperada.

Retornos

O objeto de execução que corresponde à ID de execução especificada.

Solicitação de etapas de execução de lista de exemplo

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 a 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ória Descrição
thread_id string Obrigatório A ID do thread à qual a etapa executar 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 A ID da etapa de execução a ser recuperada.

Retornos

O objeto de etapa de execução que corresponde à ID especificada.

Exemplo de solicitação de recuperação de etapas 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_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ória Descrição
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 da solicitação

Nome Digitar Obrigatória Descriçã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 chaves podem ter no máximo 64 caracteres e os valores podem ter no máximo 512 caracteres.

Retornos

O objeto de execução modificado que corresponde à ID especificada.

Exemplo de modificação de 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.update(
  thread_id="thread_abc123",
  run_id="run_abc123",
  metadata={"user_id": "user_abc123"},
)
print(run)

Enviar saídas de 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, este ponto de extremidade pode ser usado para enviar as saídas das chamadas de ferramenta, quando todas elas forem concluídas. Todas as saídas devem ser enviadas em uma única solicitação.

Parâmetros de caminho

Parâmetro Type Obrigatória Descrição
thread_id string Obrigatório A ID do thread à qual essa execução pertence.
run_id string Obrigatório A ID da execução que requer o envio de saída da ferramenta.

Corpo da solicitação

Nome Digitar Obrigatória Descrição
tool_outputs array Obrigatório Uma lista de ferramentas para as quais as saídas estão sendo enviadas.
stream boolean Opcional Se true, retornará um fluxo de eventos que ocorrem durante os eventos executados como enviados pelo servidor, encerrando quando a Execução entra em um estado de terminal com uma mensagem data: [DONE].

Devoluções

O objeto de execução modificado que corresponde à ID especificada.

Exemplo de saídas de ferramenta de envio para 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.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 in_progress.

Parâmetros de caminho

Parâmetro Type Obrigatória Descrição
thread_id string Obrigatório A ID do thread à qual essa execução pertence.
run_id string Obrigatório A ID da execução a ser cancelada.

Retornos

O objeto de execução modificado que corresponde à ID especificada.

Exemplo de saídas de ferramenta de envio para 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.runs.cancel(
  thread_id="thread_abc123",
  run_id="run_abc123"
)
print(run)

Objeto de execução

Representa uma execução executada em um thread.

Nome Tipo Descrição
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 Número inteiro 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 executada como parte dessa execução.
assistant_id string A ID do assistente usada para a execução dessa execução.
status string O status da execução, que pode ser queued, in_progress, requires_action, cancelling, cancelled, failed, completed ou expired.
required_action objeto ou nulo 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 nulo O último erro associado a esta execução. Será nulo se não houver erros.
expires_at Número inteiro 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 do 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 da 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 essa execução.
file_ids matriz A lista de IDs de arquivo que o assistente usou para esta 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 chaves podem ter no máximo 64 caracteres e os valores podem ter no máximo 512 caracteres.
tool_choice cadeia de caracteres ou objeto Controla qual ferramenta (se houver) é 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 função. Especificar uma determinada ferramenta como {"type": "file_search"} ou {"type": "function", "function": {"name": "my_function"}} força o modelo a chamar essa função.
max_prompt_tokens inteiro ou nulo O número máximo de tokens de prompt especificados que foram usados ao longo da execução.
max_completion_tokens inteiro ou nulo O número máximo de tokens de conclusão especificados que foram usados ao longo da execução.
usage objeto ou nulo Estatísticas de uso relacionadas à execução. Esse valor será nulo se a execução não estiver em estado terminal (por exemplo in_progress, queued).
truncation_strategy objeto Controla como um thread será truncado antes da execução.
response_format string O formato que o modelo deve gerar. Compatível com GPT-4 Turbo e todos os modelos GPT-3.5 Turbo a partir do gpt-3.5-turbo-1106.
tool_choice string Controla qual ferramenta (se houver) é 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 função.

Executar objeto de etapa

Represente uma etapa na execução de uma execução.

Nome Tipo Descrição
id string O identificador da etapa de execução, que pode ser referenciado em pontos de extremidade de API.
object string O tipo de objeto, que é sempre thread.run.step.
created_at Número inteiro 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 associado à etapa de execução.
thread_id string A ID do thread que foi executado.
run_id string A ID da execução da qual essa 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 nulo 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 será 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 chaves podem ter no máximo 64 caracteres e os valores podem ter no máximo 512 caracteres.

Transmitir um resultado de execução (versão prévia)

Transmita o resultado da execução de uma execução ou retomada de uma execução após o envio de saídas da ferramenta. Você pode transmitir eventos após:

Para transmitir um resultado, passe "stream": true durante a criação de uma execução. 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

Controla 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. O padrã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 Número inteiro O número de mensagens mais recentes do thread ao construir o contexto para a execução. Não

Objeto delta da mensagem

Representa um delta de mensagem. Por exemplo, todos os campos alterados em uma mensagem durante o streaming.

Nome Tipo Descrição
id string O identificador da mensagem, que pode ser referenciado em pontos de extremidade de 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 o objeto delta da etapa

Representa um delta de etapa de execução. Por exemplo, todos os campos alterados em uma etapa de execução durante o streaming.

Nome Tipo Descrição
id string O identificador da etapa de execução, que pode ser referenciado em pontos de extremidade de 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.

Eventos de fluxo do assistente

Representa um evento emitido ao transmitir uma execução. Cada evento em um fluxo de eventos enviados pelo servidor tem um evento e uma propriedade de dados:

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

Os eventos são emitidos sempre que um novo objeto é criado, faz a transição 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 opta por criar uma mensagem durante uma execução, emitimos um evento thread.message.created, um evento thread.message.in_progress, muitos threads.Eventos message.delta e, por fim, um evento thread.message.completed.

Nome Tipo Descrição
thread.created data é um thread. Ocorre quando um novo thread é criado.
thread.run.created data é uma execução. Ocorre quando uma nova execução é criada.
thread.run.queued data é uma execução. Ocorre quando uma execução é movida para um status na fila.
thread.run.in_progress data é uma execução. Ocorre quando uma execução se move para um status de in_progress.
thread.run.requires_action data é uma execução. Ocorre quando uma execução é movida para um status requires_action.
thread.run.completed data é uma execução. Ocorre quando uma execução é concluída.
thread.run.failed data é uma execução. Ocorre quando uma execução falha.
thread.run.cancelling data é uma execução. Ocorre quando uma execução é movida para um status cancelling.
thread.run.cancelled data é uma execução. Ocorre quando uma execução é cancelada.
thread.run.expired data é uma execução. 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 é movida para um estado in_progress.
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 é um delta de mensagem. 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.