Partilhar via


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, cancelledfailed, completed, ou expired. requires_actionin_progressqueued
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.