Sdílet prostřednictvím


Konfigurace přístupu k prostředkům z modelů obsluhujících koncové body

Tento článek popisuje, jak nakonfigurovat přístup k externím a privátním prostředkům z modelů obsluhujících koncové body. Obsluha modelu podporuje proměnné prostředí ve formátu prostého textu a proměnné prostředí založené na tajných kódech založených na tajných kódech Databricks.

Požadavky

Pro proměnné prostředí založené na tajných kódech:

  • Tvůrce koncového bodu musí mít přístup pro čtení k tajným kódům Databricks, na které se odkazuje v konfiguracích.
  • Přihlašovací údaje, jako je klíč rozhraní API nebo jiné tokeny, musíte uložit jako tajný klíč Databricks.

Přidání proměnných prostředí ve formátu prostého textu

Proměnné prostředí ve formátu prostého textu slouží k nastavení proměnných, které nemusí být skryté. Proměnné můžete nastavit v uživatelském rozhraní obsluhy, rozhraní REST API nebo sadě SDK při vytváření nebo aktualizaci koncového bodu.

Obsluha uživatelského rozhraní

V uživatelském rozhraní obsluhy můžete přidat proměnnou prostředí v rozšířených konfiguracích:

Vytvoření koncového bodu obsluhy modelu

REST API

Následuje příklad vytvoření koncového bodu obsluhy pomocí POST /api/2.0/serving-endpoints rozhraní REST API a environment_vars pole pro konfiguraci proměnné prostředí.

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

WorkspaceClient SDK

Následuje příklad vytvoření obslužného koncového bodu pomocí sady WorkspaceClient SDK a pole environment_vars ke konfiguraci proměnné prostředí.

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ServedEntityInput, EndpointCoreConfigInput, ServingModelWorkloadType

w = WorkspaceClient()

endpoint_name = "example-add-model"
model_name = "main.default.addmodel"
w.serving_endpoints.create_and_wait(
    name=endpoint_name,
    config=EndpointCoreConfigInput(
        served_entities=[
            ServedEntityInput(
                entity_name = model_name,
                entity_version = "2",
                workload_type = ServingModelWorkloadType("CPU"),
                workload_size = "Small",
                scale_to_zero_enabled = False,
                environment_vars = {
                    "MY_ENV_VAR": "value_to_be_injected",
                    "ADS_TOKEN": "abcdefg-1234"
                }
            )
        ]
    )
)

Sada SDK pro nasazení MLflow

Následuje příklad vytvoření koncového bodu obsluhy pomocí sady MLflow Deployments SDK a environment_vars pole pro konfiguraci proměnné prostředí.

from mlflow.deployments import get_deploy_client

client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
    name="unity-catalog-model-endpoint",
    config={
        "served_entities": [
            {
                "name": "ads-entity"
                "entity_name": "catalog.schema.my-ads-model",
                "entity_version": "3",
                "workload_size": "Small",
                "scale_to_zero_enabled": True,
                "environment_vars": {
                    "MY_ENV_VAR": "value_to_be_injected",
                    "ADS_TOKEN": "abcdefg-1234"
                }
            }
        ]
    }
)

Vyhledávací datové rámce funkcí protokolu pro odvozování tabulek

Pokud máte na koncovém bodu povolené tabulky odvozování, můžete do této odvozovací tabulky protokolovat datový rámec automatického vyhledávání funkcí pomocí ENABLE_FEATURE_TRACING. To vyžaduje MLflow 2.14.0 nebo vyšší.

Při vytváření nebo aktualizaci koncového bodu nastavte ENABLE_FEATURE_TRACING jako proměnnou prostředí v uživatelském rozhraní obsluhy, rozhraní REST API nebo sadě SDK.

Obsluha uživatelského rozhraní

  1. V rozšířených konfiguracích vyberte ** + Přidat proměnné prostředí**.
  2. Zadejte ENABLE_FEATURE_TRACING jako název prostředí.
  3. Do pole vpravo zadejte true.

Vytvoření koncového bodu obsluhy modelu

REST API

Následuje příklad vytvoření služebního koncového bodu pomocí POST /api/2.0/serving-endpoints rozhraní REST API a environment_vars pole k konfiguraci ENABLE_FEATURE_TRACING proměnné prostředí.

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

WorkspaceClient SDK

Následuje příklad vytvoření koncového bodu obsluhy s použitím SDK WorkspaceClient a pole environment_vars pro konfiguraci proměnné prostředí ENABLE_FEATURE_TRACING.

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ServedEntityInput, EndpointCoreConfigInput, ServingModelWorkloadType

w = WorkspaceClient()

endpoint_name = "example-add-model"
model_name = "main.default.addmodel"
w.serving_endpoints.create_and_wait(
    name=endpoint_name,
    config=EndpointCoreConfigInput(
        served_entities=[
            ServedEntityInput(
                entity_name = model_name,
                entity_version = "2",
                workload_type = ServingModelWorkloadType("CPU"),
                workload_size = "Small",
                scale_to_zero_enabled = False,
                environment_vars = {
                    "ENABLE_FEATURE_TRACING": "true"
                }
            )
        ]
    )
)

Sada SDK pro nasazení MLflow

Následuje příklad, jak vytvořit koncový bod obsluhy pomocí MLflow Deployments SDK a environment_vars pole pro konfiguraci proměnné prostředí ENABLE_FEATURE_TRACING.

from mlflow.deployments import get_deploy_client

client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
    name="unity-catalog-model-endpoint",
    config={
        "served_entities": [
            {
                "name": "ads-entity"
                "entity_name": "catalog.schema.my-ads-model",
                "entity_version": "3",
                "workload_size": "Small",
                "scale_to_zero_enabled": True,
                "environment_vars": {
                    "ENABLE_FEATURE_TRACING": "true"
                }
            }
        ]
    }
)

Přidání proměnných prostředí založených na tajných kódech

Přihlašovací údaje můžete bezpečně ukládat pomocí tajných kódů Databricks a odkazovat na tyto tajné kódy v modelu, který slouží pomocí proměnných prostředí založených na tajných kódech. To umožňuje načtení přihlašovacích údajů z modelů obsluhujících koncové body v době obsluhy.

Můžete například předat přihlašovací údaje pro volání OpenAI a dalších koncových bodů externích modelů nebo přístup přímo ze služby modelu k externím úložním místům dat.

Databricks doporučuje tuto funkci pro nasazení modelů OpenAI a LangChain MLflow do obsluhy. Platí také pro jiné modely SaaS, které vyžadují přihlašovací údaje s pochopením, že vzor přístupu je založený na používání proměnných prostředí a klíčů a tokenů rozhraní API.

Krok 1: Vytvoření oboru tajných kódů

Během poskytování modelu se tajné kódy načítají z tajných kódů Databricks podle oboru tajných kódů a klíče. Tyto proměnné se přiřazují k názvům tajných proměnných prostředí, které je možné použít v modelu.

Nejprve vytvořte obor tajného kódu. Viz Správa oborů tajných kódů.

Toto jsou příkazy rozhraní příkazového řádku:


databricks secrets create-scope my_secret_scope

Pak můžete přidat tajný kód do požadovaného oboru tajného kódu a klíče, jak je znázorněno níže:


databricks secrets put-secret my_secret_scope my_secret_key

Tajné informace a názvy proměnných prostředí jsou pak možné předat konfiguraci koncového bodu během jeho vytvoření nebo jako aktualizaci konfigurace pro existující koncový bod.

Krok 2: Přidání oborů tajných kódů do konfigurace koncového bodu

Rozsah tajného kódu můžete přidat do proměnné prostředí a předat tuto proměnnou do koncového bodu během vytváření nebo aktualizací konfigurace koncového bodu. Viz Vytvoření vlastních modelů obsluhujících koncové body.

Obsluha uživatelského rozhraní

V uživatelském rozhraní obsluhy můžete přidat proměnnou prostředí v rozšířených konfiguracích. Proměnná prostředí založená na tajných kódech musí být poskytována pomocí následující syntaxe: {{secrets/scope/key}}. Jinak se proměnná prostředí považuje za proměnnou prostředí ve formátu prostého textu.

Vytvoření koncového bodu obsluhy modelu

REST API

Následuje příklad vytvoření koncového bodu obsluhy pomocí rozhraní REST API. Během vytváření a aktualizací konfigurace koncového bodu obsluhy modelu můžete poskytnout seznam specifikací proměnných tajných prostředí pro každý obsluhovaný model v požadavku rozhraní API pomocí pole environment_vars.

Následující příklad přiřadí hodnotu z tajného kódu vytvořeného v zadaném kódu proměnné prostředí 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}}"
        }
      }
    ]
  }
}

Můžete také aktualizovat koncový bod obsluhy, jak je znázorněno v následujícím příkladu PUT /api/2.0/serving-endpoints/{name}/config rozhraní REST API:

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

WorkspaceClient SDK

Následuje příklad vytvoření koncového bodu obsluhy pomocí sady WorkspaceClient SDK. Během vytváření a aktualizací konfigurace koncového bodu obsluhy modelu můžete poskytnout seznam specifikací proměnných tajných prostředí pro každý obsluhovaný model v požadavku rozhraní API pomocí pole environment_vars.

Následující příklad přiřadí hodnotu z tajného kódu vytvořeného v zadaném kódu proměnné prostředí OPENAI_API_KEY.

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ServedEntityInput, EndpointCoreConfigInput, ServingModelWorkloadType

w = WorkspaceClient()

endpoint_name = "example-add-model"
model_name = "main.default.addmodel"
w.serving_endpoints.create_and_wait(
    name=endpoint_name,
    config=EndpointCoreConfigInput(
        served_entities=[
            ServedEntityInput(
                entity_name = model_name,
                entity_version = "2",
                workload_type = ServingModelWorkloadType("CPU"),
                workload_size = "Small",
                scale_to_zero_enabled = False,
                environment_vars = {
                    "OPENAI_API_KEY": "{{secrets/my_secret_scope/my_secret_key}}"
                }
            )
        ]
    )
)

Sada SDK pro nasazení MLflow

Následuje příklad vytvoření koncového bodu obsluhy pomocí sady Mlflow Deployments SDK. Během vytváření a aktualizací konfigurace koncového bodu obsluhy modelu můžete poskytnout seznam specifikací proměnných tajných prostředí pro každý obsluhovaný model v požadavku rozhraní API pomocí pole environment_vars.

Následující příklad přiřadí hodnotu z tajného kódu vytvořeného v zadaném kódu proměnné prostředí OPENAI_API_KEY.

from mlflow.deployments import get_deploy_client

client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
    name="unity-catalog-model-endpoint",
    config={
        "served_entities": [
            {
                "name": "ads-entity"
                "entity_name": "catalog.schema.my-ads-model",
                "entity_version": "3",
                "workload_size": "Small",
                "scale_to_zero_enabled": True,
                "environment_vars": {
                    "OPENAI_API_KEY": "{{secrets/my_secret_scope/my_secret_key}}"
                }
            }
        ]
    }
)

Po vytvoření nebo aktualizaci koncového bodu model, který obsluhuje, automaticky načte tajný klíč z oboru tajných kódů Databricks a naplní proměnnou prostředí pro použití kódu odvozování modelu.

Příklad poznámkového bloku

Příklad konfigurace klíče rozhraní API OpenAI pro řetězec kontroly načítání LangChain nasazený za modelem obsluhující koncové body s proměnnými prostředí založeném na tajných klíčích najdete v následujícím poznámkovém bloku.

Konfigurace přístupu k prostředkům z poznámkového bloku obsluhující koncové body modelu

Pořiďte si notebook