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
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 para taxa de transferência provisionada podem ser criados usando a API ou a interface de utilização do 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 sobre a configuração do endpoint parameters.
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.
As cargas de trabalho de pagamento por token suportam certos modelos. Consulte Modelos suportados para pagamento por token para obter informações sobre os modelos e os formatos de API aceites.
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 llama-2-70b-chat
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 consulta ao endpoint parameters.
Pedido de chat
Campo | Padrão | Tipo | Descrição |
---|---|---|---|
messages |
list ChatMessage | Obrigatório. Um conjunto list de mensagens que representam a conversa atual. | |
max_tokens |
null |
null , o que significa ausência de limit, ou um número inteiro maior que zero |
O número máximo de tokens até generate. |
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 maior values introduz 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 limit, 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. Set esse valor para 1 para tornar os resultados determinísticos. |
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 generate 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 generate efetuar uma chamada de ferramenta.
none significa que o modelo não generate nenhuma chamada de ferramenta e, em vez disso, deve generate 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 | Um list 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, o que garante que o modelo siga o JSON fornecido schema.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 schemaespecí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 |
String | O conteúdo da mensagem. Obrigatório para tarefas de chat que não envolvam chamadas de ferramentas. |
tool_calls |
ToolCalllist | A list de tool_calls que o modelo gerou. Deve ter role como "assistant" e nenhuma especificação para o campo content . |
tool_call_id |
String | 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 |
Corda | 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 |
Corda |
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"}} where"my_function é o nome de um FunctionObject no campo tools . |
ToolObject
Consulte Chamada de função no Azure Databricks.
Campo | Tipo | Descrição |
---|---|---|
type |
String |
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 |
Corda / 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 generate as chamadas da ferramenta com maior precisão. |
parameters |
Objeto | A função aceita o parameters, descrito como um objeto JSON schema válido. Se a ferramenta for chamada, a chamada de ferramenta será adequada ao JSON schema fornecido. O facto de omitir parameters define uma função sem qualquer parameters. O número de properties é limitado a 15 chaves. |
strict |
Booleano | Se a adesão estrita ao schema deve ser ativada ao gerar a chamada de função. Se set a true , o modelo segue exatamente o schema definido no campo schema. Somente um subconjunto de JSON schema é suportado quando strict é true |
ResponseFormatObject
Consulte Saídas estruturadas no Azure Databricks.
Campo | Tipo | Descrição |
---|---|---|
type |
Corda |
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 schemaespecífico. |
json_schema |
JsonSchemaObject |
Obrigatório. O JSON schema a seguir se type for set até json_schema |
JsonSchemaObject
Consulte Saídas estruturadas no Azure Databricks.
Campo | Tipo | Descrição |
---|---|---|
name |
String | Obrigatório. O nome do formato de resposta. |
description |
String | Uma descrição do propósito do formato de resposta, utilizada pelo modelo para determinar como responder nesse formato. |
schema |
Objeto | Obrigatório. O schema para o formato de resposta, descrito como um objeto JSON schema. |
strict |
Booleano | Deve-se habilitar a adesão estrita schema ao gerar a saída? Se set a true , o modelo segue exatamente o schema definido no campo schema. Somente um subconjunto do JSON schema é 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
where, e 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 |
String | Único identifier para a conclusão do chat. |
choices |
List[ChatCompletionChoice] ou List[ChatCompletionChunk] (transmissão) |
List de textos de conclusão de chat.
n opções são retornadas se o parâmetro n for especificado. |
object |
String | 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 |
String | A versão do modelo usada para generate 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 no list de escolhas geradas. |
message |
ChatMessage | 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 | Descrição |
---|---|---|
index |
Inteiro | O índice da escolha no list de escolhas 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 |
String | 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. Veja POST /serving-endpoints/{name}/invocations para consultar o endpoint parameters.
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 limit, ou um número inteiro maior que zero |
O número máximo de tokens para generate. |
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 |
Flutuar em [0,2] | A temperatura de amostragem. 0 é determinístico e maior values introduz 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 limit, ou um número inteiro maior que zero |
Define o número de tokens k mais prováveis usados na filtragem top-k. Set esse valor para 1 para tornar os resultados determinísticos. |
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 generate várias finalizações na mesma entrada para eficiência de inferência adicional e economia de custos. Apenas disponível para pontos de extremidade de taxa de transferência provisionada. |
stop |
[] | String 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 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 | Exclusivo identifier para a conclusão do texto. |
choices |
Escolha de Conclusão | Uma list de finalizações de texto. Para cada prompt fornecido, n escolhas são geradas se n estiver especificado. O n padrão é 1. |
object |
Corda | 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 |
String | A conclusão gerada. |
finish_reason |
Corda | 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 fazer a consulta do endpoint parameters.
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 um list 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 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 |
String | Identificador único identifier para a integração. |
object |
Cadeia | 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 | Descrição |
---|---|---|
object |
String | O tipo de objeto. Igual a "embedding" . |
index |
Inteiro | O índice da incorporação na list de incorporações geradas pelo modelo. |
embedding |
List[Flutuar] | 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