Konfigurera åtkomst till resurser från modell som betjänar slutpunkter
Den här artikeln beskriver hur du konfigurerar åtkomst till externa och privata resurser från modell som betjänar slutpunkter. Modellservern stöder miljövariabler för oformaterad text och hemligheterbaserade miljövariabler med databrickshemligheter.
Krav
För hemligheter baserade på miljövariabler,
- Slutpunktens skapare måste ha LÄS-åtkomst till De Databricks-hemligheter som refereras i konfigurationerna.
- Du måste lagra autentiseringsuppgifter som din API-nyckel eller andra token som en Databricks-hemlighet.
Lägga till miljövariabler för oformaterad text
Använd miljövariabler för oformaterad text för att ange variabler som inte behöver döljas. Du kan ange variabler i servergränssnittet eller REST-API:et när du skapar eller uppdaterar en slutpunkt.
Från användargränssnittet för servering kan du lägga till en miljövariabel i Avancerade konfigurationer:
Följande är ett exempel på hur du skapar en serverslutpunkt med hjälp av POST /api/2.0/serving-endpoints
REST-API:et environment_vars
och fältet för att konfigurera miljövariabeln.
{
"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"
}
}]
}
}
Lägga till hemligheter baserade på miljövariabler
Du kan lagra autentiseringsuppgifter på ett säkert sätt med hjälp av Databricks-hemligheter och referera till dessa hemligheter i en modell som betjänar med hjälp av en hemlighetsbaserad miljövariabler. Detta möjliggör att autentiseringsuppgifter kan hämtas från modellbetjäningsslutpunkter vid betjäningstid.
Du kan till exempel skicka autentiseringsuppgifter för att anropa OpenAI och andra externa modellslutpunkter eller komma åt externa lagringsplatser för data direkt från modellservern.
Databricks rekommenderar den här funktionen för att distribuera OpenAI - och LangChain MLflow-modellsmaker till servering. Det gäller även för andra SaaS-modeller som kräver autentiseringsuppgifter med insikten att åtkomstmönstret baseras på användning av miljövariabler och API-nycklar och token.
Steg 1: Skapa ett hemligt omfång
Under modellservering hämtas hemligheterna från Databricks-hemligheter av hemlighetens omfång och nyckel. Dessa tilldelas de hemliga miljövariabelnamnen som kan användas i modellen.
Skapa först ett hemligt omfång. Se Hantera hemliga omfång.
Följande är CLI-kommandon:
databricks secrets create-scope my_secret_scope
Du kan sedan lägga till din hemlighet i ett önskat hemligt omfång och nyckel enligt nedan:
databricks secrets put-secret my_secret_scope my_secret_key
Den hemliga informationen och namnet på miljövariabeln kan sedan skickas till slutpunktskonfigurationen när slutpunkten skapas eller som en uppdatering av konfigurationen av en befintlig slutpunkt.
Steg 2: Lägga till hemliga omfång i slutpunktskonfigurationen
Du kan lägga till det hemliga omfånget i en miljövariabel och skicka variabeln till slutpunkten när slutpunkten skapas eller konfigurationsuppdateringar skapas. Se Skapa anpassade modell som betjänar slutpunkter.
Från användargränssnittet för servering kan du lägga till en miljövariabel i Avancerade konfigurationer. Den hemlighetsbaserade miljövariabeln måste anges med hjälp av följande syntax: {{secrets/scope/key}}
. Annars betraktas miljövariabeln som en miljövariabel för oformaterad text.
Följande är ett exempel på hur du skapar en serverslutpunkt med hjälp av REST-API:et. Under modellserverns slutpunktsgenerering och konfigurationsuppdateringar kan du tillhandahålla en lista med specifikationer för hemliga miljövariabler för varje hanterad modell i API-begäran med hjälp av environment_vars
fältet.
I följande exempel tilldelas värdet från hemligheten som skapades i den angivna koden till miljövariabeln 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}}"
}
}]
}
}
Du kan också uppdatera en serverslutpunkt, som i följande PUT /api/2.0/serving-endpoints/{name}/config
REST API-exempel:
{
"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}}"
}
}]
}
När slutpunkten har skapats eller uppdaterats hämtar modellen som betjänar den hemliga nyckeln automatiskt från databrickshemlighetsomfånget och fyller i miljövariabeln som modellens slutsatsdragningskod ska använda.
Notebook-exempel
I följande notebook-fil finns ett exempel på hur du konfigurerar en OpenAI API-nyckel för en LangChain Retrieval QA-kedja som distribueras bakom modellen som betjänar slutpunkter med hemliga miljövariabler.