Freigeben über


Konfigurieren des Zugriffs auf Ressourcen über Modellbereitstellungsendpunkte

In diesem Artikel wird beschrieben, wie Sie den Zugriff auf externe und private Ressourcen über Model Serving-Endpunkte konfigurieren. Model Serving unterstützt Umgebungsvariablen mit Nur-Text sowie auf Geheimnisse basierende Umgebungsvariablen mithilfe von Databricks-Geheimnissen.

Anforderungen

Voraussetzungen für geheimnisbasierte Umgebungsvariablen:

  • Der Endpunktersteller muss über Lesezugriff auf die Databricks-Geheimnisse verfügen, auf die in den Konfigurationen verwiesen wird.
  • Sie müssen Anmeldeinformationen wie Ihren API-Schlüssel oder andere Token als Databricks-Geheimnis speichern.

Hinzufügen von Nur-Text-Umgebungsvariablen

Verwenden Sie Nur-Text-Umgebungsvariablen, um Variablen festzulegen, die nicht ausgeblendet werden müssen. Sie können Variablen auf der Model Serving-Benutzeroberfläche oder der REST-API festlegen, wenn Sie einen Endpunkt erstellen oder aktualisieren.

Über die Model Serving-Benutzeroberfläche können Sie eine Umgebungsvariable über Erweiterte Konfigurationen hinzufügen:

Erstellen eines Modellbereitstellungsendpunkts

Im Folgenden sehen Sie ein Beispiel zum Erstellen eines Dienstendpunkts mithilfe der REST-API und des Felds environment_vars zum Konfigurieren Ihrer Umgebungsvariable.


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

Hinzufügen geheimnisbasierter Umgebungsvariablen

Sie können Anmeldeinformationen sicher mithilfe von Databricks-Geheimnissen speichern und bei der Modellbereitstellung mithilfe von geheimnisbasierten Umgebungsvariablen auf diese Geheimnisse verweisen. Dadurch können Anmeldeinformationen zur Bereitstellungszeit von Modellbereitstellungsendpunkten abgerufen werden.

Sie können beispielsweise Anmeldeinformationen übergeben, um OpenAI und andere externe Modellendpunkte aufzurufen oder direkt über die Modellbereitstellung auf externe Datenspeicherorte zuzugreifen.

Databricks empfiehlt dieses Feature für die Bereitstellung von OpenAI- und LangChain-MLflow-Modellvarianten für die Bereitstellung. Es gilt auch für andere SaaS-Modelle, die Anmeldeinformationen erfordern, wobei das Zugriffsmuster auf der Verwendung von Umgebungsvariablen und API-Schlüsseln und Token basiert.

Schritt 1: Erstellen eines Geheimnisbereichs

Während der Modellbereitstellung werden die Geheimnisse aus Databricks-Geheimnissen durch den Geheimnisbereich und -Schlüssel abgerufen. Diese werden den Namen der geheimen Umgebungsvariablen zugewiesen, die innerhalb des Modells verwendet werden können.

Erstellen Sie zunächst einen Geheimnisbereich. Weitere Informationen finden Sie unter Geheimnisbereiche.

Im Folgenden sind CLI-Befehle aufgeführt:


databricks secrets create-scope my_secret_scope

Anschließend können Sie Ihr Geheimnis einem gewünschten Geheimnisbereich und Schlüssel hinzufügen, wie unten gezeigt:


databricks secrets put-secret my_secret_scope my_secret_key

Die Geheimnisinformationen und der Name der Umgebungsvariablen können dann während der Endpunkterstellung oder als Aktualisierung der Konfiguration eines vorhandenen Endpunkts an Ihre Endpunktkonfiguration übergeben werden.

Schritt 2: Hinzufügen von Geheimnisbereichen zur Endpunktkonfiguration

Sie können den Geheimnisbereich einer Umgebungsvariable hinzufügen und diese Variable während der Endpunkterstellung oder Konfigurationsupdates an Ihren Endpunkt übergeben. Weitere Informationen finden Sie unter Erstellen von benutzerdefinierten Model Serving-Endpunkten.

Über die Model Serving-Benutzeroberfläche können Sie eine Umgebungsvariable über Erweiterte Konfigurationen hinzufügen. Die geheimnisbasierte Umgebungsvariable muss mithilfe der folgenden Syntax bereitgestellt werden: {{secrets/scope/key}}. Andernfalls wird die Umgebungsvariable als Nur-Text-Umgebungsvariable betrachtet.

Erstellen eines Modellbereitstellungsendpunkts

Im Folgenden finden Sie ein Beispiel zum Erstellen eines Bereitstellungsendpunkts mithilfe der REST-API. Während des Modells, das Endpunkterstellung und Konfigurationsupdates bereitstellt, können Sie eine Liste der Spezifikationen für geheime Umgebungsvariablen für jedes bereitgestellte Modell innerhalb der API-Anforderung mithilfe des Felds environment_vars bereitstellen.

Im folgenden Beispiel wird der Wert aus dem im bereitgestellten Code erstellten Geheimnis der Umgebungsvariablen OPENAI_API_KEY zugewiesen.


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

Sie können auch einen Bereitstellungsendpunkt aktualisieren, wie im folgenden Beispiel mit REST-API gezeigt:


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

Nachdem der Endpunkt erstellt oder aktualisiert wurde, ruft die Modellbereitstellung automatisch den geheimen Schlüssel aus dem Databricks-Geheimnisbereich ab und füllt die Umgebungsvariable für den zu verwendenden Modellrückschlusscode auf.

Notebookbeispiel

Im folgenden Notebook sehen Sie ein Beispiel für das Konfigurieren eines OpenAI-API-Schlüssels für eine LangChain-Abruf-QA-Kette, die hinter dem Modell bereitgestellt wird und Endpunkte mit Geheimnis-basierten Umgebungsvariablen bedient.

Notebook: Konfigurieren des Zugriffs auf Ressourcen über Modellbereitstellungsendpunkte

Notebook abrufen