Riferimento: Completamento della chat | Azure AI Foundry
Importante
Gli elementi contrassegnati (anteprima) in questo articolo sono attualmente disponibili in anteprima pubblica. Questa anteprima viene fornita senza un contratto di servizio e non è consigliabile per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.
Crea una risposta del modello per la conversazione di chat specificata.
POST /chat/completions?api-version=2024-04-01-preview
Parametri dell'URI
Nome | Tra | Richiesto | Type | Descrizione |
---|---|---|---|---|
api-version | query | Vero | string | Versione dell'API nel formato "AAAA-MM-GG" o "AAAA-MM-GG-preview". |
Intestazione richiesta
Nome | Obbligatorio | Type | Descrizione |
---|---|---|---|
parametri aggiuntivi | string | Il comportamento dell'API quando vengono indicati parametri extra nel payload. L'utilizzo di pass-through consente all'API di passare il parametro al modello sottostante. Usare questo valore quando si desidera passare i parametri che è noto che il modello sottostante possa supportare. L'utilizzo di ignore fa in modo che l'API elimini qualsiasi parametro non supportato. Usare questo valore quando è necessario usare lo stesso payload in modelli diversi, ma uno dei parametri extra può restituire un errore per un modello, se non supportato. L'utilizzo di error fa in modo che l'API rifiuti qualsiasi parametro extra nel payload. Possono essere indicati solo i parametri specificati in questa API. In caso contrario, verrà restituito un errore 400. |
|
azureml-model-deployment | string | Nome della distribuzione a cui si desidera instradare la richiesta. Supportato per gli endpoint che supportano più distribuzioni. |
Corpo della richiesta
Nome | Obbligatorio | Type | Descrizione |
---|---|---|---|
modello | string | Nome del modello. Questo parametro viene ignorato se l'endpoint serve un solo modello. | |
messages | Vero | ChatCompletionRequestMessage | Elenco di messaggi che comprendono la conversazione effettuata finora. Restituisce un errore 422 se almeno alcuni dei messaggi non possono essere riconosciuti dal modello. |
frequency_penalty | number | Consente di evitare ripetizioni di parole riducendo la possibilità di selezionare una parola se è già stata usata. Maggiore è la penalità della frequenza, minore è la probabilità che il modello ripeta le stesse parole nell'output. Restituisce un errore 422 se il valore o il parametro non è supportato dal modello. | |
max_tokens | integer | Numero massimo di token che possono essere generati al momento del completamento della chat. La lunghezza totale dei token di input e dei token generati è limitata dalla lunghezza del contesto del modello. Se si passa Null, il modello usa la lunghezza massima del contesto. |
|
presence_penalty | number | Aiuta a impedire che vengano ripetuti gli stessi argomenti penalizzando una parola se esiste già nel completamento, anche una sola volta. Restituisce un errore 422 se il valore o il parametro non è supportato dal modello. | |
response_format | ChatCompletionResponseFormat | ||
seed | integer | Se specificato, il sistema effettuerà tutti i tentativi possibili per eseguire il campionamento in modo deterministico, in modo che le richieste ripetute con gli stessi seed e parametri restituiscano lo stesso risultato. Il determinismo non è garantito ed è necessario fare riferimento al parametro di risposta system_fingerprint per monitorare le modifiche nel back-end. |
|
stop | Sequenze in cui l'API smetterà di generare altri token. | ||
stream | boolean | Se impostato, verranno inviati delta di messaggi parziali. I token verranno inviati come eventi inviati dal server di soli dati man mano che diventano disponibili, con il flusso terminato da un messaggio data: [DONE] . |
|
temperatura | number | Numero non negativo. Restituisce 422 se il valore non è supportato dal modello. | |
tool_choice | ChatCompletionToolChoiceOption | Controlla quale funzione (se presente) viene chiamata dal modello. none indica che il modello non chiamerà una funzione e genererà invece un messaggio. auto indica che il modello può scegliere tra la generazione di un messaggio o la chiamata di una funzione. Se si specifica una funzione specifica tramite {"type": "function", "function": {"name": "my_function"}} , impone al modello a chiamare tale funzione.none è l'impostazione predefinita quando non sono presenti funzioni. auto è l'impostazione predefinita se sono presenti funzioni. Restituisce un errore 422 se lo strumento non è supportato dal modello. |
|
tools | ChatCompletionTool[] | Elenco di strumenti che il modello può chiamare. Attualmente, solo le funzioni sono supportate come strumento. Usare questa opzione per fornire un elenco di funzioni per cui il modello può generare input JSON. Restituisce un errore 422 se lo strumento non è supportato dal modello. | |
top_p | number | 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 si consiglia di modificare questo valore o temperature ma non entrambi. |
Risposte
Nome | Tipo | Descrizione |
---|---|---|
200 OK | CreateChatCompletionResponse | Ok |
401 - Non autorizzato | UnauthorizedError | Token di accesso mancante o non valido Intestazioni x-ms-error-code: string |
404 Not Found | NotFoundError | Modalità non supportata dal modello. Controllare la documentazione del modello per verificare quali route sono disponibili. Intestazioni x-ms-error-code: string |
422 - Entità non elaborabile | UnprocessableContentError | La richiesta contiene contenuto non elaborabile Intestazioni x-ms-error-code: string |
429 Troppe richieste | TooManyRequestsError | È stato raggiunto il limite di frequenza assegnato e la richiesta deve essere gestita. Intestazioni x-ms-error-code: string |
Altri codici di stato | ContentFilterError | Richiesta non valida Intestazioni x-ms-error-code: string |
Sicurezza
Autorizzazione
Token con il prefisso Bearer:
, ad esempio Bearer abcde12345
Tipo: apiKey
In: intestazione
AADToken
Autenticazione OAuth2 di Azure Active Directory
Tipo: oauth2
Flusso: applicazione
URL del token: https://login.microsoftonline.com/common/oauth2/v2.0/token
Esempi
Crea una risposta del modello per la conversazione chat specificata
Richiesta di esempio
POST /chat/completions?api-version=2024-04-01-preview
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Explain Riemann's conjecture"
},
{
"role": "assistant",
"content": "The Riemann Conjecture is a deep mathematical conjecture around prime numbers and how they can be predicted. It was first published in Riemann's groundbreaking 1859 paper. The conjecture states that the Riemann zeta function has its zeros only at the negative even integers and complex numbers with real part 1/21. Many consider it to be the most important unsolved problem in pure mathematics. The Riemann hypothesis is a way to predict the probability that numbers in a certain range are prime that was also devised by German mathematician Bernhard Riemann in 18594."
},
{
"role": "user",
"content": "Ist it proved?"
}
],
"frequency_penalty": 0,
"presence_penalty": 0,
"max_tokens": 256,
"seed": 42,
"stop": "<|endoftext|>",
"stream": false,
"temperature": 0,
"top_p": 1,
"response_format": { "type": "text" }
}
Risposta di esempio
Codice di stato: 200
{
"id": "1234567890",
"model": "llama2-70b-chat",
"choices": [
{
"index": 0,
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "No, it has never been proved"
}
}
],
"created": 1234567890,
"object": "chat.completion",
"usage": {
"prompt_tokens": 205,
"completion_tokens": 5,
"total_tokens": 210
}
}
Definizioni
Nome | Descrizione |
---|---|
ChatCompletionRequestMessage | |
ChatCompletionMessageContentPart | |
ChatCompletionMessageContentPartType | |
ChatCompletionToolChoiceOption | Controlla quale funzione (se presente) viene chiamata dal modello. none indica che il modello non chiamerà una funzione e genererà invece un messaggio. auto indica che il modello può scegliere tra la generazione di un messaggio o la chiamata di una funzione. Se si specifica una funzione specifica tramite {"type": "function", "function": {"name": "my_function"}} , impone al modello a chiamare tale funzione.none è l'impostazione predefinita quando non sono presenti funzioni. auto è l'impostazione predefinita se sono presenti funzioni. Restituisce un errore 422 se lo strumento non è supportato dal modello. |
ChatCompletionFinishReason | Motivo per cui il modello ha interrotto la generazione di token. Sarà stop se il modello raggiunge un punto di arresto naturale o la sequenza di arresto specificata, length se è stato raggiunto il numero massimo di token specificati nella richiesta, content_filter se il contenuto è stato omesso a causa di un flag dai filtri del contenuto, tool_calls se il modello ha chiamato uno strumento. |
ChatCompletionMessageToolCall | |
ChatCompletionObject | Il tipo di oggetto, che è sempre chat.completion . |
ChatCompletionResponseFormat | Formato di risposta per la risposta del modello. L'impostazione su json_object abilita la modalità JSON, che garantisce che il messaggio generato dal modello sia JSON valido. Quando si usa la modalità JSON, è necessario anche indicare al modello di produrre JSON manualmente tramite un messaggio di sistema o utente. 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. |
ChatCompletionResponseFormatType | Tipo di formato della risposta. |
ChatCompletionResponseMessage | Messaggio di completamento della chat generato dal modello. |
ChatCompletionTool | |
ChatMessageRole | Ruolo dell'autore del messaggio. |
Choices | Elenco di scelte di completamento della chat. |
CompletionUsage | Statistiche di utilizzo per la richiesta di completamento. |
ContentFilterError | La chiamata API ha esito negativo quando la richiesta attiva un filtro di contenuto come configurato. Modificare il prompt e riprovare. |
CreateChatCompletionRequest | |
CreateChatCompletionResponse | Rappresenta una risposta di completamento della chat restituita dal modello, in base all'input fornito. |
Detail | Dettagli dell'errore UnprocessableContentError. |
Funzione | Funzione chiamata dal modello. |
FunctionObject | Definizione di una funzione a cui il modello ha accesso. |
ImageDetail | Specifica il livello di dettaglio dell'immagine. |
NotFoundError | Il percorso non è valido per il modello distribuito. |
ToolType | Tipo dello strumento. Attualmente è supportato solo function . |
TooManyRequestsError | È stato raggiunto il limite di frequenza assegnato e le richieste devono essere gestite. |
UnauthorizedError | Autenticazione mancante o non valida. |
UnprocessableContentError | La richiesta presenta contenuti non elaborabili. L'errore viene restituito quando il payload indicato è valido in base a questa specifica. Tuttavia, alcune istruzioni indicate nel payload non sono supportate dal modello sottostante. Usare la sezione details per comprendere il parametro all'origine dell'errore. |
ChatCompletionFinishReason
Motivo per cui il modello ha interrotto la generazione di token. Sarà stop
se il modello raggiunge un punto di arresto naturale o la sequenza di arresto specificata, length
se è stato raggiunto il numero massimo di token specificati nella richiesta, content_filter
se il contenuto è stato omesso a causa di un flag dai filtri del contenuto, tool_calls
se il modello ha chiamato uno strumento.
Nome | Tipo | Descrizione |
---|---|---|
content_filter | string | |
length | string | |
stop | string | |
tool_calls | string |
ChatCompletionMessageToolCall
Nome | Tipo | Descrizione |
---|---|---|
function | Funzione | Funzione chiamata dal modello. |
ID | string | ID della chiamata allo strumento. |
type | ToolType | Tipo dello strumento. Attualmente è supportato solo function . |
ChatCompletionObject
Il tipo di oggetto, che è sempre chat.completion
.
Nome | Tipo | Descrizione |
---|---|---|
chat.completion | string |
ChatCompletionResponseFormat
Formato di risposta per la risposta del modello. L'impostazione su json_object
abilita la modalità JSON, che garantisce che il messaggio generato dal modello sia JSON valido. Quando si usa la modalità JSON, è necessario anche indicare al modello di produrre JSON manualmente tramite un messaggio di sistema o utente. 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.
Nome | Tipo | Descrizione |
---|---|---|
type | ChatCompletionResponseFormatType | Tipo di formato della risposta. |
ChatCompletionResponseFormatType
Tipo di formato della risposta.
Nome | Tipo | Descrizione |
---|---|---|
json_object | string | |
Testo | string |
ChatCompletionResponseMessage
Messaggio di completamento della chat generato dal modello.
Nome | Tipo | Descrizione |
---|---|---|
content | string | Contenuto del messaggio. |
ruolo | ChatMessageRole | Ruolo dell'autore del messaggio. |
tool_calls | ChatCompletionMessageToolCall[] | Le chiamate degli strumenti generate dal modello, ad esempio le chiamate di funzioni. |
ChatCompletionTool
Nome | Tipo | Descrizione |
---|---|---|
function | FunctionObject | |
type | ToolType | Tipo dello strumento. Attualmente è supportato solo function . |
ChatMessageRole
Ruolo dell'autore del messaggio.
Nome | Tipo | Descrizione |
---|---|---|
assistant | string | |
operativo | string | |
strumento | string | |
utente | string |
Scelte
Elenco di scelte di completamento della chat. Può essere maggiore di uno se n
è maggiore di 1.
Nome | Tipo | Descrizione |
---|---|---|
finish_reason | ChatCompletionFinishReason | Motivo per cui il modello ha interrotto la generazione di token. Sarà stop se il modello raggiunge un punto di arresto naturale o la sequenza di arresto specificata, length se è stato raggiunto il numero massimo di token specificati nella richiesta, content_filter se il contenuto è stato omesso a causa di un flag dai filtri del contenuto, tool_calls se il modello ha chiamato uno strumento. |
index | integer | Indice della scelta nell'elenco di scelte. |
messaggio | ChatCompletionResponseMessage | Messaggio di completamento della chat generato dal modello. |
CompletionUsage
Statistiche di utilizzo per la richiesta di completamento.
Nome | Tipo | Descrizione |
---|---|---|
completion_tokens | integer | Numero di token nel completamento generato. |
prompt_tokens | integer | Numero di token nel prompt. |
total_tokens | integer | Numero totale di token usati nella richiesta (prompt + completamento). |
ContentFilterError
La chiamata API ha esito negativo quando la richiesta attiva un filtro di contenuto come configurato. Modificare il prompt e riprovare.
Nome | Tipo | Descrizione |
---|---|---|
codice | string | Codice errore. |
Errore | string | Descrizione dell'errore. |
messaggio | string | Messaggio di errore. |
param | string | Il parametro che ha attivato il filtro contenuto. |
stato | integer | Codice di stato HTTP. |
CreateChatCompletionRequest
Nome | Type | Valore predefinito | Descrizione |
---|---|---|---|
frequency_penalty | number | 0 | Consente di evitare ripetizioni di parole riducendo la possibilità di selezionare una parola se è già stata usata. Maggiore è la penalità della frequenza, minore è la probabilità che il modello ripeta le stesse parole nell'output. Restituisce un errore 422 se il valore o il parametro non è supportato dal modello. |
max_tokens | integer | Numero massimo di token che possono essere generati al momento del completamento della chat. La lunghezza totale dei token di input e dei token generati è limitata dalla lunghezza del contesto del modello. Se si passa Null, il modello usa la lunghezza massima del contesto. |
|
messages | ChatCompletionRequestMessage[] | Elenco di messaggi che comprendono la conversazione effettuata finora. Restituisce un errore 422 se almeno alcuni dei messaggi non possono essere riconosciuti dal modello. | |
presence_penalty | number | 0 | Aiuta a impedire che vengano ripetuti gli stessi argomenti penalizzando una parola se esiste già nel completamento, anche una sola volta. Restituisce un errore 422 se il valore o il parametro non è supportato dal modello. |
response_format | ChatCompletionResponseFormat | Testo | |
seed | integer | Se specificato, il sistema effettuerà tutti i tentativi possibili per eseguire il campionamento in modo deterministico, in modo che le richieste ripetute con gli stessi seed e parametri restituiscano lo stesso risultato. Il determinismo non è garantito ed è necessario fare riferimento al parametro di risposta system_fingerprint per monitorare le modifiche nel back-end. |
|
stop | Sequenze in cui l'API smetterà di generare altri token. | ||
stream | boolean | Falso | Se impostato, verranno inviati delta di messaggi parziali. I token verranno inviati come eventi inviati dal server di soli dati man mano che diventano disponibili, con il flusso terminato da un messaggio data: [DONE] . |
temperatura | number | 1 | Numero non negativo. Restituisce 422 se il valore non è supportato dal modello. |
tool_choice | ChatCompletionToolChoiceOption | Controlla quale funzione (se presente) viene chiamata dal modello. none indica che il modello non chiamerà una funzione e genererà invece un messaggio. auto indica che il modello può scegliere tra la generazione di un messaggio o la chiamata di una funzione. Se si specifica una funzione specifica tramite {"type": "function", "function": {"name": "my_function"}} , impone al modello a chiamare tale funzione.none è l'impostazione predefinita quando non sono presenti funzioni. auto è l'impostazione predefinita se sono presenti funzioni. Restituisce un errore 422 se lo strumento non è supportato dal modello. |
|
tools | ChatCompletionTool[] | Elenco di strumenti che il modello può chiamare. Attualmente, solo le funzioni sono supportate come strumento. Usare questa opzione per fornire un elenco di funzioni per cui il modello può generare input JSON. Restituisce un errore 422 se lo strumento non è supportato dal modello. | |
top_p | number | 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 si consiglia di modificare questo valore o temperature ma non entrambi. |
ChatCompletionRequestMessage
Nome | Tipo | Descrizione |
---|---|---|
content | stringa o ChatCompletionMessageContentPart[] | Contenuto del messaggio. |
ruolo | ChatMessageRole | Ruolo dell'autore del messaggio. |
tool_calls | ChatCompletionMessageToolCall[] | Le chiamate degli strumenti generate dal modello, ad esempio le chiamate di funzioni. |
ChatCompletionMessageContentPart
Nome | Tipo | Descrizione |
---|---|---|
content | string | URL dell'immagine o dati dell'immagine con codifica base64. |
detail | ImageDetail | Specifica il livello di dettaglio dell'immagine. |
type | ChatCompletionMessageContentPartType | Tipo della parte di contenuto. |
ChatCompletionMessageContentPartType
Nome | Tipo | Descrizione |
---|---|---|
Testo | string | |
image | string | |
image_url | string |
ChatCompletionToolChoiceOption
Controlla quale strumento (se presente) viene chiamato dal modello.
Nome | Tipo | Descrizione |
---|---|---|
Nessuno | string | Il modello non chiamerà alcuno strumento e genererà invece un messaggio. |
auto | string | Il modello può scegliere tra la generazione di un messaggio o la chiamata di uno o più strumenti. |
Obbligatorio | string | Il modello deve chiamare uno o più strumenti. |
string | Se si specifica uno strumento specifico tramite {"type": "function", "function": {"name": "my_function"}} impone al modello di chiamare tale strumento. |
ImageDetail
Specifica il livello di dettaglio dell'immagine.
Nome | Tipo | Descrizione |
---|---|---|
auto | string | |
low | string | |
high | string |
CreateChatCompletionResponse
Rappresenta una risposta di completamento della chat restituita dal modello, in base all'input fornito.
Nome | Tipo | Descrizione |
---|---|---|
choices | Scelte[] | Elenco di scelte di completamento della chat. Può essere maggiore di uno se n è maggiore di 1. |
created | integer | Timestamp Unix (in secondi) di quando è stato creato il completamento della chat. |
ID | string | Identificatore univoco per il completamento della chat. |
modello | string | Modello usato per il completamento della chat. |
oggetto | ChatCompletionObject | Il tipo di oggetto, che è sempre chat.completion . |
system_fingerprint | string | Questa impronta digitale rappresenta la configurazione back-end con cui viene eseguito il modello. Può essere usata insieme al parametro di richiesta seed per comprendere quando sono state apportate modifiche back-end che potrebbero influire sul determinismo. |
attivamente | CompletionUsage | Statistiche di utilizzo per la richiesta di completamento. |
Dettagli
Dettagli dell'errore UnprocessableContentError.
Nome | Tipo | Descrizione |
---|---|---|
loc | string[] | Parametro che causa il problema |
value | string | Il valore passato al parametro che causa problemi. |
Funzione
Funzione chiamata dal modello.
Nome | Tipo | Descrizione |
---|---|---|
argomenti | string | Argomenti con cui chiamare la funzione, come generato dal modello in formato JSON. Si noti che il modello non genera sempre codice JSON valido e può generare parametri non corretti non definiti nello schema della funzione. Convalidare gli argomenti nel codice prima di chiamare la funzione. |
name | string | Nome della funzione da chiamare. |
FunctionObject
Definizione di una funzione a cui il modello ha accesso.
Nome | Tipo | Descrizione |
---|---|---|
description | stringa | Descrizione delle operazioni della funzione, usate dal modello per scegliere quando e come chiamare la funzione. |
name | string | Nome della funzione che deve essere chiamata. Deve essere a-z, A-Z, 0-9 o contenere caratteri di sottolineatura e trattini, con una lunghezza massima di 64 caratteri. |
parameters | oggetto | I parametri accettati dalle funzioni, descritti come oggetto Schema JSON. L'omissione di parameters definisce una funzione con un elenco di parametri vuoto. |
NotFoundError
Nome | Tipo | Descrizione |
---|---|---|
Errore | string | Descrizione dell'errore. |
messaggio | string | Messaggio di errore. |
stato | integer | Codice di stato HTTP. |
ToolType
Tipo dello strumento. Attualmente è supportato solo function
.
Nome | Tipo | Descrizione |
---|---|---|
function | string |
TooManyRequestsError
Nome | Tipo | Descrizione |
---|---|---|
Errore | string | Descrizione dell'errore. |
messaggio | string | Messaggio di errore. |
stato | integer | Codice di stato HTTP. |
UnauthorizedError
Nome | Tipo | Descrizione |
---|---|---|
Errore | string | Descrizione dell'errore. |
messaggio | string | Messaggio di errore. |
stato | integer | Codice di stato HTTP. |
UnprocessableContentError
La richiesta presenta contenuti non elaborabili. L'errore viene restituito quando il payload indicato è valido in base a questa specifica. Tuttavia, alcune istruzioni indicate nel payload non sono supportate dal modello sottostante. Usare la sezione details
per comprendere il parametro all'origine dell'errore.
Nome | Tipo | Descrizione |
---|---|---|
codice | string | Codice errore. |
detail | Detail | |
Errore | string | Descrizione dell'errore. |
messaggio | string | Messaggio di errore. |
stato | integer | Codice di stato HTTP. |