Referência: Conclusão do Chat | Azure Machine Learning
Cria um modelo de resposta para determinada conversa de chat.
POST /chat/completions?api-version=2024-04-01-preview
Parâmetros do URI
Nome | Em | Necessário | Type | Description |
---|---|---|---|---|
api-version | query | True | string | A versão da API no formato "AAAA-MM-DD" ou "AAAA-MM-DD-visualização". |
Cabeçalho do Pedido
Nome | Obrigatório | Type | Description |
---|---|---|---|
extra-parâmetros | string | O comportamento da API quando parâmetros extras são indicados na carga útil. O uso pass-through faz com que a API passe o parâmetro para o modelo subjacente. Use esse valor quando quiser passar parâmetros que você sabe que o modelo subjacente pode suportar. O uso ignore faz com que a API elimine qualquer parâmetro não suportado. Use esse valor quando precisar usar a mesma carga em modelos diferentes, mas um dos parâmetros extras pode fazer com que um modelo cometa erro se não for suportado. O uso error faz com que a API rejeite qualquer parâmetro extra na carga útil. Somente os parâmetros especificados nesta API podem ser indicados, ou um erro 400 é retornado. |
|
azureml-model-deployment | string | Nome da implantação para a qual você deseja rotear a solicitação. Suporte para endpoints que suportam várias implantações. |
Corpo do Pedido
Nome | Obrigatório | Type | Description |
---|---|---|---|
mensagens | True | ChatCompletionRequestMessage | Uma lista de mensagens que compõem a conversa até agora. Retorna um erro 422 se pelo menos algumas das mensagens não puderem ser entendidas pelo modelo. |
frequency_penalty | Número | Ajuda a evitar repetições de palavras, reduzindo a chance de uma palavra ser selecionada se já tiver sido usada. Quanto maior a penalidade de frequência, menor a probabilidade de o modelo repetir as mesmas palavras em sua saída. Retorne um erro 422 se o valor ou parâmetro não for suportado pelo modelo. | |
max_tokens | integer | O número máximo de tokens que podem ser gerados na conclusão do chat. O comprimento total dos tokens de entrada e dos tokens gerados é limitado pelo comprimento do contexto do modelo. Passar null faz com que o modelo use seu comprimento máximo de contexto. |
|
presence_penalty | Número | Ajuda a evitar que os mesmos tópicos se repitam, penalizando uma palavra se ela já existir na conclusão, mesmo que apenas uma vez. Retorne um erro 422 se o valor ou parâmetro não for suportado pelo modelo. | |
response_format | ChatCompletionResponseFormat | ||
sementes | integer | Se especificado, nosso sistema fará um melhor esforço para amostragem determinística, de modo que solicitações repetidas com os mesmos seed parâmetros e devem retornar o mesmo resultado. O determinismo não é garantido e você deve consultar o system_fingerprint parâmetro response para monitorar as alterações no back-end. |
|
parar | Sequências em que a API deixará de gerar mais tokens. | ||
transmissão em fluxo | boolean | Se definido, deltas de mensagem parciais serão enviados. Os tokens serão enviados como eventos enviados apenas pelo servidor de dados à medida que ficam disponíveis, com o fluxo encerrado por uma data: [DONE] mensagem. |
|
temperatura | Número | Número não negativo. Retorne 422 se o valor não for suportado pelo modelo. | |
tool_choice | ChatCompletionToolChoiceOption | Controla qual (se houver) função é chamada pelo modelo. none significa que o modelo não chamará uma função e, em vez disso, gerará uma mensagem. auto significa que o modelo pode escolher entre gerar uma mensagem ou chamar uma função. Especificar uma função específica através {"type": "function", "function": {"name": "my_function"}} força o modelo a chamar essa função.none é o padrão quando nenhuma função está presente. auto é o padrão se as funções estiverem presentes. Retorna um erro 422 se a ferramenta não for suportada pelo modelo. |
|
ferramentas | ChatCompletionTool[] | Uma lista de ferramentas que o modelo pode chamar. Atualmente, apenas funções são suportadas como ferramenta. Use isso para fornecer uma lista de funções para as quais o modelo pode gerar entradas JSON. Retorna um erro 422 se a ferramenta não for suportada pelo modelo. | |
top_p | Número | Uma alternativa à amostragem com temperatura, chamada amostragem de núcleo, onde o modelo considera os resultados dos tokens com top_p massa de probabilidade. Assim, 0,1 significa que apenas os tokens que compõem a massa de probabilidade superior de 10% são considerados. Geralmente, recomendamos alterar isso ou temperature mas não ambos. |
Respostas
Nome | Tipo | Description |
---|---|---|
200 OK | CreateChatCompletionResponse | OK |
401 Não Autorizado | UnauthorizedError | O token de acesso está ausente ou é inválido Cabeçalhos x-ms-error-code: cadeia de caracteres |
404 Não Encontrado | NotFoundError | Modalidade não suportada pelo modelo. Verifique a documentação do modelo para ver quais rotas estão disponíveis. Cabeçalhos x-ms-error-code: cadeia de caracteres |
422 Entidade não processável | UnprocessableContentError | A solicitação contém conteúdo não processável Cabeçalhos x-ms-error-code: cadeia de caracteres |
Demasiados Pedidos 429 | TooManyRequestsError | Você atingiu o limite de taxa atribuído e sua solicitação precisa ser cadenciada. Cabeçalhos x-ms-error-code: cadeia de caracteres |
Outros códigos de status | ContentFilterError | Solicitação inválida Cabeçalhos x-ms-error-code: cadeia de caracteres |
Segurança
Autorização
O token com o prefixo Bearer:
, por exemplo, Bearer abcde12345
Tipo: apiKey
Em: cabeçalho
AADToken
Autenticação OAuth2 do Azure Ative Directory
Tipo: oauth2
Fluxo: aplicação
URL do token: https://login.microsoftonline.com/common/oauth2/v2.0/token
Exemplos
Cria um modelo de resposta para determinada conversa de bate-papo
Pedido de Amostra
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" }
}
Pedido de Resposta
Código de status: 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
}
}
Definições
Nome | Descrição |
---|---|
ChatCompletionRequestMessage | |
ChatCompletionMessageContentPart | |
ChatCompletionMessageContentPartType | |
ChatCompletionToolChoiceOption | Controla qual (se houver) função é chamada pelo modelo. none significa que o modelo não chamará uma função e, em vez disso, gerará uma mensagem. auto significa que o modelo pode escolher entre gerar uma mensagem ou chamar uma função. Especificar uma função específica através {"type": "function", "function": {"name": "my_function"}} força o modelo a chamar essa função.none é o padrão quando nenhuma função está presente. auto é o padrão se as funções estiverem presentes. Retorna um erro 422 se a ferramenta não for suportada pelo modelo. |
ChatCompletionFinishReason | A razão pela qual o modelo parou de gerar tokens. Isso será stop se o modelo atingir um ponto de parada natural ou uma sequência de parada fornecida, length se o número máximo de tokens especificado na solicitação foi atingido, content_filter se o conteúdo foi omitido devido a um sinalizador de nossos filtros de conteúdo, tool_calls se o modelo chamou uma ferramenta. |
ChatCompletionMessageToolCall | |
ChatCompletionObject | O tipo de objeto, que é sempre chat.completion . |
ChatCompletionResponseFormat | O formato de resposta para a resposta do modelo. Configuração para json_object habilitar o modo JSON, que garante que a mensagem gerada pelo modelo seja JSON válida. Ao usar o modo JSON, você também deve instruir o modelo a produzir JSON por conta própria por meio de um sistema ou mensagem de usuário. Observe também que o conteúdo da mensagem pode ser parcialmente cortado se finish_reason="length" , o que indica que a geração excedeu max_tokens ou a conversa excedeu o comprimento máximo de contexto. |
ChatCompletionResponseFormatType | O tipo de formato de resposta. |
ChatCompletionResponseMessage | Uma mensagem de conclusão do chat gerada pelo modelo. |
ChatCompletionTool | |
ChatMessageRole | O papel do autor desta mensagem. |
Choices | Uma lista de opções de conclusão de chat. |
ConclusãoUso | Estatísticas de utilização do pedido de conclusão. |
ContentFilterError | A chamada de API falha quando o prompt aciona um filtro de conteúdo conforme configurado. Modifique o prompt e tente novamente. |
CreateChatCompletionRequest | |
CreateChatCompletionResponse | Representa uma resposta de conclusão de chat retornada por modelo, com base na entrada fornecida. |
Detalhe | Detalhes para o erro UnprocessableContentError . |
Função | A função que o modelo chamou. |
FunctionObject | Definição de uma função à qual o modelo tem acesso. |
ImagemDetalhe | Especifica o nível de detalhe da imagem. |
NotFoundError | A rota não é válida para o modelo implantado. |
Tipo de ferramenta | O tipo da ferramenta. Atualmente, apenas function é suportado. |
TooManyRequestsError | Você atingiu o limite de taxa atribuído e suas solicitações precisam ser aceleradas. |
UnauthorizedError | A autenticação está ausente ou é inválida. |
UnprocessableContentError | A solicitação contém conteúdo não processável. O erro é devolvido quando a carga útil indicada é válida de acordo com esta especificação. No entanto, algumas das instruções indicadas na carga útil não são suportadas pelo modelo subjacente. Use a details seção para entender o parâmetro ofensivo. |
ChatCompletionFinishReason
A razão pela qual o modelo parou de gerar tokens. Isso será stop
se o modelo atingir um ponto de parada natural ou uma sequência de parada fornecida, length
se o número máximo de tokens especificado na solicitação foi atingido, content_filter
se o conteúdo foi omitido devido a um sinalizador de nossos filtros de conteúdo, tool_calls
se o modelo chamou uma ferramenta.
Nome | Tipo | Description |
---|---|---|
content_filter | string | |
length | string | |
parar | string | |
tool_calls | string |
ChatCompletionMessageToolCall
Nome | Tipo | Descrição |
---|---|---|
function | Função | A função que o modelo chamou. |
ID | string | O ID da chamada da ferramenta. |
tipo | Tipo de ferramenta | O tipo da ferramenta. Atualmente, apenas function é suportado. |
ChatCompletionObject
O tipo de objeto, que é sempre chat.completion
.
Nome | Tipo | Description |
---|---|---|
chat.conclusão | string |
ChatCompletionResponseFormat
O formato de resposta para a resposta do modelo. Configuração para json_object
habilitar o modo JSON, que garante que a mensagem gerada pelo modelo seja JSON válida. Ao usar o modo JSON, você também deve instruir o modelo a produzir JSON por conta própria por meio de um sistema ou mensagem de usuário. Observe também que o conteúdo da mensagem pode ser parcialmente cortado se finish_reason="length"
, o que indica que a geração excedeu max_tokens
ou a conversa excedeu o comprimento máximo de contexto.
Nome | Tipo | Description |
---|---|---|
tipo | ChatCompletionResponseFormatType | O tipo de formato de resposta. |
ChatCompletionResponseFormatType
O tipo de formato de resposta.
Nome | Tipo | Description |
---|---|---|
json_object | string | |
texto | string |
ChatCompletionResponseMessage
Uma mensagem de conclusão do chat gerada pelo modelo.
Nome | Tipo | Description |
---|---|---|
content | string | O conteúdo da mensagem. |
função | ChatMessageRole | O papel do autor desta mensagem. |
tool_calls | ChatCompletionMessageToolCall[] | As chamadas de ferramenta geradas pelo modelo, como chamadas de função. |
ChatCompletionTool
Nome | Tipo | Descrição |
---|---|---|
function | FunctionObject | |
tipo | Tipo de ferramenta | O tipo da ferramenta. Atualmente, apenas function é suportado. |
ChatMessageRole
O papel do autor desta mensagem.
Nome | Tipo | Description |
---|---|---|
assistente | string | |
sistema | string | |
ferramenta | string | |
Utilizador | string |
Escolhas
Uma lista de opções de conclusão de chat. Pode ser mais de um se n
for maior que 1.
Nome | Tipo | Description |
---|---|---|
finish_reason | ChatCompletionFinishReason | A razão pela qual o modelo parou de gerar tokens. Isso será stop se o modelo atingir um ponto de parada natural ou uma sequência de parada fornecida, length se o número máximo de tokens especificado na solicitação foi atingido, content_filter se o conteúdo foi omitido devido a um sinalizador de nossos filtros de conteúdo, tool_calls se o modelo chamou uma ferramenta. |
index | integer | O índice da escolha na lista de opções. |
mensagem | ChatCompletionResponseMessage | Uma mensagem de conclusão do chat gerada pelo modelo. |
ConclusãoUso
Estatísticas de utilização do pedido de conclusão.
Nome | Tipo | Description |
---|---|---|
completion_tokens | integer | Número de tokens na conclusão gerada. |
prompt_tokens | integer | Número de tokens no prompt. |
total_tokens | integer | Número total de tokens usados na solicitação (prompt + conclusão). |
ContentFilterError
A chamada de API falha quando o prompt aciona um filtro de conteúdo conforme configurado. Modifique o prompt e tente novamente.
Nome | Tipo | Description |
---|---|---|
code | string | O código de erro. |
error | string | A descrição do erro. |
mensagem | string | A mensagem de erro. |
param | string | O parâmetro que acionou o filtro de conteúdo. |
status | integer | O código de status HTTP. |
CreateChatCompletionRequest
Nome | Type | Valor Predefinido | Description |
---|---|---|---|
frequency_penalty | Número | 0 | Ajuda a evitar repetições de palavras, reduzindo a chance de uma palavra ser selecionada se já tiver sido usada. Quanto maior a penalidade de frequência, menor a probabilidade de o modelo repetir as mesmas palavras em sua saída. Retorne um erro 422 se o valor ou parâmetro não for suportado pelo modelo. |
max_tokens | integer | O número máximo de tokens que podem ser gerados na conclusão do chat. O comprimento total dos tokens de entrada e dos tokens gerados é limitado pelo comprimento do contexto do modelo. Passar null faz com que o modelo use seu comprimento máximo de contexto. |
|
mensagens | ChatCompletionRequestMessage[] | Uma lista de mensagens que compõem a conversa até agora. Retorna um erro 422 se pelo menos algumas das mensagens não puderem ser entendidas pelo modelo. | |
presence_penalty | Número | 0 | Ajuda a evitar que os mesmos tópicos se repitam, penalizando uma palavra se ela já existir na conclusão, mesmo que apenas uma vez. Retorne um erro 422 se o valor ou parâmetro não for suportado pelo modelo. |
response_format | ChatCompletionResponseFormat | texto | |
sementes | integer | Se especificado, nosso sistema fará um melhor esforço para amostragem determinística, de modo que solicitações repetidas com os mesmos seed parâmetros e devem retornar o mesmo resultado. O determinismo não é garantido e você deve consultar o system_fingerprint parâmetro response para monitorar as alterações no back-end. |
|
parar | Sequências em que a API deixará de gerar mais tokens. | ||
transmissão em fluxo | boolean | False | Se definido, deltas de mensagem parciais serão enviados. Os tokens serão enviados como eventos enviados apenas pelo servidor de dados à medida que ficam disponíveis, com o fluxo encerrado por uma data: [DONE] mensagem. |
temperatura | Número | 1 | Número não negativo. Retorne 422 se o valor não for suportado pelo modelo. |
tool_choice | ChatCompletionToolChoiceOption | Controla qual (se houver) função é chamada pelo modelo. none significa que o modelo não chamará uma função e, em vez disso, gerará uma mensagem. auto significa que o modelo pode escolher entre gerar uma mensagem ou chamar uma função. Especificar uma função específica através {"type": "function", "function": {"name": "my_function"}} força o modelo a chamar essa função.none é o padrão quando nenhuma função está presente. auto é o padrão se as funções estiverem presentes. Retorna um erro 422 se a ferramenta não for suportada pelo modelo. |
|
ferramentas | ChatCompletionTool[] | Uma lista de ferramentas que o modelo pode chamar. Atualmente, apenas funções são suportadas como ferramenta. Use isso para fornecer uma lista de funções para as quais o modelo pode gerar entradas JSON. Retorna um erro 422 se a ferramenta não for suportada pelo modelo. | |
top_p | Número | 1 | Uma alternativa à amostragem com temperatura, chamada amostragem de núcleo, onde o modelo considera os resultados dos tokens com top_p massa de probabilidade. Assim, 0,1 significa que apenas os tokens que compõem a massa de probabilidade superior de 10% são considerados. Geralmente, recomendamos alterar isso ou temperature mas não ambos. |
ChatCompletionRequestMessage
Nome | Tipo | Description |
---|---|---|
content | string ou ChatCompletionMessageContentPart[] | O conteúdo da mensagem. |
função | ChatMessageRole | O papel do autor desta mensagem. |
tool_calls | ChatCompletionMessageToolCall[] | As chamadas de ferramenta geradas pelo modelo, como chamadas de função. |
ChatCompletionMessageContentPart
Nome | Tipo | Description |
---|---|---|
content | string | Um URL da imagem ou os dados de imagem codificados em base64. |
detalhe | ImagemDetalhe | Especifica o nível de detalhe da imagem. |
tipo | ChatCompletionMessageContentPartType | O tipo da parte de conteúdo. |
ChatCompletionMessageContentPartType
Nome | Tipo | Descrição |
---|---|---|
texto | string | |
image | string | |
image_url | string |
ChatCompletionToolChoiceOption
Controla qual (se houver) ferramenta é chamada pelo modelo.
Nome | Tipo | Description |
---|---|---|
nenhum | string | O modelo não chamará nenhuma ferramenta e, em vez disso, gerará uma mensagem. |
auto | string | O modelo pode escolher entre gerar uma mensagem ou chamar uma ou mais ferramentas. |
obrigatório | string | O modelo deve chamar uma ou mais ferramentas. |
string | Especificar uma ferramenta específica via {"type": "function", "function": {"name": "my_function"}} força o modelo a chamar essa ferramenta. |
ImagemDetalhe
Especifica o nível de detalhe da imagem.
Nome | Tipo | Description |
---|---|---|
auto | string | |
lowa | string | |
alto | string |
CreateChatCompletionResponse
Representa uma resposta de conclusão de chat retornada por modelo, com base na entrada fornecida.
Nome | Tipo | Description |
---|---|---|
escolhas | Escolhas[] | Uma lista de opções de conclusão de chat. Pode ser mais de um se n for maior que 1. |
criado | integer | O carimbo de data/hora Unix (em segundos) de quando a conclusão do chat foi criada. |
ID | string | Um identificador exclusivo para a conclusão do chat. |
modelo | string | O modelo usado para a conclusão do chat. |
objeto | ChatCompletionObject | O tipo de objeto, que é sempre chat.completion . |
system_fingerprint | string | Essa impressão digital representa a configuração de back-end com a qual o modelo é executado. Pode ser usado em conjunto com o parâmetro request para entender quando alterações de back-end foram feitas que podem afetar o seed determinismo. |
ativa | ConclusãoUso | Estatísticas de utilização do pedido de conclusão. |
Detalhe
Detalhes para o erro UnprocessableContentError .
Nome | Tipo | Description |
---|---|---|
loc | string[] | O parâmetro que causa o problema |
valor | string | O valor passado para o parâmetro causando problemas. |
Function
A função que o modelo chamou.
Nome | Tipo | Description |
---|---|---|
Argumentos | string | Os argumentos com os quais chamar a função, conforme gerado pelo modelo no formato JSON. Observe que o modelo nem sempre gera JSON válido e pode gerar parâmetros incorretos não definidos pelo seu esquema de função. Valide os argumentos em seu código antes de chamar sua função. |
nome | string | O nome da função a ser chamada. |
FunctionObject
Definição de uma função à qual o modelo tem acesso.
Nome | Tipo | Description |
---|---|---|
descrição | string | Uma descrição do que a função faz, usada pelo modelo para escolher quando e como chamar a função. |
nome | string | O nome da função a ser chamada. Deve ser a-z, A-Z, 0-9, ou conter sublinhados e traços, com um comprimento máximo de 64. |
parâmetros | objeto | Os parâmetros que as funções aceitam, descritos como um objeto de esquema JSON. Omitir parameters define uma função com uma lista de parâmetros vazia. |
NotFoundError
Nome | Tipo | Description |
---|---|---|
error | string | A descrição do erro. |
mensagem | string | A mensagem de erro. |
status | integer | O código de status HTTP. |
Tipo de ferramenta
O tipo da ferramenta. Atualmente, apenas function
é suportado.
Nome | Tipo | Descrição |
---|---|---|
function | string |
TooManyRequestsError
Nome | Tipo | Description |
---|---|---|
error | string | A descrição do erro. |
mensagem | string | A mensagem de erro. |
status | integer | O código de status HTTP. |
UnauthorizedError
Nome | Tipo | Description |
---|---|---|
error | string | A descrição do erro. |
mensagem | string | A mensagem de erro. |
status | integer | O código de status HTTP. |
UnprocessableContentError
A solicitação contém conteúdo não processável. O erro é devolvido quando a carga útil indicada é válida de acordo com esta especificação. No entanto, algumas das instruções indicadas na carga útil não são suportadas pelo modelo subjacente. Use a details
seção para entender o parâmetro ofensivo.
Nome | Tipo | Description |
---|---|---|
code | string | O código de erro. |
detalhe | Detalhe | |
error | string | A descrição do erro. |
mensagem | string | A mensagem de erro. |
status | integer | O código de status HTTP. |