Condividi tramite


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.