Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt beschreven hoe u toegang tot externe en privébronnen configureert vanuit het model dat eindpunten bedient. Model Serving ondersteunt omgevingsvariabelen met tekst zonder opmaak en omgevingsvariabelen op basis van geheimen met behulp van Databricks-geheimen.
Vereisten
Voor omgevingsvariabelen op basis van geheimen,
- De maker van het eindpunt moet leestoegang hebben tot de Databricks-geheimen waarnaar wordt verwezen in de configuraties.
- U moet referenties, zoals uw API-sleutel of andere tokens, opslaan als een Databricks-geheim.
Omgevingsvariabelen voor tekst zonder opmaak toevoegen
Gebruik omgevingsvariabelen voor tekst zonder opmaak om variabelen in te stellen die niet hoeven te worden verborgen. U kunt variabelen instellen in de gebruikersinterface van De server, de REST API of de SDK wanneer u een eindpunt maakt of bijwerkt.
Gebruikersinterface leveren
Vanuit de servergebruikersinterface kunt u een omgevingsvariabele toevoegen in geavanceerde configuraties:
REST API
Hier volgt een voorbeeld voor het maken van een service-eindpunt met behulp van de POST /api/2.0/serving-endpoints REST API en het veld voor het environment_vars configureren van uw omgevingsvariabele.
{
"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
Hier volgt een voorbeeld voor het maken van een service-eindpunt met behulp van de WorkspaceClient SDK en het veld voor het environment_vars configureren van uw omgevingsvariabele.
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"
}
)
]
)
)
MLflow Deployments SDK
Hier volgt een voorbeeld voor het maken van een service-eindpunt met behulp van de Mlflow Deployments SDK en het veld voor het environment_vars configureren van uw omgevingsvariabele.
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"
}
}
]
}
)
Logboekfunctie opzoeken van DataFrames naar deductietabellen
Als u inferentietabellen hebt ingeschakeld voor uw eindpunt, kunt u uw gegevensframe voor automatische kenmerkopzoeking in die inferentietabel registreren met behulp van ENABLE_FEATURE_TRACING. Hiervoor is MLflow 2.14.0 of hoger vereist.
Instellen ENABLE_FEATURE_TRACING als een omgevingsvariabele in de Serverinterface, REST API of SDK wanneer u een eindpunt maakt of bijwerkt.
Gebruikersinterface leveren
- Selecteer in Geavanceerde configuraties** + Omgevingsvariabelen toevoegen**.
- Typ
ENABLE_FEATURE_TRACINGals de naam van de omgeving. - Typ
truein het veld aan de rechterkant.
REST API
Hier volgt een voorbeeld voor het maken van een service-eindpunt met behulp van de POST /api/2.0/serving-endpoints REST API en het veld environment_vars om de omgevingsvariabele ENABLE_FEATURE_TRACING te configureren.
{
"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
Hier volgt een voorbeeld voor het maken van een service-eindpunt met behulp van de WorkspaceClient SDK en het veld voor het environment_vars configureren van de ENABLE_FEATURE_TRACING omgevingsvariabele.
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"
}
)
]
)
)
MLflow Deployments SDK
Hier volgt een voorbeeld voor het maken van een service-eindpunt met behulp van de Mlflow Deployments SDK en het veld voor het environment_vars configureren van de ENABLE_FEATURE_TRACING omgevingsvariabele.
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"
}
}
]
}
)
Omgevingsvariabelen op basis van geheimen toevoegen
U kunt referentiegegevens veilig opslaan met behulp van Databricks-geheimen en naar die geheimen verwijzen bij het bedienen van modellen met behulp van omgevingvariabelen die op geheimen zijn gebaseerd. Hierdoor kunnen inloggegevens worden opgehaald van modelbedieningseindpunten op het moment van bediening.
U kunt bijvoorbeeld referenties doorgeven om OpenAI en andere eindpunten voor externe modellen aan te roepen of toegang te krijgen tot externe gegevensopslaglocaties rechtstreeks vanuit de service van het model.
Databricks raadt deze functie aan voor het uitrollen van OpenAI- en LangChain MLflow-modelsmaken voor serveren. Het is ook van toepassing op andere SaaS-modellen waarvoor referenties zijn vereist, met het inzicht dat het toegangspatroon is gebaseerd op het gebruik van omgevingsvariabelen en API-sleutels en tokens.
Stap 1: Een geheim bereik maken
Tijdens het leveren van modellen worden de geheimen opgehaald uit Databricks-geheimen door het geheime bereik en de sleutel. Deze worden toegewezen aan de namen van de geheime omgevingsvariabelen die in het model kunnen worden gebruikt.
Maak eerst een geheime scope. Zie Geheime bereiken beheren.
Hier volgen CLI-opdrachten:
databricks secrets create-scope my_secret_scope
Vervolgens kunt u uw geheim toevoegen aan een gewenst geheimbereik en -sleutel, zoals hieronder wordt weergegeven:
databricks secrets put-secret my_secret_scope my_secret_key
De geheime informatie en de naam van de omgevingsvariabele kunnen vervolgens worden doorgegeven aan uw eindpuntconfiguratie tijdens het maken van het eindpunt of als een update van de configuratie van een bestaand eindpunt.
Stap 2: Geheime bereiken toevoegen aan eindpuntconfiguratie
U kunt het geheime bereik toevoegen aan een omgevingsvariabele en die variabele doorgeven aan uw eindpunt tijdens het maken van eindpunten of configuratie-updates. Zie Aangepast model maken voor eindpunten.
Gebruikersinterface leveren
Vanuit de gebruikersinterface van De server kunt u een omgevingsvariabele toevoegen in geavanceerde configuraties. De omgevingsvariabele op basis van geheimen moet worden opgegeven met behulp van de volgende syntaxis: {{secrets/scope/key}}. Anders wordt de omgevingsvariabele beschouwd als een platte tekst omgevingsvariabele.
REST API
Hier volgt een voorbeeld voor het maken van een service-eindpunt met behulp van de REST API. Tijdens het maken van het model voor eindpunten en configuratie-updates kunt u een lijst met geheime omgevingsvariabelespecificaties opgeven voor elk geleverd model in de API-aanvraag met behulp van environment_vars veld.
In het volgende voorbeeld wordt de waarde toegewezen van het geheim dat in de opgegeven code is gemaakt aan de omgevingsvariabele 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}}"
}
}
]
}
}
U kunt ook een service-eindpunt bijwerken, zoals in het volgende PUT /api/2.0/serving-endpoints/{name}/config REST API-voorbeeld:
{
"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
Hier volgt een voorbeeld voor het maken van een dienend eindpunt met behulp van de WorkspaceClient SDK. Tijdens het maken van het model voor eindpunten en configuratie-updates kunt u een lijst met geheime omgevingsvariabelespecificaties opgeven voor elk geleverd model in de API-aanvraag met behulp van environment_vars veld.
In het volgende voorbeeld wordt de waarde toegewezen van het geheim dat in de opgegeven code is gemaakt aan de omgevingsvariabele 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}}"
}
)
]
)
)
MLflow Deployments SDK
Hier volgt een voorbeeld voor het maken van een service-eindpunt met behulp van de Mlflow Deployments SDK. Tijdens het maken van het model voor eindpunten en configuratie-updates kunt u een lijst met geheime omgevingsvariabelespecificaties opgeven voor elk geleverd model in de API-aanvraag met behulp van environment_vars veld.
In het volgende voorbeeld wordt de waarde toegewezen van het geheim dat in de opgegeven code is gemaakt aan de omgevingsvariabele 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}}"
}
}
]
}
)
Nadat het eindpunt is gemaakt of bijgewerkt, haalt modelserve automatisch de geheime sleutel op uit het Databricks-geheimenbereik en vult het de omgevingsvariabele in voor uw modeldeductiecode om te gebruiken.
Voorbeeld van notitieblok
Zie het volgende notebook voor een voorbeeld van hoe u een OpenAI-API-sleutel configureert voor een LangChain Retrieval QA-keten die is geïmplementeerd achter de modellendiens-eindpunten met geheim-gebaseerde omgevingsvariabelen.