Referência: Conclusões de Chat | Estúdio de IA do Azure

Importante

Os itens marcados (versão prévia) neste artigo estão atualmente em versão prévia pública. Essa versão prévia é fornecida sem um contrato de nível de serviço e não recomendamos isso para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

Cria uma resposta de modelo para a conversa de chat fornecida.

POST /chat/completions?api-version=2024-04-01-preview

Parâmetros de URI

Nome Em Obrigatório Type Descrição
api-version Consulta True string A versão da API no formato "YYYY-MM-DD" ou "YYYYY-MM-DD-preview".

Cabeçalho da solicitação

Nome Obrigatória Type Descrição
parâmetros extras string O comportamento da API quando os parâmetros extras são indicados no conteúdo. Usar pass-through faz com que a API passe o parâmetro para o modelo subjacente. Use esse valor quando quiser passar os parâmetros que você sabe que o modelo subjacente pode dar suporte. Usar ignore faz com que a API remova qualquer parâmetro sem suporte. Use esse valor quando precisar usar a mesma carga útil nos modelos diferentes, mas um dos parâmetros extras pode fazer com que um modelo apresente erro se não for compatível. Usar error faz com que a API rejeite qualquer parâmetro extra no conteúdo. Somente os parâmetros especificados nessa API podem ser indicados, caso contrário, será retornado um erro 400.
azureml-model-deployment string Nome da implantação para a qual você deseja rotear a solicitação. Compatível com pontos de extremidade que dão suporte a várias implantações.

Corpo da solicitação

Nome Obrigatória Type Descrição
modelo string O nome do modelo. Esse parâmetro será ignorado se o ponto de extremidade atender apenas a um modelo.
da nuvem para o dispositivo Verdadeiro ChatCompletionRequestMessage Uma lista de mensagens que resumem a conversa até agora. Retorna um erro 422 se pelo menos algumas das mensagens não puderem ser compreendidas pelo modelo.
frequency_penalty número Ajuda a evitar repetições de palavras reduzindo a chance de uma palavra ser selecionada se ela 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. Retornará um erro 422 se o valor ou o parâmetro não tiver suporte pelo modelo.
max_tokens Número inteiro O número máximo de tokens que podem ser gerados na conclusão.

O comprimento total dos tokens de entrada e dos tokens gerados é limitado pelo comprimento de contexto do modelo. Passar nulo faz com que o modelo use o tamanho máximo do contexto.
presence_penalty número Ajuda a impedir que os mesmos tópicos sejam repetidos penalizando uma palavra se ela já existir na conclusão, mesmo que apenas uma vez. Retorna um erro 422 se o valor ou o parâmetro não tiver suporte pelo modelo.
response_format ChatCompletionResponseFormat
seed Número inteiro Se especificado, nosso sistema fará o melhor esforço para amostrar de forma determinística, de modo que solicitações repetidas com os mesmos seed e os parâmetros retornem o mesmo resultado. O determinismo não é garantido e você deve consultar o parâmetro de resposta system_fingerprint para monitorar alterações no backend.
stop Sequências em que a API irá parar de gerar mais tokens.
fluxo boolean Se definido, deltas de mensagem parciais serão enviados. Se forem definidos, os tokens serão enviados como eventos somente de dados enviados pelo servidor à medida que estiverem disponíveis, com a transmissão sendo encerrada por uma mensagem data: [DONE].
temperatura número Número não-negativo. Retorna 422 se o valor não for suportado pelo modelo.
tool_choice ChatCompletionToolChoiceOption Controla qual função (se houver) é 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 determinada função por meio de {"type": "function", "function": {"name": "my_function"}} força o modelo a chamar essa função.

none é o padrão quando não há funções presentes. auto é o padrão, caso haja funções presentes. Retorna um erro 422 se a ferramenta não tiver suporte no modelo.
manuais ChatCompletionTool[] Uma lista de ferramentas que o modelo pode chamar. No momento, há suporte apenas para funções como uma 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 tiver suporte no modelo.
top_p número Uma alternativa à amostragem com temperatura, chamada de amostragem de núcleo, onde o modelo considera os resultados dos tokens com massa de probabilidade top_p. Portanto, 0,1 significa que apenas os tokens que compõem a massa de probabilidade de 10% do topo são considerados.

Geralmente recomendamos alterar isso ou temperature, mas não as duas coisas.

Respostas

Nome Tipo Descrição
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 compatível com o 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
429 Excesso de Solicitações TooManyRequestsError Você atingiu o limite de taxa que lhe foi atribuído e sua solicitação vai precisar aguardar.

Cabeçalhos

x-ms-error-code: cadeia de caracteres
Outros códigos de status ContentFilterError Solicitação incorreta

Cabeçalhos

x-ms-error-code: cadeia de caracteres

Segurança

Autorização

O token com o prefixo Bearer:, por exemplo, Bearer abcde12345

Digite: apiKey
Em: cabeçalho

Token do AAD

Autenticação OAuth2 do Azure Active Directory

Digite: oauth2
Fluxo: aplicativo
URL do Token: https://login.microsoftonline.com/common/oauth2/v2.0/token

Exemplos

Cria uma resposta de modelo para a conversa de chat fornecida

Solicitação de Exemplo

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" }
}

Resposta de exemplo

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 função (se houver) é 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 determinada função por meio de {"type": "function", "function": {"name": "my_function"}} força o modelo a chamar essa função.

none é o padrão quando não há funções presentes. auto é o padrão, caso haja funções presentes. Retorna um erro 422 se a ferramenta não tiver suporte no modelo.
ChatCompletionFinishReason O motivo pelo qual o modelo parou de gerar tokens. Ele será stop se o modelo atingiu 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 da resposta do modelo. A configuração para json_object habilita o modo JSON, que garante que a mensagem gerada pelo modelo seja um JSON válido. Ao usar o modo JSON, você também deve instruir o modelo para que ele mesmo produza o JSON por uma mensagem do sistema ou do usuário. Além disso, observe 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 do contexto.
ChatCompletionResponseFormatType O tipo de formato da resposta.
ChatCompletionResponseMessage Uma mensagem de conclusão de chat gerada pelo modelo.
ChatCompletionTool
ChatMessageRole A função do autor dessa mensagem.
Opções Uma lista de opções de conclusão de chat.
CompletionUsage Estatísticas de uso para a solicitação de preenchimento.
ContentFilterError A chamada à API falha quando o prompt dispara um filtro de conteúdo conforme configurado. Modifique o prompt e tente novamente.
CreateChatCompletionRequest
CreateChatCompletionResponse Representa uma resposta de conclusão de chat retornada pelo modelo, com base na entrada fornecida.
Detalhe Detalhes do UnprocessableContentError.
Função A função chamada pelo modelo.
FunctionObject Definição de uma função à qual o modelo tem acesso.
ImageDetail Especifica o nível de detalhes da imagem.
NotFoundError A rota não é válida para o modelo implantado.
ToolType O tipo da ferramenta. Atualmente, há suporte apenas para function.
TooManyRequestsError Você atingiu o limite de taxa atribuído e suas solicitações precisam ser aceleradas.
UnauthorizedError A autenticação não existe ou é inválida.
UnprocessableContentError A solicitação inclui conteúdo não processável O erro é retornado quando o conteúdo indicado é válido de acordo com essa especificação. No entanto, algumas das instruções indicadas no conteúdo não são compatíveis com o modelo subjacente. Use a seção details para entender o parâmetro ofensivo.

ChatCompletionFinishReason

O motivo pelo qual o modelo parou de gerar tokens. Ele será stop se o modelo atingiu 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 Descrição
content_filter string
length string
stop string
tool_calls string

ChatCompletionMessageToolCall

Nome Tipo Descrição
função Função A função chamada pelo modelo.
ID string A ID da chamada da ferramenta.
tipo ToolType O tipo da ferramenta. Atualmente, há suporte apenas para function.

ChatCompletionObject

O tipo de objeto, que é sempre chat.completion.

Nome Tipo Descrição
chat.completion string

ChatCompletionResponseFormat

O formato de resposta da resposta do modelo. A configuração para json_object habilita o modo JSON, que garante que a mensagem gerada pelo modelo seja um JSON válido. Ao usar o modo JSON, você também deve instruir o modelo para que ele mesmo produza o JSON por uma mensagem do sistema ou do usuário. Além disso, observe 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 do contexto.

Nome Tipo Descrição
tipo ChatCompletionResponseFormatType O tipo de formato da resposta.

ChatCompletionResponseFormatType

O tipo de formato da resposta.

Nome Tipo Descrição
json_object string
text string

ChatCompletionResponseMessage

Uma mensagem de conclusão de chat gerada pelo modelo.

Nome Tipo Descrição
conteúdo string O conteúdo da mensagem.
role ChatMessageRole A função do autor dessa mensagem.
tool_calls ChatCompletionMessageToolCall[] As chamadas de ferramenta geradas pelo modelo, como chamadas de função.

ChatCompletionTool

Nome Tipo Descrição
função FunctionObject
tipo ToolType O tipo da ferramenta. Atualmente, há suporte apenas para function.

ChatMessageRole

A função do autor dessa mensagem.

Nome Tipo Descrição
assistente string
sistema string
ferramenta string
usuário string

Opções

Uma lista de opções de conclusão de chat. Pode ser mais de um se n for maior que 1.

Nome Tipo Descrição
finish_reason ChatCompletionFinishReason O motivo pelo qual o modelo parou de gerar tokens. Ele será stop se o modelo atingiu 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.
índice Número inteiro O índice da escolha na lista de opções.
mensagem ChatCompletionResponseMessage Uma mensagem de conclusão de chat gerada pelo modelo.

CompletionUsage

Estatísticas de uso para a solicitação de preenchimento.

Nome Tipo Descrição
completion_tokens Número inteiro Número de tokens na conclusão gerada.
prompt_tokens Número inteiro Número de tokens no prompt.
total_tokens Número inteiro Número total de tokens utilizados na solicitação (prompt + conclusão).

ContentFilterError

A chamada à API falha quando o prompt dispara um filtro de conteúdo conforme configurado. Modifique o prompt e tente novamente.

Nome Tipo Descrição
code string O código de erro.
error string A descrição do erro.
message string A mensagem de erro.
param string O parâmetro que disparou o filtro de conteúdo.
status Número inteiro O código de status HTTP.

CreateChatCompletionRequest

Nome Type Valor padrão Descrição
frequency_penalty número 0 Ajuda a evitar repetições de palavras reduzindo a chance de uma palavra ser selecionada se ela 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. Retornará um erro 422 se o valor ou o parâmetro não tiver suporte pelo modelo.
max_tokens Número inteiro O número máximo de tokens que podem ser gerados na conclusão.

O comprimento total dos tokens de entrada e dos tokens gerados é limitado pelo comprimento de contexto do modelo. Passar nulo faz com que o modelo use o tamanho máximo do contexto.
da nuvem para o dispositivo ChatCompletionRequestMessage[] Uma lista de mensagens que resumem a conversa até agora. Retorna um erro 422 se pelo menos algumas das mensagens não puderem ser compreendidas pelo modelo.
presence_penalty número 0 Ajuda a impedir que os mesmos tópicos sejam repetidos penalizando uma palavra se ela já existir na conclusão, mesmo que apenas uma vez. Retorna um erro 422 se o valor ou o parâmetro não tiver suporte pelo modelo.
response_format ChatCompletionResponseFormat text
seed Número inteiro Se especificado, nosso sistema fará o melhor esforço para amostrar de forma determinística, de modo que solicitações repetidas com os mesmos seed e os parâmetros retornem o mesmo resultado. O determinismo não é garantido e você deve consultar o parâmetro de resposta system_fingerprint para monitorar alterações no backend.
stop Sequências em que a API irá parar de gerar mais tokens.
fluxo boolean Falso Se definido, deltas de mensagem parciais serão enviados. Se forem definidos, os tokens serão enviados como eventos somente de dados enviados pelo servidor à medida que estiverem disponíveis, com a transmissão sendo encerrada por uma mensagem data: [DONE].
temperatura número 1 Número não-negativo. Retorna 422 se o valor não for suportado pelo modelo.
tool_choice ChatCompletionToolChoiceOption Controla qual função (se houver) é 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 determinada função por meio de {"type": "function", "function": {"name": "my_function"}} força o modelo a chamar essa função.

none é o padrão quando não há funções presentes. auto é o padrão, caso haja funções presentes. Retorna um erro 422 se a ferramenta não tiver suporte no modelo.
manuais ChatCompletionTool[] Uma lista de ferramentas que o modelo pode chamar. No momento, há suporte apenas para funções como uma 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 tiver suporte no modelo.
top_p número 1 Uma alternativa à amostragem com temperatura, chamada de amostragem de núcleo, onde o modelo considera os resultados dos tokens com massa de probabilidade top_p. Portanto, 0,1 significa que apenas os tokens que compõem a massa de probabilidade de 10% do topo são considerados.

Geralmente recomendamos alterar isso ou temperature, mas não as duas coisas.

ChatCompletionRequestMessage

Nome Tipo Descrição
content cadeia de caracteres ou ChatCompletionMessageContentPart[] O conteúdo da mensagem.
role ChatMessageRole A função do autor dessa mensagem.
tool_calls ChatCompletionMessageToolCall[] As chamadas de ferramenta geradas pelo modelo, como chamadas de função.

ChatCompletionMessageContentPart

Nome Tipo Descrição
conteúdo string Uma URL da imagem ou os dados de imagem codificados em base64.
detail ImageDetail Especifica o nível de detalhes da imagem.
tipo ChatCompletionMessageContentPartType O tipo da parte de conteúdo.

ChatCompletionMessageContentPartType

Nome Tipo Descrição
text string
imagem string
image_url string

ChatCompletionToolChoiceOption

Controla qual ferramenta (se houver) é chamada pelo modelo.

Nome Tipo Descrição
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 determinada ferramenta por meio de {"type": "function", "function": {"name": "my_function"}} força o modelo a chamar essa ferramenta.

ImageDetail

Especifica o nível de detalhes da imagem.

Nome Tipo Descrição
auto string
low string
high string

CreateChatCompletionResponse

Representa uma resposta de conclusão de chat retornada pelo modelo, com base na entrada fornecida.

Nome Tipo Descrição
opções Choices[] Uma lista de opções de conclusão de chat. Pode ser mais de um se n for maior que 1.
criado Número inteiro O carimbo de data/hora do UNIX (em segundos) de quando o preenchimento foi criado.
ID string Identificador exclusivo para conclusão de 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 com o parâmetro seed solicitação para entender quando foram feitas alterações de backend que podem impactar o determinismo.
uso CompletionUsage Estatísticas de uso para a solicitação de preenchimento.

Detalhe

Detalhes do erro UnprocessableContentError.

Nome Tipo Descrição
loc string[] O parâmetro que está causando o problema
value string O valor transmitido para o parâmetro que está causando problemas.

Função

A função chamada pelo modelo.

Nome Tipo Descrição
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 fabricar parâmetros não definidos pelo esquema de função. Valide os argumentos em seu código antes de chamar sua função.
name string O nome da função a ser chamada.

FunctionObject

Definição de uma função à qual o modelo tem acesso.

Nome Tipo Descrição
descrição string Uma descrição do que a função faz, usada pelo modelo para escolher quando e como chamar a função.
name string O nome da função que 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 Descrição
error string A descrição do erro.
message string A mensagem de erro.
status Número inteiro O código de status HTTP.

ToolType

O tipo da ferramenta. Atualmente, há suporte apenas para function.

Nome Tipo Descrição
função string

TooManyRequestsError

Nome Tipo Descrição
error string A descrição do erro.
message string A mensagem de erro.
status Número inteiro O código de status HTTP.

UnauthorizedError

Nome Tipo Descrição
error string A descrição do erro.
message string A mensagem de erro.
status Número inteiro O código de status HTTP.

UnprocessableContentError

A solicitação inclui conteúdo não processável O erro é retornado quando o conteúdo indicado é válido de acordo com essa especificação. No entanto, algumas das instruções indicadas no conteúdo não são compatíveis com o modelo subjacente. Use a seção details para entender o parâmetro ofensivo.

Nome Tipo Descrição
code string O código de erro.
detalhes Detalhe
error string A descrição do erro.
message string A mensagem de erro.
status Número inteiro O código de status HTTP.