Compartilhar via


Referência da API REST de foundation model

Este artigo fornece informações gerais de API para APIs de modelo de base e os modelos aos quais elas dão suporte. As APIs do Modelo de Fundação foram projetadas de modo semelhante à API REST da OpenAI para facilitar a migração de projetos existentes. Os pontos de extremidade de pagamento por token e de taxa de transferência provisionada aceitam o mesmo formato de solicitação da API REST.

Pontos de extremidade

Cada modelo de pagamento por token tem apenas um ponto de extremidade. Os usuários podem interagir com esses pontos de extremidade usando solicitações HTTP POST. Os pontos de extremidade de taxa de transferência provisionados podem ser criados usando a API ou a interface do usuário de serviço. Esses pontos de extremidade também dão suporte para vários modelos por ponto de extremidade para testes A/B, desde que ambos os modelos fornecidos exponham o mesmo formato de API. Por exemplo, ambos os modelos são modelos de chat.

As solicitações e respostas usam JSON, e a estrutura exata do JSON depende do tipo de tarefa de um ponto de extremidade. Os pontos de extremidade de chats e de conclusão dão suporte para respostas de streaming.

Cargas de trabalho pagas por token dão suporte a determinados modelos. Consulte Modelos com suporte para pagamento por token para conhecer esses modelos e os formatos de API aceitos.

Uso

As respostas incluem uma submensagem usage que relata o número de tokens na solicitação e na resposta. O formato dessa submensagem é o mesmo em todos os tipos de tarefa.

Campo Type Descrição
completion_tokens Inteiro Número de tokens gerados. Não incluído nas respostas de inserção.
prompt_tokens Inteiro Número de tokens do(s) prompt(s) de entrada.
total_tokens Inteiro Número de tokens totais.

Para modelos como llama-2-70b-chat, um prompt do usuário é transformado usando um modelo de prompt antes de ser passado para o modelo. Para ponto de extremidades de pagamento por token, um prompt do sistema também pode ser adicionado. prompt_tokens inclui todo o texto adicionado pelo nosso servidor.

Tarefa de chats

As tarefas de chats são otimizadas para conversas com várias rodadas com um modelo. Cada solicitação descreve a conversa até o momento, em que o campo messages deve alternar entre as funções user e assistant, terminando com uma mensagem user. A resposta do modelo fornece a próxima mensagem assistant na conversa.

Solicitação de chats

Campo Padrão Digite Descrição
messages Lista ChatMessage Obrigatório. Uma lista de mensagens que representam a conversa atual.
max_tokens null null, o que significa nenhum limite ou um número inteiro maior que zero O número máximo de tokens a serem gerados.
stream true Booliano Transmite respostas de volta para um cliente para permitir resultados parciais para solicitações. Se esse parâmetro for incluído na solicitação, as respostas serão enviadas usando o padrão Eventos Enviados pelo Servidor.
temperature 1.0 Float em [0,2] A temperatura de amostragem. 0 é determinístico e valores mais altos apresentam mais aleatoriedade.
top_p 1.0 Float em (0,1] O limite de probabilidade usado para amostragem de núcleo.
top_k null null, o que significa nenhum limite ou um número inteiro maior que zero Define o número de tokens k mais prováveis a serem usados para filtragem top-k. Defina esse valor como 1 para tornar as saídas determinísticas.
stop [] Cadeia de caracteres ou List[String] O modelo para de gerar mais tokens quando qualquer uma das sequências em stop é encontrada.
n 1 Inteiro maior que zero A API retorna n preenchimentos de chat independentes quando n é especificado. Recomendado para cargas de trabalho que geram vários preenchimentos na mesma entrada para eficiência de inferência adicional e economia de custos. Disponível apenas para pontos de extremidade de taxa de transferência provisionada.
tool_choice none Cadeia de caracteres ou ToolChoiceObject Usado apenas em conjunto com o campo tools. tool_choice suporta uma variedade de strings de palavras-chave, como auto, required e none. auto significa que você está permitindo que o modelo decida qual ferramenta (se houver) é relevante para usar. Com auto se o modelo não acreditar que nenhuma das ferramentas em tools seja relevante, o modelo gera uma mensagem de assistente padrão em vez de uma chamada de ferramenta. required significa que o modelo escolhe a ferramenta mais relevante em tools e deve gerar uma chamada de ferramenta. none significa que o modelo não gera nenhuma chamada de ferramenta e, em vez disso, deve gerar uma mensagem de assistente padrão. Para forçar uma chamada de ferramenta com uma ferramenta específica definida em tools, use um ToolChoiceObject. Por padrão, se o campo tools estiver preenchido tool_choice = "auto". Caso contrário, o campo tools será padronizado como tool_choice = "none"
tools null ToolObject Uma lista de tools que o modelo pode chamar. Atualmente, function é o único tipo de tool com suporte e há suporte para no máximo de 32 funções.
response_format null ResponseFormatObject Um objeto que especifica o formato que o modelo deve gerar. Os tipos aceitos são text, json_schema ou json_object

A configuração para { "type": "json_schema", "json_schema": {...} } habilitar saídas estruturadas, o que garante que o modelo siga o esquema JSON fornecido.

A configuração como { "type": "json_object" } garante que as respostas geradas pelo modelo sejam JSON válidas, mas não garante que as respostas sigam um esquema específico.
logprobs false Booliano Esse parâmetro indica se a probabilidade logarítmica de uma amostragem de token ocorrer.
top_logprobs null Inteiro Esse parâmetro controla o número de candidatos a token mais prováveis para retornar probabilidades logarítmicas em cada etapa de amostragem. Ele pode estar entre 0 a 20. logprobs deve ser true se estiver usando este campo.

ChatMessage

Campo Type Descrição
role Cadeia de caracteres Obrigatório. A função do autor da mensagem. Pode ser "system", "user", "assistant" ou "tool".
content String O conteúdo da mensagem. Obrigatório para tarefas de chat que não envolvem chamadas de ferramentas.
tool_calls Lista ToolCall A lista de tool_calls que o modelo gerou. Deve ter role como "assistant" e nenhuma especificação para o campo de conteúdo content.
tool_call_id String Quando role é "tool", a ID associada a ToolCall ao qual a mensagem está respondendo. Deve estar vazio para outras opções de role.

A função system só pode ser usada uma vez, como a primeira mensagem em uma conversa. Ele substitui o prompt de sistema padrão do modelo.

ToolCall

Uma sugestão de ação de chamada de ferramenta pelo modelo. Consulte Chamada de função no Azure Databricks.

Campo Type Descrição
id Cadeia de caracteres Obrigatório. Um identificador exclusivo para essa sugestão de chamada de ferramenta.
type String Obrigatório. Apenas "function" tem suporte.
function FunctionCallCompletion Obrigatório. Uma chamada de função sugerida pelo modelo.

FunctionCallCompletion

Campo Type Descrição
name Cadeia de caracteres Obrigatória. O nome da função que o modelo recomendou.
arguments Objeto Obrigatória. Argumentos para a função como um dicionário JSON serializado.

ToolChoiceObject

Consulte Chamada de função no Azure Databricks.

Campo Type Descrição
type Cadeia de caracteres Obrigatório. O tipo da ferramenta. Atualmente, há suporte apenas para "function".
function Objeto Obrigatório. Um objeto que define qual ferramenta chamar no formato {"type": "function", "function": {"name": "my_function"}} em que "my_function é o nome de um FunctionObject no campo de tools.

ToolObject

Consulte Chamada de função no Azure Databricks.

Campo Type Descrição
type Cadeia de caracteres Obrigatório. O tipo da ferramenta. Atualmente, há suporte apenas para function.
function FunctionObject Obrigatório. A definição de função associada à ferramenta.

FunctionObject

Campo Type Descrição
name Cadeia de caracteres Obrigatório. O nome da função que será chamada.
description Objeto Obrigatório. A descrição detalhada da função. O modelo usa essa descrição para reconhecer a relevância da função para o prompt e gerar as chamadas de ferramenta com maior precisão.
parameters Objeto Os parâmetros que a função aceita, descritos como um objeto de esquema JSON válido. Se a ferramenta for chamada, a chamada de ferramenta será ajustada ao esquema JSON fornecido. A omissão de parâmetros define uma função sem parâmetros. O número de properties é limitado a 15 teclas.
strict Booliano Se deseja habilitar a adesão estrita do esquema ao gerar a chamada de função. Se definido como true, o modelo segue o esquema exato definido no campo de esquema. Há suporte apenas para um subconjunto do esquema JSON quando strict é true

ResponseFormatObject

Confira Saídas estruturadas no Azure Databricks.

Campo Type Descrição
type Cadeia de caracteres Obrigatório. O tipo de formato de resposta que está sendo definido. Para text texto não estruturado, json_object para objetos JSON não estruturados ou json_schema para objetos JSON que aderem a um esquema específico.
json_schema JsonSchemaObject Obrigatório. O esquema JSON a ser seguido por if type está definido como json_schema

JsonSchemaObject

Confira Saídas estruturadas no Azure Databricks.

Campo Type Descrição
name Cadeia de caracteres Obrigatório. O nome do formato de resposta.
description String Uma descrição do formato de resposta usado pelo modelo para determinar como responder no formato.
schema Objeto Obrigatório. O esquema para o formato de resposta, descrito como um objeto de esquema JSON.
strict Booliano Se deseja habilitar a adesão estrita do esquema ao gerar a saída. Se definido como true, o modelo segue o esquema exato definido no campo de esquema. Há suporte apenas para um subconjunto do esquema JSON quando strict é true

Resposta do chat

Para solicitações que não são de streaming, a resposta é um único objeto de conclusão de chat. Para solicitações de streaming, a resposta é um text/event-stream em que cada evento é um objeto de parte de conclusão. A estrutura de nível superior dos objetos de conclusão e parte é quase idêntica: somente choices tem um tipo diferente.

Campo Type Descrição
id Cadeia de caracteres Identificador exclusivo para conclusão de chat.
choices List[ChatCompletionChoice] ou List[ChatCompletionChunk] (streaming) Uma lista de textos de preenchimento de chat. n opções serão retornadas se o parâmetro n for especificado.
object String O tipo de objeto. Igual a "chat.completions" para não streaming ou "chat.completion.chunk" para streaming.
created Inteiro O tempo em que a conclusão do chat foi gerada, em segundos.
model String A versão do modelo usada para gerar a resposta.
usage Uso Metadados de uso de token. Pode não estar presente em respostas de streaming.

ChatCompletionChoice

Campo Type Descrição
index Inteiro O índice de escolha na lista de opções geradas.
message ChatMessage Uma mensagem de conclusão de chat retornada pelo modelo. A função será assistant.
finish_reason String O motivo pelo qual o modelo parou de gerar tokens.

ChatCompletionChunk

Campo Type Descrição
index Inteiro O índice de escolha na lista de opções geradas.
delta ChatMessage Uma parte da mensagem de conclusão de chat das respostas transmitidas geradas do modelo. Somente a primeira parte tem a garantia de ter role preenchido.
finish_reason String O motivo pelo qual o modelo parou de gerar tokens. Somente a última parte terá esse campo preenchido.

Tarefa de conclusão

As tarefas de conclusão de texto servem para gerar respostas a um único prompt. Ao contrário do Chat, essa tarefa tem suporte para entradas em lote: vários prompts independentes podem ser enviados em uma única solicitação.

Solicitação de conclusão

Campo Padrão Digite Descrição
prompt Cadeia de caracteres ou List[String] Obrigatório. O(s) prompt(s) do modelo.
max_tokens null null, o que significa nenhum limite ou um número inteiro maior que zero O número máximo de tokens a serem gerados.
stream true Booliano Transmite respostas de volta para um cliente para permitir resultados parciais para solicitações. Se esse parâmetro for incluído na solicitação, as respostas serão enviadas usando o padrão Eventos Enviados pelo Servidor.
temperature 1.0 Float em [0,2] A temperatura de amostragem. 0 é determinístico e valores mais altos apresentam mais aleatoriedade.
top_p 1.0 Float em (0,1] O limite de probabilidade usado para amostragem de núcleo.
top_k null null, o que significa nenhum limite ou um número inteiro maior que zero Define o número de tokens k mais prováveis a serem usados para filtragem top-k. Defina esse valor como 1 para tornar as saídas determinísticas.
error_behavior "error" "truncate" ou "error" Para tempos limite e erros de tamanho de contexto excedidos. Uma das opções: "truncate" (retorna o maior número possível de tokens) e "error" (retorna um erro). Esse parâmetro só é aceito por pontos de extremidade de pagamento por token.
n 1 Inteiro maior que zero A API retorna n preenchimentos de chat independentes quando n é especificado. Recomendado para cargas de trabalho que geram vários preenchimentos na mesma entrada para eficiência de inferência adicional e economia de custos. Disponível apenas para pontos de extremidade de taxa de transferência provisionada.
stop [] Cadeia de caracteres ou List[String] O modelo para de gerar mais tokens quando qualquer uma das sequências em stop é encontrada.
suffix "" String Uma cadeia de caracteres acrescentada ao final de cada conclusão.
echo false Boolean Retorna o prompt junto com a conclusão.
use_raw_prompt false Boolean Se true, passe o prompt diretamente para o modelo sem nenhuma transformação.

Resposta de conclusão

Campo Type Descrição
id Cadeia de caracteres Identificador exclusivo para conclusão de texto.
choices CompletionChoice Lista de preenchimentos de texto. Para cada prompt passado, n opções serão geradas se n for especificado. O n padrão é 1.
object String O tipo de objeto. Igual a "text_completion"
created Inteiro O tempo em que a conclusão foi gerada, em segundos.
usage Uso Metadados de uso de token.

CompletionChoice

Campo Type Descrição
index Inteiro O índice do prompt na solicitação.
text String A conclusão gerada.
finish_reason String O motivo pelo qual o modelo parou de gerar tokens.

Tarefa de inserção

As tarefas de inserção mapeiam as cadeias de caracteres de entrada nos vetores de inserção. Muitas entradas podem ser colocadas em lote em cada solicitação.

Solicitação de inserção

Campo Type Descrição
input Cadeia de caracteres ou List[String] Obrigatório. O texto de entrada a ser inserido. Pode ser uma cadeia de caracteres ou uma lista de cadeias de caracteres.
instruction String Uma instrução opcional a ser passada para o modelo de inserção.

As instruções são opcionais e altamente específicas para cada modelo. Por exemplo, os criadores do BGE não recomendam nenhuma instrução ao indexar divisões em partes e recomendam o uso da instrução "Represent this sentence for searching relevant passages:" para consultas de recuperação. Outros modelos, como o Instructor-XL, dão suporte para um amplo intervalo de cadeias de caracteres de instrução.

Resposta de inserções

Campo Type Descrição
id Cadeia de caracteres Identificador exclusivo da inserção.
object String O tipo de objeto. Igual a "list".
model String O nome do modelo de inserção usado para criar a inserção.
data EmbeddingObject O objeto de inserção.
usage Uso Metadados de uso de token.

EmbeddingObject

Campo Type Descrição
object Cadeia de caracteres O tipo de objeto. Igual a "embedding".
index Inteiro O índice da inserção na lista de inserções geradas pelo modelo.
embedding List[Float] O vetor de inserção. Cada modelo retornará um vetor de tamanho fixo (1024 para BGE-Large)

Recursos adicionais