Dela via


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:

Skapa en modell som betjänar slutpunkten

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 gör att autentiseringsuppgifter kan hämtas från modell som betjänar slutpunkter vid serveringstiden.

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 Hemlighetsomfå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.

Skapa en modell som betjänar slutpunkten

Följande är ett exempel på hur du skapar en serverslutpunkt med hjälp av REST-API:et. Under modellserverns slutpunktsskapande och konfigurationsuppdateringar kan du ange 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.

Konfigurera åtkomst till resurser från notebook-filen för modell som betjänar slutpunkter

Hämta notebook-fil