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