Referência da API REST do modelo de base
Este artigo fornece informações gerais de API para APIs do Databricks Foundation Model e os modelos suportados. As APIs do Foundation Model são projetadas para serem semelhantes à API REST da OpenAI para facilitar a migração de projetos existentes. Tanto a cobrança por token quanto os pontos de extremidade provisionados aceitam o mesmo formato de solicitação de API REST.
Pontos de extremidade
As APIs do Modelo de Base suportam interfaces de pagamento por uso de token e interfaces de largura de banda provisionada.
Um ponto de extremidade pré-configurado está disponível em seu espaço de trabalho para cada modelo suportado de pagamento por token, e os usuários podem interagir com esses pontos de extremidade usando solicitações HTTP POST. Consulte a secção Pagamento por token para obter os modelos suportados.
Os pontos de extremidade para taxa de transferência provisionada podem ser criados usando a API ou a interface de utilização do serviço. Esses endpoints suportam múltiplos modelos por endereço para testes A/B, desde que os dois modelos servidos exponham o mesmo formato de API. Por exemplo, ambos os modelos são modelos de chat. Consulte POST /api/2.0/serving-endpoints para obter os parâmetros de configuração do ponto final.
Solicitações e respostas utilizam JSON, e a estrutura exata do JSON depende do tipo de tarefa do endpoint. Os endpoints de bate-papo e conclusão suportam respostas em fluxo contínuo.
Utilização
As respostas incluem uma submensagem usage
que informa o número de tokens na solicitação e na resposta. O formato desta submensagem é o mesmo em todos os tipos de tarefas.
Campo | Tipo | Descrição |
---|---|---|
completion_tokens |
Inteiro | Número de tokens gerados. Não incluído nas respostas incorporadas. |
prompt_tokens |
Inteiro | Número de tokens dos prompts de entrada. |
total_tokens |
Inteiro | Número total de tokens. |
Para modelos como Meta-Llama-3.3-70B-Instruct
um prompt do usuário é transformado usando um modelo de prompt antes de ser passado para o modelo. Para endpoints cobrados por token, um prompt do sistema também pode ser adicionado.
prompt_tokens
inclui todo o texto adicionado pelo nosso servidor.
tarefa de bate-papo
As tarefas de bate-papo são otimizadas para conversas em vários turnos com um modelo. A resposta do modelo fornece a próxima mensagem assistant
na conversa. Consulte POST /serving-endpoints/{name}/invocations para consultar os parâmetros do ponto de extremidade.
Pedido de chat
Campo | Padrão | Tipo | Descrição |
---|---|---|---|
messages |
ChatMessage lista | Obrigatório. Uma lista de mensagens que representam a conversa atual. | |
max_tokens |
null |
null , o que significa ausência de limite, ou um número inteiro maior que zero |
O número máximo de tokens a serem gerados. |
stream |
true |
Booleano | Transmita 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 eventos enviados pelo servidor padrão. |
temperature |
1.0 |
Valor flutuante em [0,2] | A temperatura de amostragem. 0 é determinístico e valores mais altos introduzem mais aleatoriedade. |
top_p |
1.0 |
Flutuar em (0,1) | O limiar de probabilidade utilizado para a amostragem do núcleo. |
top_k |
null |
null , o que significa ausência de limite, ou um número inteiro maior que zero |
Define o número de k tokens mais prováveis a serem usados para filtragem top-k. Defina esse valor como 1 para tornar as saídas determinísticas. |
stop |
[] | String 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 conclusões de bate-papo independentes quando n é especificado. Recomendado para cargas de trabalho que geram várias finalizações 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 provisionados. |
tool_choice |
none |
String ou ToolChoiceObject | Usado apenas em conjunto com o campo tools .
tool_choice suporta uma variedade de cadeias de caracteres de palavras-chave, como auto , required e none .
auto significa que você está deixando o modelo decidir qual (se houver) ferramenta é relevante usar. Com auto se o modelo não acredita 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 assume como padrão tool_choice = "none" |
tools |
null |
ObjetoDeFerramenta | Uma lista de tools que o modelo pode chamar. Atualmente, function é o único tipo de tool suportado e um máximo de 32 funções são suportadas. |
response_format |
null |
ObjetoDeFormatoDeResposta | Um objeto que especifica o formato que o modelo deve produzir. Os tipos aceites são text , json_schema ou json_object A configuração como { "type": "json_schema", "json_schema": {...} } permite saídas estruturadas que garantem 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 |
Booleano | Este parâmetro indica se deve fornecer a probabilidade em log de um token ser selecionado. |
top_logprobs |
null |
Inteiro | Este parâmetro controla o número de candidatos a token mais prováveis para os quais se devem retornar as probabilidades logarítmicas em cada etapa de amostragem. Pode ser 0-20.
logprobs deve ser true se utilizar este campo. |
ChatMessage
Campo | Tipo | Descrição |
---|---|---|
role |
Cadeia |
Obrigatório. O papel do autor da mensagem. Pode ser "system" , "user" , "assistant" ou "tool" . |
content |
Cadeia | O conteúdo da mensagem. Obrigatório para tarefas de chat que não envolvam 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 content . |
tool_call_id |
Cadeia | Quando role é "tool" , o ID associado ao ToolCall a que a mensagem responde. Deve estar vazio para outras opções role . |
A função system
só pode ser usada uma vez, como a primeira mensagem de uma conversa. Ele substitui o prompt de sistema padrão do modelo.
ToolCall
Uma sugestão de ação para chamada de ferramenta pelo modelo. Consulte Chamada de função no Azure Databricks.
FunctionCallCompletion
Campo | Tipo | Descrição |
---|---|---|
name |
Cadeia | Necessário. O nome da função recomendada pelo modelo. |
arguments |
Objeto | Necessário. Argumentos para a função como um dicionário JSON serializado. |
ToolChoiceObject
Consulte Chamada de função no Azure Databricks.
Campo | Tipo | Descrição |
---|---|---|
type |
Cadeia |
Obrigatório. O tipo da ferramenta. Atualmente, apenas "function" é suportado. |
function |
Objeto |
Obrigatório. Um objeto que define qual ferramenta chamar do formulário {"type": "function", "function": {"name": "my_function"}} onde "my_function é o nome de um FunctionObject no campo tools . |
ToolObject
Consulte Chamada de função no Azure Databricks.
Campo | Tipo | Descrição |
---|---|---|
type |
Cadeia |
Obrigatório. O tipo da ferramenta. Atualmente, apenas function é suportado. |
function |
FunctionObject | Obrigatório. A definição de função associada à ferramenta. |
FunctionObject
Campo | Tipo | Descrição |
---|---|---|
name |
Cadeia | Obrigatório. O nome da função a ser chamada. |
description |
Objeto | Obrigatório. A descrição detalhada da função. O modelo usa essa descrição para entender a relevância da função para o prompt e gerar as chamadas da ferramenta com maior precisão. |
parameters |
Objeto | Os parâmetros que a função aceita, descritos como um esquema JSON válido objeto. Se a ferramenta for chamada, a chamada de ferramenta será ajustada ao esquema JSON fornecido. Omitir parâmetros define uma função sem quaisquer parâmetros. O número de properties é limitado a 15 chaves. |
strict |
Booleano | Se a adesão estrita ao esquema deve ser ativada ao gerar a chamada de função. Se definido como true , o modelo segue o esquema exato definido no campo de esquema. Somente um subconjunto do esquema JSON é suportado quando strict é true |
ResponseFormatObject
Consulte Saídas estruturadas no Azure Databricks.
Campo | Tipo | Descrição |
---|---|---|
type |
Cadeia |
Obrigatório. O tipo de formato de resposta que está sendo definido.
text para texto não estruturado, json_object para objetos JSON não estruturados ou json_schema para objetos JSON aderentes a um esquema específico. |
json_schema |
JsonSchemaObject |
Obrigatório. O esquema JSON a ser aderido se type estiver definido como json_schema |
JsonSchemaObject
Consulte Saídas estruturadas no Azure Databricks.
Campo | Tipo | Descrição |
---|---|---|
name |
Cadeia | Obrigatório. O nome do formato de resposta. |
description |
Cadeia | Uma descrição do propósito do formato de resposta, utilizada pelo modelo para determinar como responder nesse formato. |
schema |
Objeto | Obrigatório. O esquema para o formato de resposta, descrito como um objeto de esquema JSON. |
strict |
Booleano | Se a adesão estrita ao esquema deve ser habilitada ao gerar a saída. Se definido como true , o modelo segue o esquema exato definido no campo de esquema. Somente um subconjunto do esquema JSON é suportado 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 bloco de conclusão. A estrutura de nível superior de conclusão e fragmentação de objetos é quase idêntica: apenas choices
tem um tipo diferente.
Campo | Tipo | Descrição |
---|---|---|
id |
Cadeia | Identificador exclusivo para a conclusão do chat. |
choices |
List[ChatCompletionChoice] ou List[ChatCompletionChunk] (streaming) | Lista de textos de conclusão de chat.
n opções são retornadas se o parâmetro n for especificado. |
object |
Cadeia | O tipo de objeto. Igual a "chat.completions" para não-transmissão ou "chat.completion.chunk" para transmissão. |
created |
Inteiro | O tempo de conclusão do chat foi gerado em segundos. |
model |
Cadeia | A versão do modelo usada para gerar a resposta. |
usage |
Utilização | Metadados de uso de token. Pode não estar presente nas respostas de streaming. |
ChatCompletionChoice
Campo | Tipo | Descrição |
---|---|---|
index |
Inteiro | O índice da escolha na lista de opções geradas. |
message |
ChatMessage | Uma mensagem de conclusão de chat retornada pelo modelo. O papel será assistant . |
finish_reason |
Cadeia | A razão pela qual o modelo parou de gerar tokens. |
ChatCompletionChunk
Campo | Tipo | Descrição |
---|---|---|
index |
Inteiro | O índice da escolha na lista de opções geradas. |
delta |
ChatMessage | Uma mensagem de conclusão de bate-papo faz parte das respostas transmitidas geradas pelo modelo. Apenas o primeiro pedaço tem a garantia de ter role preenchido. |
finish_reason |
Cadeia | A razão pela qual o modelo parou de gerar tokens. Apenas o último bloco terá estes dados preenchidos. |
Tarefa de conclusão
As tarefas de conclusão de texto são para gerar respostas a um único prompt. Ao contrário do Chat, esta tarefa suporta entradas em lote: vários prompts independentes podem ser enviados em uma solicitação. Consulte POST /serving-endpoints/{name}/invocations para consultar os parâmetros do ponto de extremidade.
Pedido de conclusão
Campo | Padrão | Tipo | Descrição |
---|---|---|---|
prompt |
String ou List[String] | Obrigatório. As sugestões para o modelo. | |
max_tokens |
null |
null , o que significa ausência de limite, ou um número inteiro maior que zero |
O número máximo de tokens a serem gerados. |
stream |
true |
Booleano | Transmita 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 eventos enviados pelo servidor padrão. |
temperature |
1.0 |
Valor flutuante em [0,2] | A temperatura de amostragem. 0 é determinístico e valores mais altos introduzem mais aleatoriedade. |
top_p |
1.0 |
Flutuar em (0,1) | O limiar de probabilidade utilizado para a amostragem do núcleo. |
top_k |
null |
null , o que significa ausência de limite, ou um número inteiro maior que zero |
Define o número de k tokens 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 de espera e erros de comprimento de contexto excedido. Um de: "truncate" (retornar o maior número possível de tokens) e "error" (retornar um erro). Esse parâmetro só é aceite por endpoints de pagamento por token. |
n |
1 | Inteiro maior que zero | A API retorna n conclusões de bate-papo independentes quando n é especificado. Recomendado para cargas de trabalho que geram várias finalizações 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 provisionados. |
stop |
[] | String ou List[String] | O modelo para de gerar mais tokens quando qualquer uma das sequências em stop é encontrada. |
suffix |
"" |
Cadeia | Uma cadeia de caracteres que é acrescentada ao final de cada conclusão. |
echo |
false |
Booleano | Retorna o comando juntamente com a conclusão. |
use_raw_prompt |
false |
Booleano | Se true , passe o prompt diretamente para o modelo, sem qualquer transformação. |
Resposta de conclusão
Campo | Tipo | Descrição |
---|---|---|
id |
Cadeia | Identificador exclusivo para completar o texto. |
choices |
Escolha de Conclusão | Uma lista de finalizações de texto. Para cada prompt fornecido, n escolhas são geradas se n estiver especificado. O n padrão é 1. |
object |
Cadeia | O tipo de objeto. Igual a "text_completion" |
created |
Inteiro | O tempo em que a conclusão foi gerada em segundos. |
usage |
Utilização | Metadados de uso de token. |
CompletionChoice
Campo | Tipo | Descrição |
---|---|---|
index |
Inteiro | O índice do prompt na solicitação. |
text |
Cadeia | A conclusão gerada. |
finish_reason |
Cadeia | A razão pela qual o modelo parou de gerar tokens. |
Tarefa de incorporação
As tarefas de incorporação mapeiam cadeias de caracteres de entrada em vetores de incorporação. Muitas entradas podem ser agrupadas em lote em cada solicitação. Consulte POST /serving-endpoints/{name}/invocations para consultar os parâmetros do ponto de extremidade.
Pedido de incorporação
Campo | Tipo | Descrição |
---|---|---|
input |
String ou List[String] | Obrigatório. O texto de entrada a ser incorporado. Pode ser uma cadeia de caracteres ou uma lista de cadeias de caracteres. |
instruction |
Cadeia | Uma instrução opcional para passar para o modelo de incorporação. |
As instruções são opcionais e altamente específicas do modelo. Por exemplo, os autores do BGE recomendam não dar nenhuma instrução ao indexar blocos e recomendam o uso da instrução "Represent this sentence for searching relevant passages:"
para consultas de recuperação. Outros modelos como Instructor-XL suportam uma ampla gama de cadeias de instruções.
Incorpora resposta
Campo | Tipo | Descrição |
---|---|---|
id |
Cadeia | Identificador único para a incorporação. |
object |
Cadeia | O tipo de objeto. Igual a "list" . |
model |
Cadeia | O nome do modelo de incorporação usado para criar a incorporação. |
data |
EmbeddingObject | O objeto de incorporação. |
usage |
Utilização | Metadados de uso de token. |
EmbeddingObject
Campo | Tipo | Descrição |
---|---|---|
object |
Cadeia | O tipo de objeto. Igual a "embedding" . |
index |
Inteiro | O índice da incorporação na lista de incorporações geradas pelo modelo. |
embedding |
Lista(Float) | O vetor de incorporação. Cada modelo retornará um vetor de tamanho fixo (1024 para BGE-Large) |
Recursos adicionais
Modelos suportados para de pagamento por token