Configure o acesso a recursos de endpoints de serviço de 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 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"
}
}]
}
}
Adicionar variável de ambiente baseada em segredos
O senhor pode armazenar credenciais com segurança 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, você pode passar credenciais para chamar OpenAI e outros endpoints de modelo externo ou acessar locais de armazenamento de dados externos diretamente do serviço de modelo.
A Databricks recomenda esse recurso para aprimorar os tipos de modelo OpenAI e LangChain MLflow para servir. Também é aplicável a outros modelos SaaS que requerem credenciais com o entendimento de que o padrão de acesso é baseado no uso de variável de ambiente e key de API e tokens.
o passo 1: Criar um Secret Scope
Durante o atendimento ao modelo, os segredos são recuperados dos segredos do site Databricks pelos sites 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
Você pode adicionar seu segredo a um Secret Scope e key de segredo desejados, conforme mostrado abaixo:
databricks secrets put-secret my_secret_scope my_secret_key
A informação secreta e o nome da variável de ambiente podem então ser passados para a configuração endpoint durante a criação endpoint ou como uma atualização para a configuração de um endpoint existente.
o passo 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 seu 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 de API PUT /api/2.0/serving-endpoints/{name}/config
REST a seguir:
{
"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 endpoint é criado ou atualizado, o serviço de modelo busca automaticamente a key secreta do Databricks Secret Scope e preenche a variável de ambiente para seu código de inferência de modelo usar.
exemplo Notebook
Consulte o Notebook a seguir para obter um exemplo de como configurar uma key de API OpenAI para uma cadeia de controle de qualidade de recuperação LangChain implantada atrás do endpoint de modelo envolvido com variável de ambiente baseada em segredo.