Informazioni di riferimento sull'API Assistenti (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.
Creare un assistente
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview
Creare un assistente con un modello e istruzioni.
Testo della richiesta
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
modello | string | Richiesto | Nome della distribuzione del modello da usare. |
name | stringa o null | Facoltativo | Il nome dell’argomento. La lunghezza massima consentita è di 256 caratteri. |
description | stringa o null | Facoltativo | Descrizione dell'assistente. La lunghezza massima è di 512 caratteri. |
istruzioni | stringa o null | Facoltativo | Istruzioni di sistema usate dall'assistente. La lunghezza massima è di 256.000 caratteri. |
tools | array | Facoltativo | Il valore predefinito è []. Elenco di strumenti abilitati nell'assistente. Può essere disponibile un massimo di 128 strumenti per assistente. Gli strumenti possono attualmente essere di tipi code_interpreter o function . Una descrizione di function può avere un massimo di 1.024 caratteri. |
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. |
temperatura | numero o null | Facoltativo | Assume il valore predefinito 1. Determina la 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. |
top_p | numero o null | Facoltativo | Assume il valore predefinito 1. 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. |
response_format | stringa o oggetto | Facoltativo | Specifica il formato che il modello deve restituire. Compatibile con GPT-4 Turbo e tutti i modelli GPT-3.5 Turbo successivi a gpt-3.5-turbo-1106. L'impostazione di questo parametro 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 utilizzando un messaggio di sistema o utente. Senza questa istruzione, 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". In aggiunta, il contenuto del messaggio può essere parzialmente tagliato se si utilizza finish_reason="length" , che indica che la generazione ha superato max_tokens o la conversazione ha superato la lunghezza massima del contesto. |
tool_resources | oggetto | Facoltativo | Set di risorse usate dagli strumenti dell'assistente. Le risorse sono specifiche del tipo di strumento. Ad esempio, lo strumento code_interpreter richiede un elenco di ID di file, mentre lo strumento file_search richiede un elenco di ID archivio vettoriali. |
Valori restituiti
Un oggetto assistente.
Esempio di richiesta di creazione assistente
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")
)
assistant = client.beta.assistants.create(
instructions="You are an AI assistant that can write code to help answer math questions",
model="<REPLACE WITH MODEL DEPLOYMENT NAME>", # replace with model deployment name.
tools=[{"type": "code_interpreter"}]
)
Elenca assistenti
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview
Restituisce un elenco di tutti gli assistenti.
Parametri di query
Parametro | Type | Obbligatorio | Descrizione |
---|---|---|---|
limit |
integer | Facoltativo | 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 assistente
Esempio di Elenca assistenti
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")
)
my_assistants = client.beta.assistants.list(
order="desc",
limit="20",
)
print(my_assistants.data)
Recupera assistente
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}?api-version=2024-08-01-preview
Recupera un assistente.
Parametri del percorso
Parametro | Type | Obbligatorio | Descrizione |
---|---|---|---|
assistant_id |
stringa | Richiesto | ID dell'assistente da recuperare. |
Resi
Oggetto assistente corrispondente all'ID specificato.
Esempio di Recupera assistente
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-08-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
my_assistant = client.beta.assistants.retrieve("asst_abc123")
print(my_assistant)
Modifica assistente
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}?api-version=2024-08-01-preview
Recupera un assistente.
Parametri del percorso
Parametro | Type | Obbligatorio | Descrizione |
---|---|---|---|
assistant_id | string | Richiesto | ID dell'assistente a cui appartiene il file. |
Corpo della richiesta
Parametro | Type | Obbligatorio | Descrizione |
---|---|---|---|
model |
Facoltativo | Nome della distribuzione del modello da usare. | |
name |
stringa o null | Facoltativo | Il nome dell’argomento. La lunghezza massima consentita è di 256 caratteri. |
description |
stringa o null | Facoltativo | Descrizione dell'assistente. La lunghezza massima è di 512 caratteri. |
instructions |
stringa o null | Facoltativo | Istruzioni di sistema usate dall'assistente. La lunghezza massima è di 32768 caratteri. |
tools |
array | Facoltativo | Il valore predefinito è []. Elenco di strumenti abilitati nell'assistente. Può essere disponibile un massimo di 128 strumenti per assistente. Gli strumenti possono essere di tipi code_interpreter o funzione. Una descrizione di function può avere un massimo di 1.024 caratteri. |
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 |
numero o null | Facoltativo | Assume il valore predefinito 1. Determina la 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. |
top_p |
numero o null | Facoltativo | Assume il valore predefinito 1. 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. |
response_format |
stringa o oggetto | Facoltativo | Specifica il formato che il modello deve restituire. Compatibile con GPT-4 Turbo e tutti i modelli GPT-3.5 Turbo successivi a gpt-3.5-turbo-1106. L'impostazione di questo parametro 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 utilizzando un messaggio di sistema o utente. Senza questa istruzione, 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". In aggiunta, il contenuto del messaggio può essere parzialmente tagliato se si utilizza finish_reason="length" , che indica che la generazione ha superato max_tokens o la conversazione ha superato la lunghezza massima del contesto. |
tool_resources |
oggetto | Facoltativo | Set di risorse usate dagli strumenti dell'assistente. Le risorse sono specifiche del tipo di strumento. Ad esempio, lo strumento code_interpreter richiede un elenco di ID di file, mentre lo strumento file_search richiede un elenco di ID archivio vettoriali. |
Resi
Oggetto assistente modificato.
Esempio di Modifica assistente
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-08-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
my_updated_assistant = client.beta.assistants.update(
"asst_abc123",
instructions="You are an HR bot, and you have access to files to answer employee questions about company policies. Always respond with info from either of the files.",
name="HR Helper",
tools=[{"type": "code-interpreter"}],
model="gpt-4", #model = model deployment name
)
print(my_updated_assistant)
Elimina assistente
DELETE https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}?api-version=2024-08-01-preview
Elimina un assistente.
Parametri del percorso
Parametro | Type | Obbligatorio | Descrizione |
---|---|---|---|
assistant_id |
stringa | Richiesto | ID dell'assistente a cui appartiene il file. |
Resi
Stato di eliminazione.
Esempio di Elimina assistente
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-08-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
response = client.beta.assistants.delete("asst_abc123")
print(response)
Riferimento API per il caricamento di file
Gli assistenti usano la stessa API per il caricamento di file come ottimizzazione. Quando si carica un file, è necessario specificare un valore appropriato per il parametro scopo.
Oggetto assistente
Campo | Tipo | Descrizione |
---|---|---|
id |
stringa | Identificatore a cui è possibile fare riferimento negli endpoint API. |
object |
string | Il tipo di oggetto, che è sempre assistente. |
created_at |
integer | Timestamp Unix (in secondi) di quando è stato creato l’assistente. |
name |
stringa o null | Il nome dell’argomento. La lunghezza massima consentita è di 256 caratteri. |
description |
stringa o null | Descrizione dell'assistente. La lunghezza massima è di 512 caratteri. |
model |
string | Nome del nome della distribuzione del modello da usare. |
instructions |
stringa o null | Istruzioni di sistema usate dall'assistente. La lunghezza massima è di 32768 caratteri. |
tools |
array | Elenco di strumenti abilitati nell'assistente. Può essere disponibile un massimo di 128 strumenti per assistente. Gli strumenti possono essere di tipi code_interpreter o funzione. Una descrizione di function può avere un massimo di 1.024 caratteri. |
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. |
temperature |
numero o null | Assume il valore predefinito 1. Determina la 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. |
top_p |
numero o null | Assume il valore predefinito 1. 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. |
response_format |
stringa o oggetto | Specifica il formato che il modello deve restituire. Compatibile con GPT-4 Turbo e tutti i modelli GPT-3.5 Turbo successivi a gpt-3.5-turbo-1106. L'impostazione di questo parametro 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 utilizzando un messaggio di sistema o utente. Senza questa istruzione, 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". In aggiunta, il contenuto del messaggio può essere parzialmente tagliato se si utilizza finish_reason="length" , che indica che la generazione ha superato max_tokens o la conversazione ha superato la lunghezza massima del contesto. |
tool_resources |
oggetto | Set di risorse usate dagli strumenti dell'assistente. Le risorse sono specifiche del tipo di strumento. Ad esempio, lo strumento code_interpreter richiede un elenco di ID di file, mentre lo strumento file_search richiede un elenco di ID archivio vettoriali. |