Configurar o acesso a recursos a partir de pontos de extremidade de serviço de modelo
Este artigo descreve como configurar o acesso a recursos externos e privados a partir de pontos de extremidade de serviço de modelo. O Model Serving suporta variáveis de ambiente de texto simples e variáveis de ambiente baseadas em segredos usando segredos do Databricks.
Requisitos
Para variáveis de ambiente baseadas em segredos,
- O criador do ponto de extremidade deve ter acesso READ aos segredos do Databricks que estão sendo referenciados nas configurações.
- Você deve armazenar credenciais como sua chave de API ou outros tokens como um segredo do Databricks.
Adicionar variáveis de ambiente de texto sem formatação
Use variáveis de ambiente de texto sem formatação para definir variáveis que não precisam ser ocultadas. Você pode definir variáveis na interface do usuário de serviço ou na API REST ao criar ou atualizar um ponto de extremidade.
Na interface do usuário de serviço, você pode adicionar uma variável de ambiente em Configurações avançadas:
A seguir está um exemplo para criar um ponto de extremidade de serviço usando a POST /api/2.0/serving-endpoints
API REST e o environment_vars
campo para configurar sua variável de ambiente.
{
"name": "endpoint-name",
"config":{
"served_entities": [{
"entity_name": "model-name",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": "true",
"environment_vars":{
"TEXT_ENV_VAR_NAME": "plain-text-env-value"
}
}]
}
}
Adicionar variáveis de ambiente baseadas em segredos
Você pode armazenar credenciais com segurança usando segredos do Databricks e fazer referência a esses segredos no serviço de modelo usando variáveis de ambiente baseadas em segredos. Isso permite que as credenciais sejam obtidas de pontos de extremidade de serviço de modelo no tempo de serviço.
Por exemplo, você pode passar credenciais para chamar OpenAI e outros pontos de extremidade de modelo externos ou acessar locais de armazenamento de dados externos diretamente do serviço de modelo.
A Databricks recomenda esse recurso para implantar os sabores de modelo OpenAI e LangChain MLflow para servir. Também é aplicável a outros modelos SaaS que exigem credenciais com o entendimento de que o padrão de acesso é baseado no uso de variáveis de ambiente e chaves e tokens de API.
Etapa 1: Criar um escopo secreto
Durante a utilização do modelo, os segredos são recuperados dos segredos do Databricks pelo escopo e chave secretos. Eles são atribuídos aos nomes de variáveis de ambiente secreto que podem ser usados dentro do modelo.
Primeiro, crie um escopo secreto. Consulte Escopos secretos.
A seguir estão os comandos da CLI:
databricks secrets create-scope my_secret_scope
Em seguida, você pode adicionar seu segredo a um escopo e chave secretos desejados, conforme mostrado abaixo:
databricks secrets put-secret my_secret_scope my_secret_key
As informações secretas e o nome da variável de ambiente podem ser passados para a configuração do ponto de extremidade durante a criação do ponto de extremidade ou como uma atualização para a configuração de um ponto de extremidade existente.
Etapa 2: Adicionar escopos secretos à configuração do ponto de extremidade
Você pode adicionar o escopo secreto a uma variável de ambiente e passar essa variável para seu ponto de extremidade durante a criação do ponto de extremidade ou atualizações de configuração. Consulte Criar pontos de extremidade de serviço de modelo personalizado.
Na interface do usuário de serviço, você pode adicionar uma variável de ambiente em Configurações avançadas. A variável de ambiente baseada em segredos deve ser fornecida usando a seguinte sintaxe: {{secrets/scope/key}}
. Caso contrário, a variável de ambiente é considerada uma variável de ambiente de texto simples.
A seguir está um exemplo para criar um ponto de extremidade de serviço usando a API REST. Durante as atualizações de criação e configuração do ponto de extremidade de serviço de modelo, você pode fornecer uma lista de especificações de variáveis de ambiente secretas para cada modelo atendido dentro da solicitação de API usando environment_vars
o campo.
O exemplo a seguir atribui o valor do segredo criado no código fornecido à variável OPENAI_API_KEY
de ambiente .
{
"name": "endpoint-name",
"config":{
"served_entities": [{
"entity_name": "model-name",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": "true",
"environment_vars":{
"OPENAI_API_KEY": "{{secrets/my_secret_scope/my_secret_key}}"
}
}]
}
}
Você também pode atualizar um ponto de extremidade de serviço, como no seguinte PUT /api/2.0/serving-endpoints/{name}/config
exemplo de API REST:
{
"served_entities": [{
"entity_name": "model-name",
"entity_version": "2",
"workload_size": "Small",
"scale_to_zero_enabled": "true",
"environment_vars":{
"OPENAI_API_KEY": "{{secrets/my_secret_scope/my_secret_key}}"
}
}]
}
Depois que o ponto de extremidade é criado ou atualizado, o serviço de modelo busca automaticamente a chave secreta do escopo de segredos do Databricks e preenche a variável de ambiente para o código de inferência do modelo usar.
Exemplo de bloco de notas
Consulte o bloco de anotações a seguir para obter um exemplo de como configurar uma chave de API OpenAI para uma cadeia de QA de recuperação LangChain implantada por trás do modelo que serve pontos de extremidade com variáveis de ambiente baseadas em segredo.