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