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 o pagamento por token quanto os pontos de extremidade de taxa de transferência provisionados aceitam o mesmo formato de solicitação de API REST.
Parâmetros de avaliação
Cada modelo de pagamento por token tem um único ponto de extremidade, e 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 oferecem suporte a vários modelos por ponto de extremidade para testes A/B, desde que ambos os 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 usam JSON, a estrutura JSON exata depende do tipo de tarefa de um ponto de extremidade. Os endpoints de bate-papo e conclusão suportam respostas de streaming.
As cargas de trabalho de pagamento por token suportam determinados modelos, consulte Modelos suportados para pagamento por token para esses modelos e formatos de API aceitos.
Utilização
As respostas incluem uma usage
submensagem 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 | Description |
---|---|---|
completion_tokens |
Número inteiro | Número de tokens gerados. Não incluído nas respostas incorporadas. |
prompt_tokens |
Número inteiro | Número de tokens do(s) prompt(s) de entrada. |
total_tokens |
Número inteiro | Número total de tokens. |
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 pontos de extremidade pay-per-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. Cada solicitação descreve a conversa até agora, onde o messages
campo deve alternar entre user
e assistant
funções, terminando com uma user
mensagem. A resposta do modelo fornece a próxima assistant
mensagem na conversa. Consulte POST /serving-endpoints/{name}/invocations para consultar os parâmetros do endpoint.
Pedido de chat
Campo | Predefinido | Tipo | Description |
---|---|---|---|
messages |
Lista de ChatMessage | Necessá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 superior a zero |
O número máximo de tokens a serem gerados. |
stream |
true |
Boolean | 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 padrão de eventos enviados pelo servidor. |
temperature |
1.0 |
Flutuar 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 superior a 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 é stop encontrada. |
n |
1 | Inteiro maior que zero | A API retorna n conclusões de bate-papo independentes quando n é especificada. 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 tools campo.
tool_choice suporta uma variedade de cadeias de palavras-chave, como auto , required e none .
auto significa que você está deixando o modelo decidir qual (se houver) ferramenta é relevante usar. Se auto o modelo não acredita que nenhuma das ferramentas em tools são relevantes, 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 e tools 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 a chamada de uma ferramenta específica definida em tools , utilize um ToolChoiceObject . Por padrão, se o campo estiver preenchido tools tool_choice = "auto" . Caso contrário, o tools campo assume como padrão tool_choice = "none" |
tools |
null |
ObjetoFerramenta | Uma lista do tools que o modelo pode chamar. Atualmente, function é o único tipo suportado tool e um máximo de 32 funções são suportadas. |
response_format |
null |
ResponseFormatObject | Um objeto que especifica o formato que o modelo deve produzir. Os tipos aceites são text , json_schema ou json_object Configuração para { "type": "json_schema", "json_schema": {...} } permitir saídas estruturadas que garantem que o modelo siga o esquema JSON fornecido.A configuração para { "type": "json_object" } garantir que as respostas geradas pelo modelo sejam JSON válidas, mas não garante que as respostas sigam um esquema específico. |
logprobs |
false |
Boolean | Este parâmetro indica se deve fornecer a probabilidade de log de um token ser amostrado. |
top_logprobs |
null |
Número inteiro | Este parâmetro controla o número de candidatos de token mais prováveis para retornar probabilidades de log para cada etapa de amostragem. Pode ser 0-20.
logprobs deve ser true se usar este campo. |
ChatMessage
Campo | Tipo | Description |
---|---|---|
role |
String |
Necessário. O papel do autor da mensagem. Pode ser "system" , "user" "assistant" , ou "tool" . |
content |
String | O conteúdo da mensagem. Necessário para tarefas de chat que não envolvem chamadas de ferramentas. |
tool_calls |
Lista ToolCall | A lista do tool_calls que o modelo gerou. Deve ter role como "assistant" e nenhuma especificação para o content campo. |
tool_call_id |
String | Quando role é "tool" , o ID associado ao ToolCall qual a mensagem está respondendo. Deve estar vazio para outras role opções. |
A system
função 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 de chamada de ferramenta pelo modelo. Consulte Chamada de função no Azure Databricks.
Campo | Tipo | Description |
---|---|---|
id |
String | Necessário. Um identificador exclusivo para esta sugestão de chamada de ferramenta. |
type |
String |
Necessário. Só o "function" é suportado. |
function |
FunctionCallCompletion | Necessário. Uma chamada de função sugerida pelo modelo. |
FunctionCallCompletion
Campo | Tipo | Description |
---|---|---|
name |
String | Obrigatório. O nome da função recomendada pelo modelo. |
arguments |
Object | Obrigatório. Argumentos para a função como um dicionário JSON serializado. |
ToolChoiceObject
Consulte Chamada de função no Azure Databricks.
Campo | Tipo | Description |
---|---|---|
type |
String |
Necessário. O tipo da ferramenta. Atualmente, apenas "function" é suportado. |
function |
Object |
Necessá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 tools campo. |
ToolObject
Consulte Chamada de função no Azure Databricks.
Campo | Tipo | Description |
---|---|---|
type |
String |
Necessário. O tipo da ferramenta. Atualmente, apenas function é suportado. |
function |
FunctionObject | Necessário. A definição de função associada à ferramenta. |
FunctionObject
Campo | Tipo | Description |
---|---|---|
name |
String | Necessário. O nome da função a ser chamada. |
description |
Object | Necessá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 |
Object | 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. Omitir parâmetros define uma função sem quaisquer parâmetros. O número de properties é limitado a 15 chaves. |
strict |
Boolean | 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 | Description |
---|---|---|
type |
String |
Necessá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 aderentes a um esquema específico. |
json_schema |
JsonSchemaObject |
Necessário. O esquema JSON ao qual aderir se type está definido como json_schema |
JsonSchemaObject
Consulte Saídas estruturadas no Azure Databricks.
Campo | Tipo | Description |
---|---|---|
name |
String | Necessá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 |
Object | Necessário. O esquema para o formato de resposta, descrito como um objeto de esquema JSON. |
strict |
Boolean | 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 é uma 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: só choices
tem um tipo diferente.
Campo | Tipo | Description |
---|---|---|
id |
String | Identificador exclusivo para a conclusão do chat. |
choices |
List[ChatCompletionChoice] ou List[ChatCompletionChunk] (streaming) | Lista de textos de conclusão de chat.
n As opções são retornadas se o n parâmetro for especificado. |
object |
String | O tipo de objeto. Igual a não "chat.completions" streaming ou "chat.completion.chunk" para streaming. |
created |
Número inteiro | O tempo de conclusão do chat foi gerado em segundos. |
model |
String | 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 | Description |
---|---|---|
index |
Número inteiro | O índice da escolha na lista de opções geradas. |
message |
ChatMensagem | Uma mensagem de conclusão de chat retornada pelo modelo. O papel será assistant . |
finish_reason |
String | A razão pela qual o modelo parou de gerar tokens. |
ChatCompletionChunk
Campo | Tipo | Description |
---|---|---|
index |
Número inteiro | O índice da escolha na lista de opções geradas. |
delta |
ChatMensagem | Uma mensagem de conclusão de bate-papo faz parte das respostas transmitidas geradas pelo modelo. Apenas o primeiro pedaço é garantido ter role preenchido. |
finish_reason |
String | A razão pela qual o modelo parou de gerar tokens. Apenas o último pedaço terá isso preenchido. |
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 verificar os parâmetros do ponto de extremidade.
Pedido de conclusão
Campo | Predefinido | Tipo | Description |
---|---|---|---|
prompt |
String ou List[String] | Necessário. As sugestões para o modelo. | |
max_tokens |
null |
null , o que significa ausência de limite, ou um número inteiro superior a zero |
O número máximo de tokens a serem gerados. |
stream |
true |
Boolean | 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 padrão de eventos enviados pelo servidor. |
temperature |
1.0 |
Flutuar 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 superior a 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 limite e erros de comprimento de contexto excedido. Um dos: "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 conclusões de bate-papo independentes quando n é especificada. 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 é stop encontrada. |
suffix |
"" |
String | Uma cadeia de caracteres que é 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 qualquer transformação. |
Resposta de conclusão
Campo | Tipo | Description |
---|---|---|
id |
String | Identificador exclusivo para a conclusão do texto. |
choices |
ConclusãoEscolha | Uma lista de finalizações de texto. Para cada prompt passado, n as opções são geradas se n for especificado. O padrão n é 1. |
object |
String | O tipo de objeto. Igual a "text_completion" |
created |
Número inteiro | O tempo em que a conclusão foi gerada em segundos. |
usage |
Utilização | Metadados de uso de token. |
CompletionChoice
Campo | Tipo | Description |
---|---|---|
index |
Número inteiro | O índice do prompt na solicitação. |
text |
String | A conclusão gerada. |
finish_reason |
String | 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 parâmetros de ponto de extremidade.
Pedido de incorporação
Campo | Tipo | Description |
---|---|---|
input |
String ou List[String] | Necessário. O texto de entrada a ser incorporado. Pode ser uma cadeia de caracteres ou uma lista de cadeias de caracteres. |
instruction |
String | 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 não recomendam 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 o Instructor-XL suportam uma ampla gama de cadeias de instruções.
Incorpora resposta
Campo | Tipo | Description |
---|---|---|
id |
String | Identificador exclusivo para a incorporação. |
object |
String | O tipo de objeto. Igual a "list" . |
model |
String | 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 | Description |
---|---|---|
object |
String | O tipo de objeto. Igual a "embedding" . |
index |
Número 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) |