Pular para o conteúdo principal

Referência da API REST do modelo básico

Este artigo fornece API informações gerais sobre Databricks o Foundation Model APIs e os modelos que ele suporta. As APIs do Foundation Model foram projetadas para serem semelhantes à API REST da OpenAI para facilitar a migração de projetos existentes. Tanto o endpoint de pagamento por tokens quanto o de provisionamento aceitam o mesmo formato de solicitação REST API .

ponto final

O Foundation Model APIs oferece suporte ao endpoint pay-per-tokens e ao endpoint de provisionamento da Taxa de transferência.

Um endpoint pré-configurado está disponível em seu workspace para cada modelo compatível com pay-per-tokens, e os usuários podem interagir com esse endpoint usando solicitações HTTP POST. Consulte Pay-per-tokens para ver os modelos compatíveis.

provisionamento O ponto de extremidade da taxa de transferência pode ser criado usando o site API ou a UI de serviço. Esses endpoints suportam vários modelos por endpoint para testes A/B, desde que ambos os modelos atendidos exponham o mesmo formato API. Por exemplo, os dois modelos são modelos de bate-papo. Consulte POST /api/2.0/serving-endpoint para os parâmetros de configuração do endpoint.

As solicitações e respostas usam JSON, e a estrutura exata do JSON depende do tipo de tarefa de um endpoint. O chat e o endpoint de conclusão suportam respostas de transmissão.

Uso

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

campoTipoDescrição
completion_tokensIntegerNúmero de tokens gerados. Não incluído na incorporação de respostas.
prompt_tokensIntegerNúmero de tokens do(s) prompt(s) de entrada.
total_tokensIntegerNúmero total de tokens.

Para modelos como Meta-Llama-3.3-70B-Instruct, um prompt do usuário é transformado usando um padrão de prompt antes de ser passado para o modelo. Para o endpoint pay-per-tokens, um prompt do sistema também pode ser adicionado. prompt_tokens inclui todo o texto adicionado pelo nosso servidor.

Chat tarefa

As tarefas de bate-papo são otimizadas para conversas de várias voltas com um modelo. A resposta do modelo fornece a próxima mensagem assistant na conversa. Consulte POST /serving-endpoint/{name}/invocations para consultar os parâmetros de endpoint.

Solicitação de bate-papo

campoPadrãoTipoDescrição
messagesLista de mensagens de bate-papoObrigatório . Uma lista de mensagens representando a conversa atual.
max_tokensnullnull, o que significa que não há limite ou um número inteiro maior que zeroO número máximo de tokens a serem gerados.
streamtrueBooleanatransmite 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.
temperature1.0Flutuar em [0,2]A temperatura de amostragem. 0 é determinístico e valores mais altos introduzem mais aleatoriedade.
top_p1.0Flutuar em (0,1]O limite de probabilidade usado para a amostragem do núcleo.
top_knullnull, o que significa que não há limite ou um número inteiro maior que zeroDefine o número de k tokens mais prováveis a serem usados na filtragem top-k. Defina esse valor como 1 para tornar as saídas determinísticas.
stop[]strings ou List[strings]O modelo para de gerar mais tokens quando qualquer uma das sequências em stop é encontrada.
n1Número inteiro maior que zeroA API retorna n conclusões de bate-papo independentes quando n é especificado. Recomendado para cargas de trabalho que geram várias conclusões na mesma entrada para maior eficiência de inferência e economia de custos. Disponível apenas para o endpoint de provisionamento Taxa de transferência.
tool_choicenonestrings ou ToolChoiceObjectUsado somente em conjunto com o campo tools. tool_choice suporta uma variedade de palavras-chave strings, como auto, required e none. auto significa que você está deixando o modelo decidir qual ferramenta (se houver) é relevante 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 ToolChoiceObject. Em default, se o campo tools estiver preenchido tool_choice = "auto". Caso contrário, o campo tools terá como padrão tool_choice = "none"
toolsnullObjeto de ferramentaUma lista de tools que o modelo pode chamar. Atualmente, function é o único tipo tool suportado e um máximo de 32 funções são suportadas.
response_formatnullObjeto de formato de respostaUm objeto especificando o formato que o modelo deve gerar. Os tipos aceitos 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. Definir 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.
logprobsfalseBooleanaEsse parâmetro indica se o senhor deve fornecer a log probabilidade de um token ser amostrado.
top_logprobsnullIntegerEsse parâmetro controla o número de candidatos a tokens mais prováveis para retornar log probabilidades em cada etapa de amostragem. Pode ser de 0 a 20. logprobs deve ser true se estiver usando esse campo.

ChatMessage

campoTipoDescrição
roleStringObrigatório . O papel do autor da mensagem. Pode ser "system", "user", "assistant" ou "tool".
contentStringO conteúdo da mensagem. Necessário para tarefas de chat que não envolvam chamadas de ferramentas.
tool_callsLista de ToolCallA lista de tool_calls que o modelo gerou. Deve ter role como "assistant" e nenhuma especificação para o campo content.
tool_call_idStringQuando role é "tool", o ID associado ao 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 do sistema default do modelo.

ToolCall

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

campoTipoDescrição
idStringObrigatório . Um identificador exclusivo para essa sugestão de chamada de ferramenta.
typeStringObrigatório . Somente "function" é suportado.
functionConclusão da chamada de funçãoObrigatório . Uma chamada de função sugerida pelo modelo.

FunctionCallCompletion

campoTipoDescrição
nameStringObrigatório. O nome da função recomendada pelo modelo.
argumentsObjetoObrigatório. Argumentos para a função como um dicionário JSON serializado.

ToolChoiceObject

Consulte Chamada de função em Databricks.

campoTipoDescrição
typeStringObrigatório . O tipo da ferramenta. Atualmente, somente "function" é suportado.
functionObjetoObrigatório . Um objeto que define qual ferramenta chamar no formato {"type": "function", "function": {"name": "my_function"}}, onde "my_function é o nome de um FunctionObject no campo tools.

ToolObject

Consulte Chamada de função em Databricks.

campoTipoDescrição
typeStringObrigatório . O tipo da ferramenta. Atualmente, somente function é suportado.
functionObjeto de funçãoObrigatório . A definição da função associada à ferramenta.

FunctionObject

campoTipoDescrição
nameStringObrigatório . O nome da função a ser chamada.
descriptionObjetoObrigató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.
parametersObjetoOs parâmetros que a função aceita, descritos como um objeto de esquema JSON válido. Se a ferramenta for chamada, a chamada da ferramenta será adequada ao esquema JSON fornecido. A omissão de parâmetros define uma função sem nenhum parâmetro. O número de properties é limitado a 15 teclas.
strictBooleanaSe deve habilitar a adesão estrita ao esquema ao gerar a chamada de função. Se definido como true, o modelo segue o esquema exato definido no campo esquema. Somente um subconjunto do esquema JSON é suportado quando strict é true

ResponseFormatObject

Consulte Saídas estruturadas em Databricks.

campoTipoDescrição
typeStringObrigató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 que aderem a um esquema específico.
json_schemaObjeto do esquema JSONObrigatório . O esquema JSON a ser seguido se type for definido como json_schema

JsonSchemaObject

Consulte Saídas estruturadas em Databricks.

campoTipoDescrição
nameStringObrigatório . O nome do formato de resposta.
descriptionStringUma descrição da finalidade do formato de resposta, usada pelo modelo para determinar como responder no formato.
schemaObjetoObrigatório . O esquema do formato de resposta, descrito como um objeto de esquema JSON.
strictBooleanaSe deve habilitar a adesão estrita ao esquema ao gerar a saída. Se definido como true, o modelo segue o esquema exato definido no campo esquema. Somente um subconjunto do esquema JSON é suportado quando strict é true

Resposta do chat

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

campoTipoDescrição
idStringIdentificador exclusivo para a conclusão do bate-papo.
choicesList[ChatCompletionChoice] ou List[ChatCompletionChunk] (transmissão)Lista de textos de conclusão de bate-papo. As opções n serão retornadas se o parâmetro n for especificado.
objectStringO tipo de objeto. Igual a "chat.completions" para não transmissão ou "chat.completion.chunk" para transmissão.
createdIntegerA hora em que a conclusão do bate-papo foi gerada em segundos.
modelStringA versão do modelo usada para gerar a resposta.
usageUsometadados de uso de tokens. Pode não estar presente nas respostas de transmissão.

ChatCompletionChoice

campoTipoDescrição
indexIntegerO índice da escolha na lista de opções geradas.
messageMensagem de bate-papoUma mensagem de conclusão do bate-papo retornada pela modelo. O papel será assistant.
finish_reasonStringO motivo pelo qual o modelo parou de gerar tokens.

ChatCompletionChunk

campoTipoDescrição
indexIntegerO índice da escolha na lista de opções geradas.
deltaMensagem de bate-papoUma mensagem de conclusão de bate-papo que faz parte das respostas de transmissão geradas pelo modelo. É garantido que apenas o primeiro pedaço tenha role preenchido.
finish_reasonStringO motivo pelo qual o modelo parou de gerar tokens. Somente o último pedaço terá isso preenchido.

Tarefa de conclusão

A tarefa de conclusão de texto serve para gerar respostas a um único prompt. Ao contrário do Chat, essa tarefa suporta muitas entradas: vários prompts independentes podem ser enviados em uma única solicitação. Consulte POST /serving-endpoint/{name}/invocations para consultar os parâmetros de endpoint.

Solicitação de conclusão

campoPadrãoTipoDescrição
promptstrings ou List[strings]Obrigatório . As instruções para o modelo.
max_tokensnullnull, o que significa que não há limite ou um número inteiro maior que zeroO número máximo de tokens a serem gerados.
streamtrueBooleanatransmite 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.
temperature1.0Flutuar em [0,2]A temperatura de amostragem. 0 é determinístico e valores mais altos introduzem mais aleatoriedade.
top_p1.0Flutuar em (0,1]O limite de probabilidade usado para a amostragem do núcleo.
top_knullnull, o que significa que não há limite ou um número inteiro maior que zeroDefine o número de k tokens mais prováveis a serem usados na 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. Uma das opções: "truncate" (retorna o maior número possível de tokens) e "error" (retorna um erro). Esse parâmetro só é aceito pelo endpoint pay per tokens.
n1Número inteiro maior que zeroA API retorna n conclusões de bate-papo independentes quando n é especificado. Recomendado para cargas de trabalho que geram várias conclusões na mesma entrada para maior eficiência de inferência e economia de custos. Disponível apenas para o endpoint de provisionamento Taxa de transferência.
stop[]strings ou List[strings]O modelo para de gerar mais tokens quando qualquer uma das sequências em stop é encontrada.
suffix""StringUma cadeia de caracteres que é anexada ao final de cada conclusão.
echofalseBooleanaRetorna o prompt junto com a conclusão.
use_raw_promptfalseBooleanaSe true, passe o prompt diretamente para o modelo sem nenhuma transformação.

Resposta de conclusão

campoTipoDescrição
idStringIdentificador exclusivo para o preenchimento do texto.
choicesOpção de conclusãoUma lista de conclusões de texto. Para cada prompt passado, as opções n são geradas se n for especificado. O padrão n é 1.
objectStringO tipo de objeto. Igual a "text_completion"
createdIntegerA hora em que a conclusão foi gerada em segundos.
usageUsometadados de uso de tokens.

CompletionChoice

campoTipoDescrição
indexIntegerO índice do prompt na solicitação.
textStringA conclusão gerada.
finish_reasonStringO motivo pelo qual o modelo parou de gerar tokens.

Tarefa de incorporação

A tarefa de incorporação mapeia a entrada strings em vetores de incorporação. Muitas entradas podem ser agrupadas em cada solicitação. Consulte POST /serving-endpoint/{name}/invocations para consultar os parâmetros de endpoint.

Solicitação de incorporação

campoTipoDescrição
inputstrings ou List[strings]Obrigatório . O texto de entrada a ser incorporado. Pode ser uma cadeia de caracteres ou uma lista de strings.
instructionStringUma instrução opcional a ser passada para o modelo de incorporação.

As instruções são opcionais e altamente específicas do modelo. Por exemplo, os autores do The 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 instruções strings.

Resposta de incorporações

campoTipoDescrição
idStringIdentificador exclusivo para a incorporação.
objectStringO tipo de objeto. Igual a "list".
modelStringO nome do modelo de incorporação usado para criar a incorporação.
dataObjeto de incorporaçãoO objeto de incorporação.
usageUsometadados de uso de tokens.

EmbeddingObject

campoTipoDescrição
objectStringO tipo de objeto. Igual a "embedding".
indexIntegerO índice da incorporação na lista de incorporações gerada pelo modelo.
embeddingLista [Float]O vetor de incorporação. Cada modelo retornará um vetor de tamanho fixo (1024 para BGE-Large)

Recurso adicional