Condividi tramite


Informazioni di riferimento sulle esecuzioni dell'API Assistants (anteprima)

Nota

  • Ricerca file può inserire fino a 10.000 file per assistente, 500 volte più di prima. È veloce, supporta query parallele tramite ricerche multithread e include la riclassificazione avanzata e la riscrittura di query.
    • L’archivio di vettori è un nuovo oggetto nell’API. Dopo l’aggiunta a un archivio di vettori, un file viene analizzato, suddiviso in blocchi, incorporato e preparato per essere sottoposto a ricerca. Gli archivi di vettori possono essere usati in diversi assistenti e thread, semplificando quindi la gestione dei file e la fatturazione.
  • È stato aggiunto il supporto per il parametro tool_choice, che può essere usato per imporre l’uso di uno strumento specifico, ad esempio ricerca file, interprete di codice o una funzione, in una determinata esecuzione.

Questo articolo fornisce la documentazione di riferimento per Python e REST per la nuova API Assistenti (anteprima) Nella guida introduttiva sono disponibili indicazioni più dettagliate.

Crea esecuzione

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs?api-version=2024-08-01-preview

Creare un’esecuzione.

Parametro percorso

Parametro Type Obbligatorio Descrizione
thread_id stringa Richiesto ID del thread per cui creare un messaggio.

Testo della richiesta

Nome Digita Obbligatorio Descrizione
assistant_id stringa Richiesto ID dell'assistente da usare per eseguire questa esecuzione.
model stringa o null Facoltativo Nome distribuzione modello da utilizzare per eseguire questa esecuzione. Se in questo caso viene fornito un valore, eseguirà l'override del nome della distribuzione modello associato all'assistente. In caso contrario, verrà usato il nome della distribuzione modello associato all'assistente.
instructions stringa o null Facoltativo Esegue l'override delle istruzioni dell'assistente. Ciò è utile per modificare il comportamento in base all'esecuzione.
additional_instructions string Facoltativo Aggiunge istruzioni aggiuntive alla fine delle istruzioni per l'esecuzione. Ciò è utile per modificare il comportamento in base all'esecuzione senza eseguire l'override di altre istruzioni.
additional_messages array Facoltativo Aggiunge messaggi aggiuntivi al thread prima di creare l'esecuzione.
tools matrice o null Facoltativo Eseguire l'override degli strumenti che l'assistente può usare per questa esecuzione. Ciò è utile per modificare il comportamento in base all'esecuzione.
metadata mappa Facoltativo Set di 16 coppie chiave-valore che possono essere collegate a un oggetto. Ciò può essere utile per archiviare informazioni aggiuntive sull'oggetto in un formato strutturato. Le chiavi possono essere lunghe al massimo 64 caratteri, mentre i valori al massimo 512 caratteri.
temperature number Facoltativo Temperatura di campionamento da usare, compresa tra 0 e 2. Valori più elevati come 0.8 renderanno l'output più casuale, mentre valori più bassi come 0.2 lo renderanno più mirato e deterministico. Il valore predefinito è 1.
top_p number Facoltativo Un'alternativa al campionamento con temperatura, denominata campionamento del nucleo, in cui il modello considera i risultati dei token con massa di probabilità top_p. Quindi 0,1 significa che vengono considerati solo i token che comprendono la massa di probabilità superiore del 10%. In genere è consigliabile modificare questo o la temperatura, ma non entrambi. Il valore predefinito è 1.
stream boolean facoltative Se true, restituisce un flusso di eventi che si verificano durante gli eventi inviati dal server Esegui come, terminando quando Run entra in uno stato terminale con un messaggio di data: [DONE].
max_prompt_tokens integer facoltative Numero massimo di token di completamento che possono essere usati durante l'esecuzione. L'esecuzione farà il possibile per usare solo il numero di token di completamento specificati, in più turni dell'esecuzione. Se l’esecuzione supera il numero di token di completamento specificati, terminerà con lo stato incomplete.
max_completion_tokens integer facoltative Numero massimo di token di completamento che possono essere usati durante l'esecuzione. L'esecuzione farà il possibile per usare solo il numero di token di completamento specificati, in più turni dell'esecuzione. Se l’esecuzione supera il numero di token di completamento specificati, terminerà con lo stato incomplete.
truncation_strategy truncationObject facoltative Controlla come un thread verrà troncato prima dell'esecuzione. Usare questa opzione per controllare la finestra di contesto iniziale dell'esecuzione.
tool_choice stringa o oggetto facoltative Controlla quale strumento (se presente) viene chiamato dal modello. Un valore none indica che il modello non chiamerà nessuno strumento e genererà invece un messaggio. auto è il valore predefinito e indica che il modello può scegliere tra la generazione di un messaggio o la chiamata di una funzione. Se si specifica uno strumento specifico come {"type": "file_search"} o {"type": "function", "function": {"name": "my_function"}} che impone al modello di chiamare tale strumento.
response_format stringa o oggetto facoltative Specifica il formato che il modello deve restituire. Compatibile con GPT-4 Turbo e tutti i modelli GPT-3.5 Turbo da gpt-3.5-turbo-1106.
L'impostazione su { "type": "json_object" } abilita la modalità JSON, che garantisce che il messaggio generato dal modello sia JSON valido.
Importante: quando si usa la modalità JSON, è necessario anche indicare al modello di produrre JSON manualmente tramite un messaggio di sistema o utente. Senza questo, il modello potrebbe generare un flusso inutile di spazi vuoti fino a quando la generazione non raggiunge il limite di token, causando una richiesta a esecuzione prolungata e apparentemente "bloccata". Si noti anche che il contenuto del messaggio può essere parzialmente tagliato se finish_reason="length", che indica che la generazione ha superato max_tokens o la conversazione ha superato la lunghezza massima del contesto.

Valori restituiti

Un oggetto run.

Esempio di creazione della richiesta di esecuzione

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)

Creazione ed esecuzione di un thread

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/runs?api-version=2024-08-01-preview

Creare un thread ed eseguirlo in una singola richiesta.

Corpo della richiesta

Nome Digita Obbligatorio Descrizione
assistant_id stringa Richiesto ID dell'assistente da usare per eseguire questa esecuzione.
thread oggetto Facoltativo
model stringa o null Facoltativo ID del nome distribuzione modello da usare per eseguire questa esecuzione. Se in questo caso viene fornito un valore, eseguirà l'override del nome della distribuzione modello associato all'assistente. In caso contrario, verrà usato il nome della distribuzione modello associato all'assistente.
instructions stringa o null Facoltativo Eseguire l'override del messaggio di sistema predefinito dell'assistente. Ciò è utile per modificare il comportamento in base all'esecuzione.
tools matrice o null Facoltativo Eseguire l'override degli strumenti che l'assistente può usare per questa esecuzione. Ciò è utile per modificare il comportamento in base all'esecuzione.
metadata mappa Facoltativo Set di 16 coppie chiave-valore che possono essere collegate a un oggetto. Ciò può essere utile per archiviare informazioni aggiuntive sull'oggetto in un formato strutturato. Le chiavi possono essere lunghe al massimo 64 caratteri, mentre i valori al massimo 512 caratteri.
temperature number Facoltativo Temperatura di campionamento da usare, compresa tra 0 e 2. Valori più elevati come 0.8 renderanno l'output più casuale, mentre valori più bassi come 0.2 lo renderanno più mirato e deterministico. Il valore predefinito è 1.
top_p number Facoltativo Un'alternativa al campionamento con temperatura, denominata campionamento del nucleo, in cui il modello considera i risultati dei token con massa di probabilità top_p. Quindi 0,1 significa che vengono considerati solo i token che comprendono la massa di probabilità superiore del 10%. In genere è consigliabile modificare questo o la temperatura, ma non entrambi. Il valore predefinito è 1.
stream boolean facoltative Se true, restituisce un flusso di eventi che si verificano durante gli eventi inviati dal server Esegui come, terminando quando Run entra in uno stato terminale con un messaggio di data: [DONE].
max_prompt_tokens integer facoltative Numero massimo di token di completamento che possono essere usati durante l'esecuzione. L'esecuzione farà il possibile per usare solo il numero di token di completamento specificati, in più turni dell'esecuzione. Se l’esecuzione supera il numero di token di completamento specificati, terminerà con lo stato incomplete.
max_completion_tokens integer facoltative Numero massimo di token di completamento che possono essere usati durante l'esecuzione. L'esecuzione farà il possibile per usare solo il numero di token di completamento specificati, in più turni dell'esecuzione. Se l’esecuzione supera il numero di token di completamento specificati, terminerà con lo stato incomplete.
truncation_strategy truncationObject facoltative Controlla come un thread verrà troncato prima dell'esecuzione. Usare questa opzione per controllare la finestra di contesto iniziale dell'esecuzione.
tool_choice stringa o oggetto facoltative Controlla quale strumento (se presente) viene chiamato dal modello. Un valore none indica che il modello non chiamerà nessuno strumento e genererà invece un messaggio. auto è il valore predefinito e indica che il modello può scegliere tra la generazione di un messaggio o la chiamata di una funzione. Se si specifica uno strumento specifico come {"type": "file_search"} o {"type": "function", "function": {"name": "my_function"}} che impone al modello di chiamare tale strumento.
response_format stringa o oggetto facoltative Specifica il formato che il modello deve restituire. Compatibile con GPT-4 Turbo e tutti i modelli GPT-3.5 Turbo da gpt-3.5-turbo-1106.
L'impostazione su { "type": "json_object" } abilita la modalità JSON, che garantisce che il messaggio generato dal modello sia JSON valido.
Importante: quando si usa la modalità JSON, è necessario anche indicare al modello di produrre JSON manualmente tramite un messaggio di sistema o utente. Senza questo, il modello potrebbe generare un flusso inutile di spazi vuoti fino a quando la generazione non raggiunge il limite di token, causando una richiesta a esecuzione prolungata e apparentemente "bloccata". Si noti anche che il contenuto del messaggio può essere parzialmente tagliato se finish_reason="length", che indica che la generazione ha superato max_tokens o la conversazione ha superato la lunghezza massima del contesto.

Valori restituiti

Un oggetto run.

Esempio di creazione di thread ed esecuzione della richiesta

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

Elencare le esecuzioni

GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs?api-version=2024-08-01-preview

Restituisce un elenco di esecuzioni che appartengono a un thread.

Parametro percorso

Parametro Type Obbligatorio Descrizione
thread_id stringa Richiesto ID del thread a cui appartiene l'esecuzione.

Parametri della query

Nome Digita Obbligatorio Descrizione
limit integer Facoltativo - Il valore predefinito è 20 Limite al numero di oggetti da restituire. Il limite può variare tra 1 e 100 e il valore predefinito è 20.
order string Facoltativo - Il valore predefinito è desc Ordinamento in base al timestamp created_at degli oggetti. asc per ordine crescente e desc per l'ordine decrescente.
after string Facoltativo Cursore da usare nell'impaginazione. after è un ID oggetto che definisce la posizione nell'elenco. Ad esempio, se si effettua una richiesta di elenco e si ricevono 100 oggetti, che terminano con obj_foo, la chiamata successiva può includere after=obj_foo per recuperare la pagina successiva dell'elenco.
before string Facoltativo Cursore da usare nell'impaginazione. before è un ID oggetto che definisce la posizione nell'elenco. Ad esempio, se si effettua una richiesta di elenco e si ricevono 100 oggetti, che terminano con obj_foo, la chiamata successiva può includere before=obj_foo per recuperare la pagina precedente dell'elenco.

Valori restituiti

Elenco di oggetti run.

Esempio di richiesta di elenco di esecuzioni

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)

Elencare i passaggi dell'esecuzione

GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/steps?api-version=2024-08-01-preview

Restituisce un elenco di passaggi che appartengono a un’esecuzione.

Parametri del percorso

Parametro Type Obbligatorio Descrizione
thread_id stringa Richiesto ID del thread a cui appartiene l'esecuzione.
run_id string Richiesto ID dell'esecuzione associata ai passaggi di esecuzione su cui eseguire query.

Parametri di query

Nome Digita Obbligatorio Descrizione
limit integer Facoltativo - Il valore predefinito è 20 Limite al numero di oggetti da restituire. Il limite può variare tra 1 e 100 e il valore predefinito è 20.
order string Facoltativo - Il valore predefinito è desc Ordinamento in base al timestamp created_at degli oggetti. asc per ordine crescente e desc per l'ordine decrescente.
after string Facoltativo Cursore da usare nell'impaginazione. after è un ID oggetto che definisce la posizione nell'elenco. Ad esempio, se si effettua una richiesta di elenco e si ricevono 100 oggetti, che terminano con obj_foo, la chiamata successiva può includere after=obj_foo per recuperare la pagina successiva dell'elenco.
before string Facoltativo Cursore da usare nell'impaginazione. before è un ID oggetto che definisce la posizione nell'elenco. Ad esempio, se si effettua una richiesta di elenco e si ricevono 100 oggetti, che terminano con obj_foo, la chiamata successiva può includere before=obj_foo per recuperare la pagina precedente dell'elenco.

Valori restituiti

Elenco di oggetti run step.

Esempio di richiesta di elenco di passaggi dell'esecuzione

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)

Recuperare l'esecuzione

from openai import OpenAI
client = OpenAI()

run = client.beta.threads.runs.retrieve(
  thread_id="thread_abc123",
  run_id="run_abc123"
)

print(run)

Recupera un’esecuzione.

Parametri del percorso

Parametro Type Obbligatorio Descrizione
thread_id stringa Richiesto ID del thread eseguito.
run_id string Richiesto ID dell'esecuzione da recuperare.

Valori restituiti

Oggetto run corrispondente all'ID esecuzione specificato.

Esempio di richiesta di elenco di passaggi dell'esecuzione

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)

Recuperare il passaggio dell'esecuzione

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 un passaggio dell’esecuzione.

Parametri del percorso

Parametro Type Obbligatorio Descrizione
thread_id stringa Richiesto ID del thread a cui appartengono l'esecuzione e il passaggio dell'esecuzione.
run_id string Richiesto ID dell'esecuzione a cui appartiene il passaggio dell'esecuzione.
step_id string Richiesto ID del passaggio dell'esecuzione da recuperare.

Valori restituiti

Oggetto run step corrispondente all'ID specificato.

Esempio di richiesta di recupero dei passaggi dell'esecuzione

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)

Modificare un'esecuzione

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}?api-version=2024-08-01-preview

Modifica un’esecuzione.

Parametri del percorso

Parametro Type Obbligatorio Descrizione
thread_id stringa Richiesto ID del thread eseguito.
run_id string Richiesto ID dell'esecuzione da modificare.

Testo della richiesta

Nome Digita Obbligatorio Descrizione
metadata mappa Facoltativo Set di 16 coppie chiave-valore che possono essere collegate a un oggetto. Ciò può essere utile per archiviare informazioni aggiuntive sull'oggetto in un formato strutturato. Le chiavi possono essere lunghe al massimo 64 caratteri, mentre i valori al massimo 512 caratteri.

Valori restituiti

Oggetto run modificato corrispondente all'ID specificato.

Esempio di richiesta di modifica dell'esecuzione

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)

Inviare gli output dello strumento all’esecuzione

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 un'esecuzione ha lo stato "requires_action" e required_action.type è submit_tool_outputs, questo endpoint può essere usato per inviare gli output dalle chiamate dello strumento dopo il completamento. Tutti gli output devono essere inviati in una singola richiesta.

Parametri del percorso

Parametro Type Obbligatorio Descrizione
thread_id stringa Richiesto ID del thread a cui appartiene questa esecuzione.
run_id string Richiesto ID dell'esecuzione che richiede l'invio dell'output dello strumento.

Testo della richiesta

Nome Digita Obbligatorio Descrizione
tool_outputs array Richiesto Un elenco degli strumenti per i quali vengono inviati gli output.
stream boolean Facoltativo Se true, restituisce un flusso di eventi che si verificano durante gli eventi inviati dal server Esegui come, terminando quando Run entra in uno stato terminale con un messaggio di data: [DONE].

Valori restituiti

Oggetto run modificato corrispondente all'ID specificato.

Esempio di richiesta di invio degli output dello strumento all'esecuzione

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)

Annullare un'esecuzione

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/cancel?api-version=2024-08-01-preview

Annulla un'esecuzione in_progress.

Parametri del percorso

Parametro Type Obbligatorio Descrizione
thread_id stringa Richiesto ID del thread a cui appartiene questa esecuzione.
run_id string Richiesto ID dell'esecuzione da annullare.

Valori restituiti

Oggetto run modificato corrispondente all'ID specificato.

Esempio di richiesta di invio degli output dello strumento all'esecuzione

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)

Oggetto run

Rappresenta un’esecuzione eseguita in un thread.

Nome Tipo Descrizione
id stringa Identificatore a cui è possibile fare riferimento negli endpoint API.
object string Tipo di oggetto, che è sempre thread.run.
created_at integer Timestamp Unix (in secondi) di quando è stata creata l’enumerazione.
thread_id string ID del thread eseguito in come parte di questa esecuzione.
assistant_id string ID dell'assistente utilizzato per l'esecuzione di questa esecuzione.
status string Lo stato dell’esecuzione, che può essere queued, in_progress, requires_action, cancelling, cancelled, failed, completed o expired.
required_action oggetto o null Dettagli sull'azione necessaria per continuare l'esecuzione. Sarà null se non è necessaria alcuna azione.
last_error oggetto o null Ultimo errore associato a questa esecuzione. Sarà null se non ci sono errori.
expires_at integer Timestamp Unix (in secondi) di quando scadrà l’esecuzione.
started_at numero intero o null Timestamp Unix (in secondi) di quando è stata avviata l’esecuzione.
cancelled_at numero intero o null Timestamp Unix (in secondi) di quando è stata eliminata l’esecuzione.
failed_at numero intero o null Timestamp Unix (in secondi) di quando è stato riscontrato un errore con l’esecuzione.
completed_at numero intero o null Timestamp Unix (in secondi) di quando è stata completata l’esecuzione.
model string Nome della distribuzione modello usato dall'assistente per questa esecuzione.
instructions string Le istruzioni che l’assistente ha utilizzato per questa esecuzione.
tools array L’elenco di strumenti che l’assistente ha utilizzato per questa esecuzione.
file_ids array Elenco di ID file usati dall'assistente per questa esecuzione.
metadata mappa Set di 16 coppie chiave-valore che possono essere collegate a un oggetto. Ciò può essere utile per archiviare informazioni aggiuntive sull'oggetto in un formato strutturato. Le chiavi possono essere lunghe al massimo 64 caratteri, mentre i valori al massimo 512 caratteri.
tool_choice stringa o oggetto Controlla quale strumento (se presente) viene chiamato dal modello. none indica che il modello non chiamerà nessuno strumento e genererà invece un messaggio. auto è il valore predefinito e indica che il modello può scegliere tra la generazione di un messaggio o la chiamata di una funzione. Se si specifica uno strumento specifico come {"type": "file_search"} o {"type": "function", "function": {"name": "my_function"}} che impone al modello di chiamare tale strumento.
max_prompt_tokens numero intero o null Numero massimo di token di richiesta che devono essere usati durante l'esecuzione.
max_completion_tokens numero intero o null Numero massimo di token di completamento che devono essere usati durante l'esecuzione.
usage oggetto o null Statistiche di utilizzo relative all’esecuzione. Questo valore sarà null se l'esecuzione non è in uno stato terminale, ad esempio in_progress, queued.
truncation_strategy oggetto Controlla come un thread verrà troncato prima dell'esecuzione.
response_format string Il formato che il modello deve restituire. Compatibile con GPT-4 Turbo e tutti i modelli GPT-3.5 Turbo da gpt-3.5-turbo-1106.
tool_choice string Controlla quale strumento (se presente) viene chiamato dal modello. none indica che il modello non chiamerà nessuno strumento e genererà invece un messaggio. auto è il valore predefinito e indica che il modello può scegliere tra la generazione di un messaggio o la chiamata di una funzione.

Oggetto step dell'esecuzione

Rappresenta un passaggio durante l'esecuzione di un'esecuzione.

Nome Tipo Descrizione
id stringa Identificatore del passaggio dell’esecuzione a cui è possibile fare riferimento negli endpoint API.
object string Tipo di oggetto, che è sempre thread.run.step.
created_at integer Timestamp Unix (in secondi) di quando è stato creato il passaggio dell’esecuzione.
assistant_id string ID dell'assistente associato al passaggio di esecuzione.
thread_id string ID del thread eseguito.
run_id string L’ID dell’esecuzione di cui fa parte questo passaggio dell’esecuzione.
type string Tipo di passaggio dell'esecuzione, che può essere message_creation o tool_calls.
status string Lo stato del passaggio dell’esecuzione, che può essere in_progress, cancelled, failed, completed o expired.
step_details oggetto Dettagli del passaggio dell’esecuzione.
last_error oggetto o null Ultimo errore associato a questo passaggio dell’esecuzione. Sarà null se non ci sono errori.
expired_at numero intero o null Timestamp Unix (in secondi) di quando scadrà il passaggio dell’esecuzione. Un passaggio viene considerato scaduto se l'esecuzione padre è scaduta.
cancelled_at numero intero o null Timestamp Unix (in secondi) di quando è stato annullato il passaggio dell’esecuzione.
failed_at numero intero o null Timestamp Unix (in secondi) di quando il passaggio dell’esecuzione dà esito negativo.
completed_at numero intero o null Timestamp Unix (in secondi) di quando il passaggio dell’esecuzione viene completato.
metadata mappa Set di 16 coppie chiave-valore che possono essere collegate a un oggetto. Ciò può essere utile per archiviare informazioni aggiuntive sull'oggetto in un formato strutturato. Le chiavi possono essere lunghe al massimo 64 caratteri, mentre i valori al massimo 512 caratteri.

Trasmettere un risultato dell'esecuzione (anteprima)

Trasmette il risultato dell'esecuzione di un'esecuzione o della ripresa di un'esecuzione dopo l'invio degli output dello strumento. È possibile trasmettere gli eventi dopo:

Per trasmettere un risultato, passare "stream": true durante la creazione di un'esecuzione. La risposta sarà un flusso di eventi Server-Sent.

Esempio di 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()

Oggetto di troncamento

Controlla come un thread verrà troncato prima dell'esecuzione. Usare questa opzione per controllare la finestra di contesto iniziale dell'esecuzione.

Nome Tipo Descrizione Richiesto
type string Strategia di troncamento da usare per il thread. Il valore predefinito è auto. Se impostato su last_messages, il thread verrà troncato ai n messaggi più recenti nel thread. Se impostato su auto, i messaggi al centro del thread verranno rimossi per adattarsi alla lunghezza del contesto del modello, max_prompt_tokens.
last_messages integer Numero di messaggi più recenti dal thread durante la costruzione del contesto per l'esecuzione. No

Oggetto delta del messaggio

Rappresenta un delta del messaggio. Ad esempio, tutti i campi modificati in un messaggio durante lo streaming.

Nome Tipo Descrizione
id stringa Identificatore del messaggio a cui è possibile fare riferimento negli endpoint API.
object string Il tipo di oggetto, che è sempre thread.message.delta.
delta oggetto Delta contenente i campi modificati nel messaggio.

Oggetto delta del passaggio dell'esecuzione

Rappresenta un delta del passaggio dell'esecuzione. Ad esempio, tutti i campi modificati in un passaggio dell'esecuzione durante lo streaming.

Nome Tipo Descrizione
id stringa Identificatore del passaggio dell’esecuzione a cui è possibile fare riferimento negli endpoint API.
object string Il tipo di oggetto, che è sempre thread.run.step.delta.
delta oggetto Delta contenente i campi modificati del passaggio dell’esecuzione.

Eventi del flusso dell'assistente

Rappresenta un evento generato durante lo streaming di un’esecuzione. Ogni evento in uno flusso di eventi server-sent ha una proprietà event e data:

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

Vengono generati eventi ogni volta che un nuovo oggetto viene creato, passa a un nuovo stato o viene trasmesso in parti (delta). Ad esempio, viene generato thread.run.created quando viene creata una nuova esecuzione, thread.run.completed al termine di un'esecuzione e così via. Quando un assistente sceglie di creare un messaggio durante un'esecuzione, vengono generati un evento thread.message.created, un evento thread.message.in_progress, molti eventi hread.message.delta e infine un evento thread.message.completed.

Nome Tipo Descrizione
thread.created data è un thread. Viene generato quando viene creata un nuovo thread.
thread.run.created data è un'esecuzione. Viene generato quando viene creata una nuova esecuzione.
thread.run.queued data è un'esecuzione. Si verifica quando un'esecuzione passa a uno stato queued.
thread.run.in_progress data è un'esecuzione. Si verifica quando un'esecuzione passa a uno stato in_progress.
thread.run.requires_action data è un'esecuzione. Occorre quando un’esecuzione si sposta verso uno stato requires_action.
thread.run.completed data è un'esecuzione. Si verifica quando un’esecuzione è completata.
thread.run.failed data è un'esecuzione. Si verifica quando un'esecuzione non riesce.
thread.run.cancelling data è un'esecuzione. Occorre quando un’esecuzione si sposta verso uno stato cancelling.
thread.run.cancelled data è un'esecuzione. Si verifica quando un’esecuzione viene annullata.
thread.run.expired data è un'esecuzione. Si verifica quando un'esecuzione scade.
thread.run.step.created data è un passaggio dell'esecuzione. Si verifica quando viene creato un passaggio di esecuzione.
thread.run.step.in_progress data è un passaggio dell'esecuzione. Si verifica quando un’esecuzione si sposta verso uno stato in_progress.
thread.run.step.delta data è un delta del passaggio dell'esecuzione. Si verifica quando vengono trasmessi parti di un passaggio di esecuzione.
thread.run.step.completed data è un passaggio dell'esecuzione. Si verifica quando un passaggio dell’esecuzione è completato.
thread.run.step.failed data è un passaggio dell'esecuzione. Si verifica quando un passaggio di esecuzione non riesce.
thread.run.step.cancelled data è un passaggio dell'esecuzione. Si verifica quando un passaggio dell'esecuzione viene annullato.
thread.run.step.expired data è un passaggio dell'esecuzione. Si verifica quando un passaggio di esecuzione scade.
thread.message.created data è un messaggio. Si verifica quando viene creato un messaggio.
thread.message.in_progress data è un messaggio. Si verifica quando un messaggio passa a uno stato in_progress.
thread.message.delta data è un delta del messaggio. Si verifica quando vengono trasmesse parti di un messaggio.
thread.message.completed data è un messaggio. Si verifica quando un messaggio viene completato.
thread.message.incomplete data è un messaggio. Si verifica al termine di un messaggio prima del completamento.
error data è un errore. Si verifica in caso di errore. Ciò può verificarsi a causa di un errore interno del server o di un timeout.
done data è [DONE] Si verifica al termine di uno streaming.