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. |