Skip to main content
Assistant API (Deprecated)

Streaming output parameters for the Assistant API (being deprecated)

A saída em streaming da Assistant API fornece resultados do Assistente em tempo real. Esses resultados chegam como um fluxo de eventos com informações de status e mensagens de conversa do runtime do Assistente. Para processar essas mensagens, compreenda os objetos message delta e execute step delta.

A Assistant API está sendo descontinuada. Migre para a Responses API, que oferece ferramentas integradas e gerenciamento de contexto de múltiplas interações.

Objeto message delta

Event name: thread.message.delta
Fragmento de mensagem que o Large Language Model (LLM) gera durante uma execução em streaming.

Nome do campo

Tipo

Descrição

id

string

Identificador da mensagem.

object

string

Tipo do objeto. Corresponde ao nome do evento. Sempre é thread.message.delta.

delta

object

Objeto de fragmento de mensagem que o LLM gera.

delta.role

string

Função que gerou a mensagem. O valor pode ser user ou assistant.

delta.file_ids

array

Campo não utilizado.

delta.content

object

Objeto de conteúdo da mensagem.

delta.content.type

string

Tipo de conteúdo da mensagem. Sempre é text.

delta.content.text

object

Objeto de conteúdo de texto na mensagem.

delta.content.text.annotations

array

Campo não utilizado.

delta.content.text.value

string

Conteúdo de texto da mensagem.

Exemplo de objeto message delta
{
    "delta": {
        "content": {
            "text": {
                "annotations": [],
                "value": "[REDACTED]"
            },
            "type": "text"
        },
        "role": "[REDACTED]",
        "file_ids": []
    },
    "id": "[REDACTED]",
    "object": "thread.message.delta",
    "request_id": "[REDACTED]",
    "status_code": 200
}

Objeto execute step delta

Event name: thread.run.step.delta
Fragmento de mensagem que uma chamada de ferramenta retorna durante uma execução em streaming.

Nome do campo

Tipo

Descrição

id

string

Identificador da etapa de execução.

object

string

Tipo do objeto. Corresponde ao nome do evento. Sempre é thread.run.step.delta.

delta

object

Objeto de fragmento de mensagem que a chamada de ferramenta retorna.

delta.step_details

object

Objeto com detalhes da etapa do fragmento.

delta.step_details.type

string

Tipo dos detalhes da etapa. O valor pode ser message_creation ou tool_calls.

delta.step_details.message_creation

object

Detalhes da mensagem criada na etapa.

delta.step_details.message_creation.type

string

Sempre é message_creation.

delta.step_details.message_creation.message_id

string

ID da mensagem criada nesta etapa.

delta.step_details.tool_calls

array

Lista de detalhes das chamadas de ferramenta.

delta.step_details.tool_calls.type

string

Tipo da chamada de ferramenta. O valor pode ser code_interpreter, quark_search, text_to_image ou calculator.

delta.step_details.tool_calls.code_interpreter

object

Objeto de mensagem do interpretador de código.

delta.step_details.tool_calls.code_interpreter.arguments

string

Parâmetros de entrada do interpretador de código. Inclui o tipo de código e o código completo. O LLM gera este campo.

delta.step_details.tool_calls.code_interpreter.output

string

Parâmetros de saída do interpretador de código. Inclui o resultado da execução. O interpretador de código gera este campo.

delta.step_details.tool_calls.quark_search

object

Objeto de mensagem do Quark Search.

delta.step_details.tool_calls.quark_search.arguments

string

Parâmetros de entrada do Quark Search. Inclui a instrução de consulta reescrita. O LLM gera este campo.

delta.step_details.tool_calls.quark_search.output

string

Parâmetros de saída do Quark Search. Inclui marca de sucesso, código de erro, mensagem de erro e lista de resultados de pesquisa (título, endereço, descrição, tipo, origem da mensagem). O Quark Search gera este campo.

delta.step_details.tool_calls.text_to_image

object

Objeto de mensagem de texto para imagem.

delta.step_details.tool_calls.text_to_image.arguments

string

Parâmetros de entrada de texto para imagem. Inclui nome do modelo, estilo, tamanho da imagem, quantidade de imagens, prompt positivo e prompt negativo. O LLM gera este campo.

delta.step_details.tool_calls.text_to_image.output

string

Parâmetros de saída de texto para imagem. Inclui ID da solicitação, ID da tarefa, status da tarefa, hora de envio, tempo estimado de conclusão, hora de término, resultado gerado, quantidade de imagens, marca de sucesso e marca de falha. A ferramenta de texto para imagem gera este campo.

delta.step_details.tool_calls.calculator

object

Objeto de mensagem da calculadora.

delta.step_details.tool_calls.calculator.arguments

string

Parâmetros de entrada da calculadora. Inclui a fórmula de entrada e o cabeçalho da solicitação. O LLM gera este campo.

delta.step_details.tool_calls.calculator.output

string

Parâmetros de saída da calculadora. Inclui a fórmula e o resultado. A calculadora gera este campo.

As ferramentas interpretador de código, Quark Search, texto para imagem e calculadora suportam saída em streaming.As demais ferramentas da Assistant API não oferecem suporte a saída em streaming. Para obter os resultados dessas chamadas de ferramenta no fluxo de saída, utilize o método padrão de chamada de ferramenta. Para mais informações, consulte a seção relevante em Visão geral de chamadas de ferramenta.
Exemplo de objeto execute step delta
{
    "delta": {
        "step_details": {
            "tool_calls": [
                {
                    "code_interpreter": {
                        "output": [],
                        "arguments": "[REDACTED]"
                    },
                    "type": "code_interpreter"
                }
            ],
            "type": "tool_calls"
        }
    },
    "id": "[REDACTED]",
    "object": "thread.run.step.delta",
    "request_id": "[REDACTED]",
    "status_code": 200
}

Fluxo de eventos do Assistente

Eventos que ocorrem ao executar um Assistente no modo streaming. Na Assistant API, um fluxo de eventos consiste em um event e em data:
  • event: O servidor envia um evento quando cria um novo objeto, altera o estado ou transmite conteúdo via streaming. Por exemplo, o servidor envia um evento ao criar uma nova execução (thread.run.created) ou ao concluir uma execução (thread.run.completed).
  • data: Contém dados detalhados relacionados ao evento. Pode incluir status, texto, mensagens de ferramenta ou erros.
event: thread.created
data: {"id": "thread_123", "object": "thread", ...}

Nome do evento

Tipo de dados

Descrição

thread.created

thread

Criação de um novo thread.

thread.run.created

run

Criação de uma nova execução.

thread.run.queued

run

Transição da execução para o estado queued.

thread.run.in_progress

run

Transição da execução para o estado in_progress.

thread.run.requires_action

run

Transição da execução para o estado requires_action.

thread.run.completed

run

Conclusão da execução.

thread.run.failed

run

Falha na execução.

thread.run.cancelled

run

Cancelamento da execução.

thread.run.expired

run

Expiração da execução.

thread.run.step.created

run step

Criação de uma etapa de execução.

thread.run.step.in_progress

run step

Transição da etapa de execução para o estado in_progress.

thread.run.step.delta

run step delta

Transmissão parcial do conteúdo de uma etapa de execução via streaming.

thread.run.step.completed

run step

Conclusão da etapa de execução.

thread.run.step.failed

run step

Falha na etapa de execução.

thread.run.step.cancelled

run step

Cancelamento da etapa de execução.

thread.run.step.expired

run step

Expiração da etapa de execução.

thread.message.created

message

Criação de uma mensagem.

thread.message.in_progress

message

Transição da mensagem para o estado in_progress.

thread.message.delta

message delta

Transmissão parcial do conteúdo de uma mensagem via streaming.

thread.message.completed

message

Conclusão da mensagem.

thread.message.incomplete

message

Término da mensagem antes da conclusão.

error

error

Acionado quando ocorre um erro. Pode ser causado por um erro interno do servidor ou timeout.

FAQ