Pular para o conteúdo principal

Modelos externos no Model Serving

info

Experimente a nova Unity AI Gateway Beta

Uma nova experiência do Unity AI Gateway está disponível em Beta. O novo Unity AI Gateway é o plano de controle corporativo para governar o endpoint LLM e os agentes de codificação com recurso aprimorado. Consulte governança de AI com o Unity AI Gateway.

importante

Os exemplos de código neste artigo demonstram o uso da API CRUD de Implantações do MLflow em visualização pública.

Este artigo descreve modelos externos no Model Serving, incluindo seus provedores de modelo compatíveis e limitações.

O que são modelos externos?

importante

Agora você pode configurar o AI Gateway em endpoints de servindo modelo que servem modelos externos. O AI Gateway traz governança, monitoramento e prontidão para produção para esses endpoints de servindo modelo. Consulte Governança de AI com Unity AI Gateway.

Modelos externos são modelos de terceiros hospedados fora do Databricks. Apoiados pelo Model Serving, os modelos externos permitem otimizar o uso e o gerenciamento de vários provedores de modelos de linguagem grandes (LLM), como OpenAI e Anthropic, dentro de uma organização. Você também pode usar o Model Serving como um provedor para disponibilizar modelos personalizados, o que oferece limites de taxa para esses endpoints. Como parte deste suporte, o Model Serving oferece uma interface de alto nível que simplifica a interação com esses serviços, fornecendo um endpoint unificado para lidar com solicitações específicas relacionadas a LLM.

Além disso, o suporte do Databricks para modelos externos oferece gerenciamento centralizado de credenciais. Ao armazenar chaves API em um local seguro, as organizações podem aprimorar sua postura de segurança, minimizando a exposição de chaves API sensíveis em todo o sistema. Também ajuda a evitar a exposição dessas key no código ou exigir que os usuários finais gerenciar as key com segurança.

Consulte Tutorial: Crie endpoints de modelo externo para consultar modelos do OpenAI para obter orientações passo a passo sobre a criação de endpoints de modelo externo e a consulta de modelos suportados que são veiculados por esses endpoints usando o SDK de Implantações do MLflow. Consulte os seguintes guias para obter instruções sobre como usar a IU de veiculação e a API REST:

Requisitos

Provedores de modelos

Modelos externos no Model Serving são projetados para suportar uma variedade de provedores de modelos. Um provedor representa a origem dos modelos do machine learning, como OpenAI, Anthropic e assim por diante. Cada provedor possui suas características e configurações específicas que são encapsuladas no campo external_model da configuração de endpoint de modelo externo.

Os seguintes provedores são compatíveis:

  • OpenAI : para modelos oferecidos por OpenAI e as integrações do Azure para Azure OpenAI e Azure OpenAI com AAD.
  • Anthropic : Para modelos oferecidos pela Anthropic.
  • cohere : Para modelos oferecidos por Cohere.
  • amazon-bedrock : Para modelos oferecidos por Amazon Bedrock.
  • google-cloud-vertex-ai : Para modelos oferecidos pelo Google Cloud Vertex AI.
  • databricks-model-serving : Para endpoints de servindo modelo com esquemas compatíveis. Consulte Configuração de endpoint.
  • personalizado : Para provedores alternativos ou modelos por trás de proxies personalizados que são compatíveis com a API da OpenAI, mas não são suportados diretamente pelo Databricks.

Para solicitar suporte para um provedor não listado aqui, tente usar a opção de provedor **personalizado** ou entre em contato com sua equipe de account Databricks.

Modelos compatíveis

O modelo que você escolher afeta diretamente os resultados das respostas que você obtém das chamadas da API. Portanto, escolha um modelo que se ajuste aos requisitos do seu caso de uso. Por exemplo, para gerar respostas conversacionais, você pode escolher um modelo de chat. Por outro lado, para gerar incorporações de texto, você pode escolher um modelo de incorporação.

Consulte Modelos compatíveis.

Utilize modelos servidos em endpoints de Model Serving

Endpoints de Model Serving como provedor são suportados para os tipos de endpoint llm/v1/completions, llm/v1/chat e llm/v1/embeddings. Esses endpoints devem aceitar os parâmetros de query padrão marcados como obrigatórios, enquanto outros parâmetros podem ser ignorados dependendo se o endpoint de Model Serving os suporta ou não.

Consulte POST /serving-endpoint/{name}/invocations na referência da API para parâmetros de consulta padrão.

Estes endpoints devem produzir respostas no seguinte formato OpenAI.

Para tarefas de conclusão:

Python
{
"id": "123", # Not Required
"model": "test_databricks_model",
"choices": [
{
"text": "Hello World!",
"index": 0,
"logprobs": null, # Not Required
"finish_reason": "length" # Not Required
}
],
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}

Para tarefas de chat:

Python
{
"id": "123", # Not Required
"model": "test_chat_model",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "\n\nHello there, how may I assist you today?",
},
"finish_reason": "stop"
},
{
"index": 1,
"message": {
"role": "human",
"content": "\n\nWhat is the weather in San Francisco?",
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}

Para tarefas de incorporações:

Python
{
"data": [
{
"embedding": [
0.0023064255,
-0.009327292,
.... # (1536 floats total for ada-002)
-0.0028842222,
],
"index": 0
},
{
"embedding": [
0.0023064255,
-0.009327292,
.... #(1536 floats total for ada-002)
-0.0028842222,
],
"index": 0
}
],
"model": "test_embedding_model",
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}

Configuração de endpoint

Para disponibilizar e consultar modelos externos, é preciso configurar um endpoint de disponibilização de modelo. Consulte Criar um endpoint de servindo modelo externo

Para um endpoint de servindo modelo externo, você deve incluir o campo external_model e seus parâmetros na seção served_entities da configuração do endpoint. Se você configurar vários modelos externos em um endpoint de serviço, deverá fornecer um traffic_config para definir a porcentagem de roteamento de tráfego para cada modelo externo.

O campo external_model define o modelo para o qual este endpoint encaminha as solicitações. Ao especificar um modelo, é fundamental que o provedor seja compatível com o modelo que você está solicitando. Por exemplo, openai como provedor é compatível com modelos como text-embedding-ada-002, mas outros provedores podem não ser. Se o modelo não for compatível com o provedor, o Databricks retornará um erro HTTP 4xx ao tentar rotear as solicitações para esse modelo.

A tabela abaixo resume os parâmetros do campo external_model. Veja POST /api/2.0/serving-endpoints para parâmetros de configuração de endpoint.

Parâmetro

Descrições

name

O nome do modelo a ser usado. Por exemplo, gpt-3.5-turbo para o modelo GPT-3.5-Turbo da OpenAI. Isso é passado como parte do corpo da solicitação com a key correspondente: "model".

provider

Especifica o nome do provedor para este modelo. Este valor de strings deve corresponder a um provedor de modelo externo compatível. Por exemplo, openai para os modelos GPT-3.5 da OpenAI.

task

A tarefa corresponde ao tipo de interação do modelo de linguagem desejada. As tarefas suportadas são “llm/v1/completions”, “llm/v1/chat”, “llm/v1/embeddings”.

<provider>_config

Contém quaisquer detalhes de configuração adicionais necessários para o modelo. Isso inclui especificar a URL base da API e a key de API. Consulte Configurar o provedor para um endpoint. Se estiver utilizando o provedor custom, especifique este parâmetro como custom_provider_config.

A seguir, um exemplo de criação de um endpoint de modelo externo usando a API create_endpoint(). Neste exemplo, uma solicitação enviada ao endpoint de conclusão é encaminhada ao modelo claude-2 fornecido por anthropic.

Python
import mlflow.deployments

client = mlflow.deployments.get_deploy_client("databricks")

client.create_endpoint(
name="anthropic-completions-endpoint",
config={
&quot;served_entities&quot;: [
{
&quot;name&quot;: &quot;test&quot;,
&quot;external_model&quot;: {
&quot;name&quot;: &quot;claude-2&quot;,
&quot;provider&quot;: &quot;anthropic&quot;,
&quot;task&quot;: &quot;llm/v1/completions&quot;,
&quot;anthropic_config&quot;: {
&quot;anthropic_api_key&quot;: &quot;{{secrets/my_anthropic_secret_scope/anthropic_api_key}}&quot;
}
}
}
]
}
)

Configure o provedor para um endpoint

Ao criar um endpoint, você deve fornecer as configurações necessárias para o provedor de modelo especificado. As seções a seguir resumem os parâmetros de configuração de endpoint disponíveis para cada provedor de modelo.

nota

A Databricks criptografa e armazena com segurança as credenciais fornecidas para cada provedor de modelo. Essas credenciais são excluídas automaticamente quando seu endpoint associado é excluído.

OpenAI

Parâmetro de Configuração

Descrição

Obrigatório

Padrão

openai_api_key

A referência da chave secreta do Databricks para uma chave API OpenAI que usa o serviço OpenAI. Se preferir colar sua key API diretamente, consulte openai_api_key_plaintext.

Você deve fornecer uma key de API usando um dos seguintes campos: openai_api_key ou openai_api_key_plaintext.

openai_api_key_plaintext

A key API da OpenAI usando o serviço da OpenAI fornecida como uma strings de texto simples. Se preferir referenciar sua chave usando Databricks Secrets, consulte openai_api_key.

Você deve fornecer uma key de API usando um dos seguintes campos: openai_api_key ou openai_api_key_plaintext.

openai_api_type

Um campo opcional para especificar o tipo de API do OpenAI a ser usado.

Não

openai

openai_api_base

A URL base para a API da OpenAI.

Não

https://api.openai.com/v1

openai_api_version

Um campo opcional para especificar a versão da API OpenAI.

Não

openai_organization

Um campo opcional para especificar a organização na OpenAI.

Não

Cohere

Parâmetro de Configuração

Descrição

Obrigatório

Padrão

cohere_api_key

A referência da chave secreta do Databricks para uma API key Cohere. Se preferir colar sua key API diretamente, consulte cohere_api_key_plaintext.

Você deve fornecer uma key de API usando um dos seguintes campos: cohere_api_key ou cohere_api_key_plaintext.

cohere_api_key_plaintext

A key da API Cohere fornecida como uma strings de texto simples. Se preferir referenciar sua chave usando Databricks Secrets, consulte cohere_api_key.

Você deve fornecer uma key de API usando um dos seguintes campos: cohere_api_key ou cohere_api_key_plaintext.

cohere_api_base

A URL base para o serviço Cohere.

Não

Anthropic

Parâmetro de Configuração

Descrição

Obrigatório

Padrão

anthropic_api_key

A referência de chave secreta Databricks para uma API key Anthropic. Se preferir colar sua key de API diretamente, consulte anthropic_api_key_plaintext.

Você deve fornecer uma key de API usando um dos seguintes campos: anthropic_api_key ou anthropic_api_key_plaintext.

anthropic_api_key_plaintext

A chave da API do Anthropic fornecida como uma string de texto simples. Se preferir referenciar sua chave usando Databricks Secrets, consulte anthropic_api_key.

Você deve fornecer uma key de API usando um dos seguintes campos: anthropic_api_key ou anthropic_api_key_plaintext.

Azure OpenAI

O Azure OpenAI tem recursos distintos em comparação com o serviço OpenAI direto. Para obter uma visão geral, consulte a documentação de comparação.

Parâmetro de Configuração

Descrição

Obrigatório

Padrão

openai_api_key

A referência de chave secreta do Databricks para uma key de API OpenAI usando o serviço Azure. Se preferir colar sua key API diretamente, consulte openai_api_key_plaintext.

Você deve fornecer uma key de API usando um dos seguintes campos: openai_api_key ou openai_api_key_plaintext.

openai_api_key_plaintext

A key da API do OpenAI usando o serviço do Azure fornecida como uma strings de texto simples. Se preferir referenciar sua chave usando Databricks Secrets, consulte openai_api_key.

Você deve fornecer uma key de API usando um dos seguintes campos: openai_api_key ou openai_api_key_plaintext.

openai_api_type

Utilize azure para validação do access token.

Sim

openai_api_base

A URL base para o serviço da API OpenAI do Azure.

Sim

openai_api_version

A versão do serviço OpenAI do Azure a utilizar, especificada por uma data.

Sim

openai_deployment_name

O nome do recurso de implantação para o serviço Azure OpenAI.

Sim

openai_organization

Um campo opcional para especificar a organização na OpenAI.

Não

Se estiver usando o Azure OpenAI com o Microsoft Entra ID, use os seguintes parâmetros na configuração do seu endpoint. O Databricks passa https://cognitiveservices.azure.com/ como o escopo default para o token do Microsoft Entra ID.

Parâmetro de Configuração

Descrição

Obrigatório

Padrão

microsoft_entra_tenant_id

O ID do tenant para autenticação do Microsoft Entra ID.

Sim

microsoft_entra_client_id

O ID do cliente para autenticação do Microsoft Entra ID.

Sim

microsoft_entra_client_secret

A referência da chave secreta do Databricks para um segredo de cliente utilizada para autenticação do Microsoft Entra ID. Caso prefira colar o seu segredo de cliente diretamente, consulte microsoft_entra_client_secret_plaintext.

Você deve fornecer uma key de API usando um dos seguintes campos: microsoft_entra_client_secret ou microsoft_entra_client_secret_plaintext.

microsoft_entra_client_secret_plaintext

O segredo do cliente usado para a autenticação do Microsoft Entra ID fornecido como uma strings de texto simples. Se preferir referenciar sua chave usando Databricks Secrets, consulte microsoft_entra_client_secret.

Você deve fornecer uma key de API usando um dos seguintes campos: microsoft_entra_client_secret ou microsoft_entra_client_secret_plaintext.

openai_api_type

Use azuread para autenticação usando o Microsoft Entra ID.

Sim

openai_api_base

A URL base para o serviço da API OpenAI do Azure.

Sim

openai_api_version

A versão do serviço OpenAI do Azure a utilizar, especificada por uma data.

Sim

openai_deployment_name

O nome do recurso de implantação para o serviço Azure OpenAI.

Sim

openai_organization

Um campo opcional para especificar a organização na OpenAI.

Não

O exemplo a seguir demonstra como criar um endpoint com Azure OpenAI:

Python
client.create_endpoint(
name="openai-chat-endpoint",
config={
&quot;served_entities&quot;: [{
&quot;external_model&quot;: {
&quot;name&quot;: &quot;gpt-3.5-turbo&quot;,
&quot;provider&quot;: &quot;openai&quot;,
&quot;task&quot;: &quot;llm/v1/chat&quot;,
&quot;openai_config&quot;: {
&quot;openai_api_type&quot;: &quot;azure&quot;,
&quot;openai_api_key&quot;: &quot;{{secrets/my_openai_secret_scope/openai_api_key}}&quot;,
&quot;openai_api_base&quot;: &quot;https://my-azure-openai-endpoint.openai.azure.com&quot;,
&quot;openai_deployment_name&quot;: &quot;my-gpt-35-turbo-deployment&quot;,
&quot;openai_api_version&quot;: &quot;2023-05-15&quot;
}
}
}]
}
)

Vertex AI do Google Cloud

Parâmetro de Configuração

Descrição

Obrigatório

Padrão

private_key

A referência de chave secreta do Databricks para o arquivo JSON completo da service account key do serviço account que tem acesso ao serviço Google Cloud Vertex AI. Este é todo o conteúdo do arquivo JSON key baixado do Google Cloud, não apenas o campo private_key. Consulte Práticas recomendadas para gerenciar key de account serviço. Caso prefira colar sua key diretamente, consulte private_key_plaintext.

Você deve fornecer uma key utilizando um dos seguintes campos: private_key ou private_key_plaintext.

private_key_plaintext

O JSON completo da chave da account de serviço que tem acesso ao Serviço Vertex AI do Google Cloud, fornecido como um segredo de texto simples. Este é todo o conteúdo do arquivo JSON key baixado do Google Cloud, não apenas o campo private_key. Consulte Práticas recomendadas para gerenciar key de account serviço. Se você preferir referenciar sua key usando os Segredos do Databricks, consulte private_key.

Você deve fornecer uma key utilizando um dos seguintes campos: private_key ou private_key_plaintext.

region

Esta é a região para o serviço do Google Cloud Vertex AI. Consulte regiões compatíveis para mais detalhes. Alguns modelos estão disponíveis apenas em regiões específicas.

Sim

project_id

Este é o ID do projeto do Google cloud ao qual a account de serviço está associada.

Sim

Amazon Bedrock

Para usar o Amazon Bedrock como um provedor de modelo externo, os clientes precisam garantir que o Bedrock esteja habilitado na região AWS especificada, e que o par de chaves AWS especificado tenha as permissões apropriadas para interagir com os serviços do Bedrock. Para mais informações, consulte AWS Identity and Access Management.

O Amazon Bedrock suporta vários mecanismos de autenticação. Exatamente um dos seguintes deve ser fornecido:

  • Uma Unity Catalog credencial de serviço que faz referência a uma AWS IAM role
  • Um **instance profile** da AWS
  • Chaves de acesso da AWS (usando Databricks Secrets ou texto simples)

Se as chaves de acesso forem usadas, **ambos** um ID da chave de acesso e uma chave de acesso secreta são necessários.

Parâmetro de configuração

Descrição

Obrigatório

Padrão

aws_region

A região da AWS a ser usada. O Amazon Bedrock deve ser habilitado nesta região.

Sim

uc_service_credential_name

Referência a uma credencial de serviço do Unity Catalog usada pela entidade atendida para acessar recursos da AWS. A credencial deve fazer referência a um IAM role da AWS.

Não

instance_profile_arn

Nome do Recurso da Amazon (ARN) do instance profile usado pela entidade servida para acessar recursos da AWS.

Não

aws_access_key_id

ID da key de acesso da AWS usado pela entidade servida para acessar recursos da AWS, fornecido usando uma referência secreta do Databricks.

Não

aws_access_key_id_plaintext

ID da key de acesso da AWS usado pela entidade servida para acessar recurso da AWS, fornecido como uma string de texto simples.

Não

aws_secret_access_key

Key de acesso secreta da AWS usada pela entidade servida para acessar recurso da AWS, associada ao ID da key de acesso e fornecida usando uma referência secreta do Databricks.

Não

aws_secret_access_key_plaintext

Key de acesso secreta da AWS usada pela entidade servida para acessar recurso da AWS, emparelhada com o ID da key de acesso e fornecida como uma strings de texto simples.

Não

bedrock_provider

O fornecedor subjacente no Amazon Bedrock. Valores compatíveis (não diferenciam maiúsculas de minúsculas): Anthropic, Cohere, AI21Labs, Amazon.

Sim

O exemplo a seguir demonstra como criar um endpoint com Amazon Bedrock usando um instance profile. Se preferir usar key de acesso, use aws_access_key_id e aws_secret_access_key. Se preferir usar uma credencial de serviço, use uc_service_credential_name.

Python
client.create_endpoint(
name="bedrock-anthropic-completions-endpoint",
config={
&quot;served_entities&quot;: [
{
&quot;external_model&quot;: {
&quot;name&quot;: &quot;claude-v2&quot;,
&quot;provider&quot;: &quot;amazon-bedrock&quot;,
&quot;task&quot;: &quot;llm/v1/completions&quot;,
&quot;amazon_bedrock_config&quot;: {
&quot;aws_region&quot;: &quot;&lt;YOUR_AWS_REGION&gt;&quot;,
&quot;uc_service_credential_name&quot;: &quot;&lt;YOUR_UC_SERVICE_CREDENTIAL_NAME&gt;&quot;, ## Remove if using other authentication methods
# &quot;instance_profile_arn&quot;: &quot;&lt;YOUR_AWS_INSTANCE_PROFILE_ARN&gt;&quot;,
# &quot;aws_access_key_id&quot;: &quot;{{secrets/my_amazon_bedrock_secret_scope/aws_access_key_id}}&quot;,
# &quot;aws_secret_access_key&quot;: &quot;{{secrets/my_amazon_bedrock_secret_scope/aws_secret_access_key}}&quot;,
&quot;bedrock_provider&quot;: &quot;anthropic&quot;,
},
}
}
]
},
)
nota

Para usar as proteções existentes do Amazon Bedrock com modelos do Amazon Bedrock através do AI Gateway, pode definir o cabeçalho X-Amzn-Bedrock-GuardrailIdentifier para o ARN da proteção de sua escolha e definir X-Amzn-Bedrock-GuardrailVersion conforme necessário. Estes cabeçalhos são encaminhados para o Amazon Bedrock.

Se houver problemas de permissão da AWS, o Databricks recomenda que você verifique as credenciais diretamente com a API do Amazon Bedrock.

AI21 Labs

Parâmetro de Configuração

Descrição

Obrigatório

Padrão

ai21labs_api_key

A referência da chave secreta Databricks para uma key API da AI21 Labs. Se preferir colar sua key API diretamente, consulte ai21labs_api_key_plaintext.

Você deve fornecer uma key de API usando um dos seguintes campos: ai21labs_api_key ou ai21labs_api_key_plaintext.

ai21labs_api_key_plaintext

Uma key de API da AI21 Labs fornecida como uma strings de texto simples. Se preferir referenciar sua chave usando Databricks Secrets, consulte ai21labs_api_key.

Você deve fornecer uma key de API usando um dos seguintes campos: ai21labs_api_key ou ai21labs_api_key_plaintext.

Provedor personalizado

importante

Para usar um modelo de provedor personalizado, ele deve ser compatível com a API OpenAI.

Parâmetro de Configuração

Descrição

Obrigatório

Padrão

custom_provider_url

O URL onde o modelo do provedor personalizado reside. O URL deve apontar para um endpoint de API específico; por exemplo, https://api.provider.com/chat/completions.

Sim

bearer_token_auth

Se o provedor personalizado utilizar a autenticação por tokens, especifique os campos necessários.

Você deve fornecer um método de autenticação usando um dos seguintes campos: bearer_token_auth ou api_key_auth.

token

A referência da chave secreta do Databricks para os tokens para autenticação de portador. Este parâmetro deve estar aninhado em bearer_token_auth. Se preferir colar a sua key de API diretamente, consulte token_plaintext.

Se estiver usando autenticação de portador, você deve fornecer uma key de API usando um dos seguintes campos: token ou token_plaintext.

token_plaintext

Os tokens para autenticação de portador fornecido como uma strings de texto simples. Este parâmetro deve estar aninhado em bearer_token_auth. Se preferir fazer referência à sua key usando segredos do Databricks, consulte token.

Se estiver usando autenticação de portador, você deve fornecer uma key de API usando um dos seguintes campos: token ou token_plaintext.

api_key_auth

Se o provedor personalizado utilizar autenticação de key de API, especifique os campos obrigatórios.

Você deve fornecer um método de autenticação usando um dos seguintes campos: bearer_token_auth ou api_key_auth.

key

A key para autenticação da key de API. Este parâmetro deve ser aninhado em api_key_auth

Sim, ao usar a autenticação de API key.

value

A referência da chave secreta do Databricks para o valor de autenticação da API key. Se preferir colar sua key de API diretamente, consulte value_plaintext.

Se estiver usando autenticação de chave de API, você deve fornecer uma chave de API usando um dos seguintes campos: value ou value_plaintext.

value_plaintext

O valor para autenticação de API key fornecido como uma strings de texto simples. Se preferir referenciar sua key usando os segredos do Databricks, consulte value.

Se estiver usando autenticação de chave de API, você deve fornecer uma chave de API usando um dos seguintes campos: value ou value_plaintext.

O exemplo a seguir demonstra como criar um endpoint com um provedor personalizado usando **autenticação de portador**:

Python
client.create_endpoint(
name="custom-provider-completions-endpoint",
config={
&quot;served_entities&quot;: [
{
&quot;external_model&quot;: {
&quot;name&quot;: &quot;custom-provider-model&quot;,
&quot;provider&quot;: &quot;custom&quot;,
&quot;task&quot;: &quot;llm/v1/chat&quot;,
&quot;custom_provider_config&quot;: {
&quot;custom_provider_url&quot;: &quot;https://api.provider.com/chat/completions&quot;,
&quot;bearer_token_auth&quot;: {
&quot;token&quot;: &quot;{{secrets/my_custom_provider_secret_scope/custom_provider_token}}&quot;
}
}
}
}
]
},
)

O exemplo a seguir demonstra como criar um endpoint com um provedor personalizado usando **autenticação de key de API**:

Python
client.create_endpoint(
name="custom-provider-completions-endpoint",
config={
&quot;served_entities&quot;: [
{
&quot;external_model&quot;: {
&quot;name&quot;: &quot;custom-provider-model&quot;,
&quot;provider&quot;: &quot;custom&quot;,
&quot;task&quot;: &quot;llm/v1/chat&quot;,
&quot;custom_provider_config&quot;: {
&quot;custom_provider_url&quot;: &quot;https://my-custom-provider.com&quot;,
&quot;api_key_auth&quot;: {
&quot;key&quot;: &quot;X-API-KEY&quot;,
&quot;value&quot;: &quot;{{secrets/my_custom_provider_secret_scope/custom_provider_api_key}}&quot;
}
}
}
}
]
},
)

Configurar o AI Gateway em um endpoint

Você também pode configurar seu endpoint para habilitar recursos do AI Gateway, como limitação de taxa, acompanhamento de uso e guardrails.

Consulte Configurar o AI Gateway em endpoints de servindo modelo.

Consultar um endpoint de modelo externo

Após criar um endpoint de modelo externo, ele estará pronto para receber tráfego de usuários.

Você pode enviar solicitações de pontuação para o endpoint usando o cliente OpenAI, a API REST ou o SDK de Implantações MLflow.

O exemplo a seguir consulta o modelo de conclusões claude-2 hospedado pela Anthropic usando o cliente OpenAI. Para usar o cliente OpenAI, preencha o campo model com o nome do endpoint servindo modelo que hospeda o modelo que você deseja consultar.

Este exemplo usa um endpoint criado anteriormente, anthropic-completions-endpoint, configurado para acessar modelos externos do provedor de modelos Anthropic. Consulte como criar endpoint de modelo externo.

Consulte Modelos compatíveis para modelos adicionais que você pode consultar e seus provedores.

Python
import os
import openai
from openai import OpenAI

client = OpenAI(
api_key="dapi-your-databricks-token",
base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)

completion = client.completions.create(
model="anthropic-completions-endpoint",
prompt="what is databricks",
temperature=1.0
)
print(completion)

Formato de resposta de saída esperado:

Python
{
"id": "123", # Not Required
"model": "anthropic-completions-endpoint",
"choices": [
{
"text": "Hello World!",
"index": 0,
"logprobs": null, # Not Required
"finish_reason": "length" # Not Required
}
],
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}

Parâmetros de consulta adicionais

É possível passar quaisquer parâmetros adicionais compatíveis com o provedor do endpoint como parte da sua consulta.

Por exemplo:

  • logit_bias (compatível com OpenAI, Cohere).

  • top_k (suportado por Anthropic, Cohere).

  • frequency_penalty (compatível com OpenAI, Cohere).

  • presence_penalty (compatível com OpenAI, Cohere).

  • stream (suportado por OpenAI, Anthropic, Cohere, Amazon Bedrock para Anthropic). Isto está disponível apenas para solicitações de bate-papo e conclusões.

  • tools (com suporte de OpenAI, Anthropic, Amazon Bedrock para Anthropic). Este está disponível apenas para solicitações de bate-papo e de conclusão. Este parâmetro permite a integração de funcionalidades externas, incluindo Uso de Computador (beta) para Anthropic e Amazon Bedrock para Anthropic. Consulte Chamada de função no Databricks.

Suporte para configurações de conectividade de rede para modelos externos

O suporte para Configurações de conectividade de rede (NCCs) para modelos externos, incluindo o AWS PrivateLink, está atualmente em prévia pública. Entre em contato com a equipe da sua account Databricks para participar da prévia.

Limitações

Dependendo do modelo externo escolhido, sua configuração pode fazer com que seus dados sejam processados fora da região de origem. Consulte Limites e regiões do Model Serving.

Recursos adicionais