Erstellen und verwalten Sie Modell-APIs (Modelldienste)

Erstellen Sie, teilen und verwalten Sie Ihre eigenen Modell-APIs (Modelldienste) in Unity Catalog.

Tip

Die vom System bereitgestellten Modell-APIs im Schema system.ai können ohne Einrichtung abgefragt werden. Erstellen Sie Ihre eigene Modell-API nur, wenn Sie zusätzliche Modelle steuern oder einen benutzerdefinierten Endpunkt bereitstellen möchten.

Requirements

  • Ein Azure Databricks Workspace in einer von Unity Gateway unterstützten Region.
  • Unity-Katalog für Ihren Arbeitsbereich aktiviert. Weitere Informationen finden Sie unter Aktivieren eines Arbeitsbereichs für Unity Catalog.
  • Zum Erstellen eines Modelldiensts benötigen Sie Folgendes:
    • USE CATALOG, USE SCHEMAund CREATE SERVICE im Katalog und Schema, in dem Sie den Modelldienst erstellen.
    • EXECUTE auf jedem Modell, auf das der Modelldienst als Ziel verweist.
    • EXECUTE, USE CATALOG und USE SCHEMA für jeden Modellanbieterdienst, auf den der Modelldienst als Ziel verweist.
    • USE CATALOG, USE SCHEMA und CREATE TABLE für den Katalog und das Schema, in denen die Inferenztabelle erstellt wird, wenn Sie die Inferenzprotokollierung aktivieren.

Erstellen eines Modelldiensts

Sie können einen Modelldienst in der Unity Gateway UI oder im Catalog Explorer erstellen oder programmatisch mit der REST API, den Azure Databricks SDKs, der Azure Databricks CLI oder Terraform.

Modelldienste und Modellanbieterdienste teilen einen namespace mit einem einzigen Namen innerhalb eines Unity-Katalogschemas. Sie können keinen Namen für einen Modelldienst verwenden, wenn ein Modellanbieterdienst im Schema es bereits verwendet und umgekehrt.

Benutzeroberfläche

  1. Führen Sie einen der folgenden Schritte aus:
    • Klicken Sie in der Arbeitsbereichs-Randleiste auf "AI-Gateway", und klicken Sie dann auf "Erstellen".
    • Wechseln Sie im Katalog-Explorer zu dem Schema, in dem Sie den Modelldienst erstellen möchten, und klicken Sie dann auf Erstellen>Dienst>Modelldienst.
  2. Geben Sie einen Namen für den Modelldienst ein, und wählen Sie den Katalog und das Schema aus, in dem er erstellt werden soll. Wenn Sie mit dem Katalog-Explorer beginnen, füllt der Katalog-Explorer den Katalog und das Schema vor.
  3. Wählen Sie das Hauptziel aus, das Sie bedienen möchten. Dieses Ziel kann ein von Databricks gehostetes Modell sein, für das Sie EXECUTE haben und das von Unity Gateway bereitgestellt werden kann, oder ein Modellanbieterdienst, für den Sie USE CATALOG, USE SCHEMA und EXECUTE haben.
  4. Klicken Sie auf "Erstellen".

Nachdem Sie den Modelldienst erstellt haben, öffnet Azure Databricks die Übersichtsseite, auf der Sie beginnen oder zusätzliche Features wie die Ableitungsprotokollierung konfigurieren können.

REST API

Senden Sie ein POST an /api/2.1/unity-catalog/model-services, wobei parent und model_service_id als Abfrageparameter übergeben werden. Die Routing-Konfiguration muss mindestens ein Ziel haben:

databricks api post \
  "/api/2.1/unity-catalog/model-services?parent=schemas/main.default&model_service_id=my_model_service" \
  --json '{
  "comment": "Routes chat traffic to a foundation model",
  "config": {
    "routing": {
      "destinations": [
        {
          "name": "primary",
          "destination_type": "DESTINATION_TYPE_PAY_PER_TOKEN_FOUNDATION_MODEL",
          "pay_per_token_config": { "model": "models/system.ai.databricks-gpt-5" },
          "traffic_percentage": 100
        }
      ]
    }
  }
}'

Befehlszeilenschnittstelle (CLI)

Übergeben Sie das übergeordnete Schema und einen Leaf-Namen und geben Sie die Konfiguration mit --json an. Die Routing-Konfiguration muss mindestens ein Ziel haben. Um die CLI zu installieren, siehe Installieren oder aktualisieren Sie die Databricks-CLI.

databricks ai-gateway create-model-service schemas/main.default my_model_service --json '{
  "comment": "Routes chat traffic to a foundation model",
  "config": {
    "routing": {
      "destinations": [
        {
          "name": "primary",
          "destination_type": "DESTINATION_TYPE_PAY_PER_TOKEN_FOUNDATION_MODEL",
          "pay_per_token_config": { "model": "models/system.ai.databricks-gpt-5" },
          "traffic_percentage": 100
        }
      ]
    }
  }
}'

Terraform

Erstellen und verwalten Sie einen Modelldienst mit dem Databricks Terraform-Anbieter und der databricks_ai_gateway_model_service-Ressource :

resource "databricks_ai_gateway_model_service" "example" {
  parent           = "schemas/main.default"
  model_service_id = "my_model_service"
  comment          = "Routes chat traffic to a foundation model"

  config = {
    routing = {
      destinations = [{
        name                 = "primary"
        destination_type     = "DESTINATION_TYPE_PAY_PER_TOKEN_FOUNDATION_MODEL"
        pay_per_token_config = { model = "models/system.ai.databricks-gpt-5" }
        traffic_percentage   = 100
      }]
    }
  }
}

Python SDK

Erstellen und verwalten Sie einen Modelldienst mit dem Databricks SDK für Python:

from databricks.sdk.service import catalog as c

model_service = w.ai_gateway.create_model_service(
    parent="schemas/main.default",
    model_service_id="my_model_service",
    model_service=c.ModelService(
        comment="Routes chat traffic to a foundation model",
        config=c.ModelServiceConfig(
            routing=c.ModelServiceConfigRoutingConfig(
                destinations=[
                    c.ModelServiceConfigDestinationConfig(
                        name="primary",
                        destination_type=(
                            c.ModelServiceConfigDestinationConfigDestinationType
                            .DESTINATION_TYPE_PAY_PER_TOKEN_FOUNDATION_MODEL
                        ),
                        pay_per_token_config=c.ModelServiceConfigPayPerTokenConfig(
                            model="models/system.ai.databricks-gpt-5"
                        ),
                        traffic_percentage=100,
                    )
                ]
            )
        ),
    ),
)

Go Software Development Kit (SDK)

Erstellen und verwalten Sie einen Modellservice mit dem Databricks SDK für Go:

modelService, err := w.AiGateway.CreateModelService(ctx, catalog.CreateModelServiceRequest{
	Parent:         "schemas/main.default",
	ModelServiceId: "my_model_service",
	ModelService: catalog.ModelService{
		Comment: "Routes chat traffic to a foundation model",
		Config: &catalog.ModelServiceConfig{
			Routing: &catalog.ModelServiceConfigRoutingConfig{
				Destinations: []catalog.ModelServiceConfigDestinationConfig{{
					Name:            "primary",
					DestinationType: catalog.ModelServiceConfigDestinationConfigDestinationTypeDestinationTypePayPerTokenFoundationModel,
					PayPerTokenConfig: &catalog.ModelServiceConfigPayPerTokenConfig{
						Model: "models/system.ai.databricks-gpt-5",
					},
					TrafficPercentage: 100,
				}},
			},
		},
	},
})

Java SDK

Erstellen und verwalten Sie einen Modelldienst mit dem Databricks SDK für Java:

ModelServiceConfig config =
    new ModelServiceConfig()
        .setRouting(
            new ModelServiceConfigRoutingConfig()
                .setDestinations(
                    Collections.singletonList(
                        new ModelServiceConfigDestinationConfig()
                            .setName("primary")
                            .setDestinationType(
                                ModelServiceConfigDestinationConfigDestinationType
                                    .DESTINATION_TYPE_PAY_PER_TOKEN_FOUNDATION_MODEL)
                            .setPayPerTokenConfig(
                                new ModelServiceConfigPayPerTokenConfig()
                                    .setModel("models/system.ai.databricks-gpt-5"))
                            .setTrafficPercentage(100L))));

ModelService modelService =
    w.aiGateway()
        .createModelService(
            new CreateModelServiceRequest()
                .setParent("schemas/main.default")
                .setModelServiceId("my_model_service")
                .setModelService(
                    new ModelService()
                        .setComment("Routes chat traffic to a foundation model")
                        .setConfig(config)));

JS SDK

Erstellen und verwalten Sie einen Modelldienst mit dem Databricks AI Gateway SDK für JavaScript:

import { ModelServiceConfig_DestinationConfig_DestinationType as DestType } from '@databricks/sdk-aigateway/v1';

const created = await client.createModelService({
  parent: 'schemas/main.default',
  modelServiceId: 'my_model_service',
  modelService: {
    comment: 'Routes chat traffic to a foundation model',
    config: {
      routing: {
        destinations: [
          {
            name: 'primary',
            destinationType: DestType.DESTINATION_TYPE_PAY_PER_TOKEN_FOUNDATION_MODEL,
            typeConfig: {
              $case: 'payPerTokenConfig',
              payPerTokenConfig: { model: 'models/system.ai.databricks-gpt-5' },
            },
            trafficPercentage: 100,
          },
        ],
      },
    },
  },
});

Gewähren des Zugriffs auf einen Modelldienst

Standardmäßig kann nur der Inhaber des Modelldienstes diese Abfrage durchführen. Damit andere einen Modellservice abfragen können, gewähren Sie ihnen EXECUTE für ihn sowie USE CATALOG und USE SCHEMA für seinen Katalog und sein Schema. Wenn der Modelldienst in eine Inferenztabelle protokolliert, gewähren Sie SELECT-Berechtigungen für die Tabelle, damit die protokollierten Anfragen und Antworten gelesen werden können.

Benutzeroberfläche

  1. Öffnen Sie den Modelldienst im Katalogexplorer oder gehen Sie zu AI Gateway und wählen Sie den Dienst aus.
  2. Wechseln Sie zur Registerkarte Berechtigungen.
  3. Klicken Sie auf Erlauben.
  4. Wählen Sie die Benutzer, Gruppen oder Dienstprinzipale aus, um Zugriff zu gewähren.
  5. Wählen Sie die EXECUTE-Berechtigung aus .
  6. Klicken Sie auf Erlauben.

REST API

databricks api patch \
  "/api/2.1/unity-catalog/permissions/model_service/main.default.my_model_service" \
  --json '{
    "changes": [
      { "principal": "data-team", "add": ["EXECUTE"] }
    ]
  }'

Befehlszeilenschnittstelle (CLI)

Gewähren Sie EXECUTE mit der Databricks-CLI. Um die CLI zu installieren, siehe Installieren oder aktualisieren Sie die Databricks-CLI.

databricks grants update model_service main.default.my_model_service \
  --json '{"changes": [{"principal": "data-team", "add": ["EXECUTE"]}]}'

Terraform

Grant EXECUTE mit dem Databricks Terraform-Anbieter und der databricks_grant Ressource:

resource "databricks_grant" "example" {
  model_service = "main.default.my_model_service"
  principal     = "data-team"
  privileges    = ["EXECUTE"]
}

Python SDK

Grant EXECUTE mit dem Databricks SDK für Python:

from databricks.sdk.service import catalog as c

w.grants.update(
    securable_type="model_service",
    full_name="main.default.my_model_service",
    changes=[c.PermissionsChange(principal="data-team", add=[c.Privilege.EXECUTE])],
)

Go Software Development Kit (SDK)

Grant EXECUTE mit dem Databricks SDK für Go:

_, err := w.Grants.Update(ctx, catalog.UpdatePermissions{
	SecurableType: "model_service",
	FullName:      "main.default.my_model_service",
	Changes: []catalog.PermissionsChange{{
		Principal: "data-team",
		Add:       []catalog.Privilege{catalog.PrivilegeExecute},
	}},
})

Java SDK

Grant EXECUTE mit dem Databricks SDK für Java:

w.grants().update(
    new UpdatePermissions()
        .setSecurableType("model_service")
        .setFullName("main.default.my_model_service")
        .setChanges(Arrays.asList(
            new PermissionsChange().setPrincipal("data-team").setAdd(Arrays.asList(Privilege.EXECUTE)))));

Weitere Informationen zum Gewähren und Entdecken von Zugang finden Sie unter Discover and Govern Access to Model APIs (Model Services).

Konfigurieren von Features in einem Modelldienst

Du konfigurierst Funktionen wie Rate-Limits, Inferenzprotokolle und Schutzmechanismen auf dem Modelldienst über die Unity Gateway-Benutzeroberfläche, genauso wie du sie auf einem Unity Gateway-Endpunkt konfigurierst. Siehe:

Inferenzprotokollierung

Wenn Sie die Ableitungsprotokollierung aktivieren, erstellt Azure Databricks eine neue, leere Unity-Katalogtabelle mit einem vordefinierten Schema an dem von Ihnen angegebenen Speicherort. Beachten Sie Folgendes:

  • Sie müssen über USE CATALOG, USE SCHEMA und CREATE TABLE für den Zielkatalog und das Zielschema verfügen.
  • Der Ersteller des Modelldiensts ist der Besitzer der Rückschlusstabelle. Keine anderen Benutzer haben Zugriff, es sei denn, Sie gewähren sie.
  • Wenn an dem angegebenen Speicherort bereits eine Tabelle vorhanden ist, schlägt das Erstellen des Modelldiensts fehl.
  • Die Ableitungstabelle verfügt über einen unabhängigen Lebenszyklus vom Modelldienst. Wenn Sie die Tabelle ablegen, funktioniert der Modelldienst weiterhin, aber die Protokollierung wird beendet.

Weitere Informationen zu Inferenztabellen finden Sie unter Log-Anfragen und Antworten auf Inferenztabellen.

Aktualisierung eines Modelldienstes

Sie müssen Eigentümer sein oder über MANAGE verfügen.

Benutzeroberfläche

Bearbeiten Sie die Konfiguration des Modelldienstes über die Unity Gateway UI oder den Catalog Explorer. Änderungen werden direkt übernommen.

REST API

databricks api patch \
  "/api/2.1/unity-catalog/model-services/main.default.my_model_service?update_mask=comment" \
  --json '{"comment": "Updated: routes chat traffic"}'

Befehlszeilenschnittstelle (CLI)

databricks ai-gateway update-model-service model-services/main.default.my_model_service comment \
  --json '{"comment": "Updated: routes chat traffic"}'

Terraform

Bearbeiten Sie databricks_ai_gateway_model_service (oder jedes andere änderbare Feld) in der Ressource comment und wenden Sie sie erneut an. Änderungen werden direkt übernommen.

Python SDK

from databricks.sdk.service import catalog as c
from google.protobuf.field_mask_pb2 import FieldMask

updated = w.ai_gateway.update_model_service(
    name="model-services/main.default.my_model_service",
    update_mask=FieldMask(paths=["comment"]),
    model_service=c.ModelService(comment="Updated: routes chat traffic"),
)

Go Software Development Kit (SDK)

updated, err := w.AiGateway.UpdateModelService(ctx, catalog.UpdateModelServiceRequest{
	Name:         "model-services/main.default.my_model_service",
	UpdateMask:   *fieldmask.New([]string{"comment"}),
	ModelService: catalog.ModelService{Comment: "Updated: routes chat traffic"},
})

Java SDK

ModelService updated =
    w.aiGateway()
        .updateModelService(
            new UpdateModelServiceRequest()
                .setName("model-services/main.default.my_model_service")
                .setUpdateMask(FieldMask.newBuilder().addPaths("comment").build())
                .setModelService(
                    new ModelService().setComment("Updated: routes chat traffic")));

JS SDK

import { modelServiceFieldMask } from '@databricks/sdk-aigateway/v1';

const updated = await client.updateModelService({
  modelService: {
    name: 'model-services/main.default.my_model_service',
    comment: 'Updated: routes chat traffic',
  },
  updateMask: modelServiceFieldMask('comment'),
});

Löschen eines Modelldiensts

Sie müssen Eigentümer sein oder über MANAGE verfügen. Die in system.ai vom System bereitgestellten Modelldienste können nicht gelöscht werden.

Benutzeroberfläche

Öffnen Sie den Modelldienst in der Unity Gateway UI oder im Catalog Explorer und wählen Sie im Kebab-Menü Löschen.

REST API

databricks api delete "/api/2.1/unity-catalog/model-services/main.default.my_model_service"

Befehlszeilenschnittstelle (CLI)

databricks ai-gateway delete-model-service model-services/main.default.my_model_service

Terraform

Führe terraform destroy aus, oder entferne den Ressourcenblock und wende ihn erneut an.

Python SDK

w.ai_gateway.delete_model_service(name="model-services/main.default.my_model_service")

Go Software Development Kit (SDK)

err := w.AiGateway.DeleteModelService(ctx, catalog.DeleteModelServiceRequest{
	Name: "model-services/main.default.my_model_service",
})

Java SDK

w.aiGateway()
    .deleteModelService(
        new DeleteModelServiceRequest().setName("model-services/main.default.my_model_service"));

JS SDK

await client.deleteModelService({ name: 'model-services/main.default.my_model_service' });

Nächste Schritte