Compartir a través de


Configurar el acceso a recursos desde puntos de conexión de servicio de modelos

En este artículo se describe cómo configurar el acceso a recursos externos y privados desde puntos de conexión de servicio de modelos. El servicio de modelos admite variables de entorno de texto sin formato y variables de entorno basadas en secretos mediante secretos de Databricks.

Requisitos

En el caso de las variables de entorno basadas en secretos,

  • El creador del punto de conexión debe tener acceso de lectura a los secretos de Databricks a los que se hace referencia en las configuraciones.
  • Debe almacenar credenciales como la clave de API u otros tokens como secreto de Databricks.

Adición de variables de entorno de texto sin formato

Use variables de entorno de texto sin formato para establecer variables que no necesiten estar ocultas. Puede establecer variables en la interfaz de usuario de servicio o en la API REST al crear o actualizar un punto de conexión.

En la interfaz de usuario de servicio, puede agregar una variable de entorno en Configuraciones avanzadas:

Creación de un punto de conexión para servir modelos

A continuación se muestra un ejemplo para crear un punto de conexión de servicio mediante la API REST y el campo environment_vars para configurar la variable de entorno.


POST /api/2.0/serving-endpoints

{
  "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"
      }
    }]
   }
}

Adición de variables de entorno basadas en secretos

Puede almacenar de forma segura las credenciales mediante secretos de Databricks y hacer referencia a esos secretos en el servicio de modelos mediante variables de entorno basadas en secretos. Esto permite capturar las credenciales de los puntos de conexión de servicio del modelo en tiempo de servicio.

Por ejemplo, puede pasar credenciales para llamar a OpenAI y otros puntos de conexión de modelo externos o acceder a ubicaciones de almacenamiento de datos externos directamente desde el servicio de modelos.

Databricks recomienda esta característica para implementar los tipos de modelo de MLflow de OpenAI y LangChain en servicio. También es aplicable a otros modelos de SaaS que requieren credenciales con la comprensión de que el patrón de acceso se basa en el uso de variables de entorno y claves de API y tokens.

Paso 1: Creación de un ámbito de secreto

Durante el servicio de modelos, los secretos se recuperan de los secretos de Databricks mediante la clave y el ámbito de secreto. Estos se asignan a los nombres de variables de entorno de secreto que se pueden usar dentro del modelo.

En primer lugar, cree un ámbito de secreto. Consulte Ámbitos de secretos.

A continuación se muestran los comandos de la CLI:


databricks secrets create-scope my_secret_scope

Después, puede agregar el secreto a una clave y ámbito de secreto deseados, como se muestra a continuación:


databricks secrets put-secret my_secret_scope my_secret_key

La información del secreto y el nombre de la variable de entorno se pueden pasar a la configuración del punto de conexión durante la creación del punto de conexión o como una actualización de la configuración de un punto de conexión existente.

Paso 2: Adición de ámbitos de secretos a la configuración del punto de conexión

Puede agregar el ámbito de secretos a una variable de entorno y pasar esa variable al punto de conexión durante la creación o las actualizaciones de configuración del punto de conexión. Vea Creación de puntos de conexión de servicio de modelos personalizados.

En la interfaz de usuario de servicio, puede agregar una variable de entorno en las configuraciones avanzadas. La variable de entorno basada en secretos debe proporcionarse con la siguiente sintaxis: {{secrets/scope/key}}. De lo contrario, la variable de entorno se considera una variable de entorno de texto sin formato.

Creación de un punto de conexión para servir modelos

A continuación se muestra un ejemplo para crear un punto de conexión de servicio mediante la API REST. Durante las actualizaciones de configuración y creación de puntos de conexión de servicio del modelo, puede proporcionar una lista de especificaciones de variables de entorno de secreto para cada modelo servido dentro de la solicitud de API mediante el campo environment_vars.

En el ejemplo siguiente se asigna el valor del secreto creado en el código proporcionado a la variable de entorno OPENAI_API_KEY.


POST /api/2.0/serving-endpoints

{
  "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}}"
      }
    }]
   }
}

También puede actualizar un punto de conexión de servicio, como en el ejemplo de API REST siguiente:


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}}"
     }
   }]
}

Una vez creado o actualizado el punto de conexión, el modelo que sirve captura automáticamente la clave secreta del ámbito de secretos de Databricks y rellena la variable de entorno para el código de inferencia del modelo que se va a usar.

Ejemplo de cuaderno

Consulte el cuaderno siguiente para obtener un ejemplo de cómo configurar una clave de API de OpenAI para una cadena de control de calidad de recuperación de LangChain implementada detrás de los puntos de conexión de servicio del modelo con variables de entorno basadas en secretos.

Cuaderno de configuración del acceso a recursos desde puntos de conexión de servicio de modelos

Obtener el cuaderno