Configurar o acesso ao recurso a partir do endpoint servindo modelo
Este artigo descreve como configurar o acesso a recursos externos e privados a partir do endpoint do modelo de serviço. O servindo modelo suporta variável de ambiente de texto simples e variável de ambiente baseada em segredos usando Databricks secrets.
Requisitos
Para segredos baseados em variáveis de ambiente,
- O criador do endpoint deve ter acesso READ aos segredos do Databricks que estão sendo referenciados nas configurações.
- O senhor deve armazenar credenciais como seu API key ou outro tokens como um segredo Databricks.
Adicionar texto simples variável de ambiente
Use variáveis de ambiente em texto simples para definir variáveis que não precisam ser ocultadas. O senhor pode definir variáveis na Serving UI ou na REST API ao criar ou atualizar um endpoint.
Na UI do Serving, o senhor pode adicionar uma variável de ambiente nas configurações avançadas :
A seguir, um exemplo de criação de um endpoint de serviço usando a API REST do POST /api/2.0/serving-endpoints
e o campo environment_vars
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"
}
}
]
}
}
pesquisa de recurso de log DataFrames para tabelas de inferência
Se as tabelas de inferência estiverem ativadas no site endpoint, o senhor poderá log o quadro de dados de pesquisa de recurso automático para essa tabela de inferência usando ENABLE_FEATURE_TRACING
. Isso requer o site MLflow 2.14.0 ou acima.
Defina ENABLE_FEATURE_TRACING
como uma variável de ambiente na UI de serviço ou na API REST quando o senhor criar ou atualizar um endpoint.
Da interface do usuário de serviço:
- Em Advanced configurations (Configurações avançadas ), selecione ** + Add variável de ambiente.
- Digite
ENABLE_FEATURE_TRACING
como nome do ambiente. - No campo à direita, digite
true
.
A seguir, um exemplo de criação de um endpoint de serviço usando a API REST POST /api/2.0/serving-endpoints
e o campo environment_vars
para configurar a variável de ambiente ENABLE_FEATURE_TRACING
.
{
"name": "endpoint-name",
"config": {
"served_entities": [
{
"entity_name": "model-name",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": "true",
"environment_vars": {
"ENABLE_FEATURE_TRACING": "true"
}
}
]
}
}
Adicionar variável de ambiente baseada em segredos
O senhor pode armazenar credenciais de forma segura usando segredos Databricks e fazer referência a esses segredos no modelo de serviço usando uma variável de ambiente baseada em segredos. Isso permite que as credenciais sejam obtidas do endpoint do modelo de atendimento no momento do atendimento.
Por exemplo, o senhor pode passar credenciais para chamar o OpenAI e outros endpoints de modelos externos ou acessar locais de armazenamento de dados externos diretamente do servindo modelo.
Databricks recomenda este recurso para implantar o OpenAI e LangChain MLflow e os sabores do modelo para servir. Também é aplicável a outros modelos do SaaS que exigem credenciais com o entendimento de que o padrão de acesso é baseado no uso de variável de ambiente e API key e tokens.
Etapa 1: Criar um escopo secreto
Durante o atendimento ao modelo, os segredos são recuperados de Databricks secrets pelo Secret Scope e key. Eles são atribuídos aos nomes secretos da variável de ambiente que podem ser usados no modelo.
Primeiro, crie um escopo secreto. Ver gerenciar Secret Scope.
Os seguintes são CLI comando:
databricks secrets create-scope my_secret_scope
Em seguida, o senhor pode adicionar seu segredo a um Secret Scope desejado e a key, 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 então ser passados para a configuração do endpoint durante a criação do endpoint ou como uma atualização da configuração de um endpoint existente.
Etapa 2: Adicionar o escopo secreto à configuração do site endpoint
O senhor pode adicionar o Secret Scope a uma variável de ambiente e passar essa variável para o site endpoint durante a criação do endpoint ou atualizações de configuração. Consulte Criar endpoint de modelo de serviço personalizado.
Na UI do Serving, o senhor pode adicionar uma variável de ambiente nas 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, um exemplo de criação de um endpoint de serviço usando a API REST. Durante a criação do modelo servindo endpoint e as atualizações de configuração, o senhor pode fornecer uma lista de especificações secretas de variável de ambiente para cada modelo servido dentro da solicitação API usando o campo environment_vars
.
O exemplo a seguir atribui o valor do segredo criado no código fornecido à variável de ambiente OPENAI_API_KEY
.
{
"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}}"
}
}
]
}
}
O senhor também pode atualizar um endpoint de serviço, como no exemplo a seguir da API REST do PUT /api/2.0/serving-endpoints/{name}/config
:
{
"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 site endpoint é criado ou atualizado, o servindo modelo obtém automaticamente a chave secreta do Databricks Secret Scope e preenche a variável de ambiente para que o código de inferência do modelo seja usado.
Notebook exemplo
Veja no Notebook a seguir um exemplo de como configurar um OpenAI API key para uma cadeia de controle de qualidade de recuperação LangChain implantada atrás do endpoint do modelo de serviço com variável de ambiente baseada em segredo.