Maak en beheer model-API's (modelservices)

Maak, deel en beheer je eigen model-API's (modelservices) in Unity Catalog.

Tip

De door het systeem geleverde model-API’s in het system.ai-schema zijn klaar om zonder configuratie te bevragen. Maak je eigen model-API alleen wanneer je extra modellen wilt beheren of een aangepaste endpoint wilt openstellen.

Requirements

  • Een Azure Databricks-werkruimte in een Unity AI Gateway-ondersteunde regio.
  • Unity Catalog ingeschakeld voor uw werkruimte. Zie Een werkruimte inschakelen voor Unity Catalog.
  • Als u een modelservice wilt maken, moet u het volgende hebben:
    • USE CATALOG, USE SCHEMAen CREATE SERVICE in de catalogus en het schema waar u de modelservice maakt.
    • EXECUTE op elk model waarnaar de modelservice verwijst als een bestemming.
    • EXECUTE, USE CATALOG, en USE SCHEMA op elke modelproviderservice waarnaar de modelservice als doel verwijst.
    • USE CATALOG, USE SCHEMA en CREATE TABLE op de catalogus en het schema waarin de inferentietabel wordt gemaakt, als u inferentielogboekregistratie inschakelt.

Een modelservice maken

Je kunt een modelservice maken in de Unity AI Gateway UI of in Catalog Explorer, of programmatisch met de REST API, de Azure Databricks SDK's, de Azure Databricks CLI of Terraform.

Modelservices en modelproviderservices delen één naamruimte binnen een Unity Catalog-schema. U kunt geen naam voor een modelservice gebruiken als een modelproviderservice in het schema dit al gebruikt en omgekeerd.

UI (Gebruikersinterface)

  1. Ga op een van de volgende manieren te werk:
    • Klik in de zijbalk van de werkruimte op AI Gateway en klik vervolgens op Maken.
    • Ga in Catalog Explorer naar het schema waarin u de modelservice wilt maken en klik vervolgensop >Servicemodel>maken.
  2. Voer een naam in voor de modelservice en selecteer de catalogus en het schema waarin u deze wilt maken. Als u begint met Catalog Explorer, vult Catalog Explorer de catalogus en het schema vooraf in.
  3. Selecteer de primaire bestemming om te bedienen. Deze bestemming kan een door Databricks gehost model zijn waarop je EXECUTE en dat Unity AI Gateway kan aanbieden, of een modelproviderservice waarop je EXECUTE, USE CATALOG en USE SCHEMA hebt.
  4. Klik op Create.

Nadat u de modelservice hebt gemaakt, opent Azure Databricks de overzichtspagina, waar u aan de slag kunt gaan of aanvullende functies kunt configureren, zoals deductielogboekregistratie.

REST API

Stuur een POST naar /api/2.1/unity-catalog/model-services, waarbij model_service_id en parent als queryparameters worden doorgegeven. De routeringsconfiguratie moet minstens één bestemming hebben:

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

CLI

Geef het ouderschema en een leafnaam door, en lever de configuratie aan met --json. De routeringsconfiguratie moet minstens één bestemming hebben. Om de CLI te installeren, zie Installeren of bijwerken de 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

Maak en beheer een modelservice met de Databricks Terraform-provider en de databricks_ai_gateway_model_service resource:

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

Maak en beheer een modelservice met de Databricks SDK voor 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 Softwareontwikkelingskit

Maak en beheer een modelservice met de Databricks SDK voor 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

Maak en beheer een modelservice met de Databricks SDK voor 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

Maak en beheer een modelservice met de Databricks AI Gateway SDK voor 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,
          },
        ],
      },
    },
  },
});

Toegang verlenen tot een modelservice

Standaard kan alleen de eigenaar van de modelservice het opzoeken. Om anderen een modelservice te laten bevragen, verleent u hun USE CATALOG op die service, plus USE SCHEMA en EXECUTE op de catalogus en het schema ervan. Als de modelservice naar een inferentietabel logt, verleen dan SELECT op de tabel zodat de gelogde verzoeken en antwoorden kunnen worden gelezen.

UI (Gebruikersinterface)

  1. Open de modelservice in Catalog Explorer, of ga naar AI Gateway en selecteer de service.
  2. Ga naar het tabblad Machtigingen .
  3. Klik op Toestaan.
  4. Selecteer de gebruikers, groepen of service-principals om toegang te verlenen.
  5. Selecteer de execute-bevoegdheid .
  6. Klik op Toestaan.

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

Voor meer informatie over het verlenen van toegang en het verkrijgen van inzicht in toegang, zie Toegang tot model-API's ontdekken en beheren (modelservices).

Functies configureren in een modelservice

U configureert functies zoals frequentielimieten, deductielogboeken en kaders voor de modelservice vanuit de ui van de Unity AI Gateway, op dezelfde manier als u ze configureert op een Unity AI Gateway-eindpunt. See:

Logboekregistratie van inferentie

Wanneer u deductielogboekregistratie inschakelt, maakt Azure Databricks een nieuwe, lege Unity Catalog-tabel met een vooraf gedefinieerd schema op de locatie die u opgeeft. Houd rekening met het volgende:

  • U moet USE CATALOG, USE SCHEMA en CREATE TABLE hebben op de doelcatalogus en het schema.
  • De maker van de modelservice is de eigenaar van de inferentietabel. Geen andere gebruikers hebben toegang, tenzij u deze verleent.
  • Als er al een tabel bestaat op de opgegeven locatie, mislukt het maken van de modelservice.
  • De inferentietabel heeft een levenscyclus die onafhankelijk is van de modelservice. Als u de tabel verwijdert, blijft de modelservice werken, maar stopt deze met loggen.

Voor meer informatie over inferentietabellen, zie Logverzoeken en antwoorden op inferentietabellen.

Werk een modelservice bij

Je moet eigenaar zijn of over MANAGE beschikken.

UI (Gebruikersinterface)

Bewerk de configuratie van de modelservice vanuit de Unity AI Gateway UI of Catalog Explorer. Wijzigingen worden direct toegepast.

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

CLI

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

Terraform

Bewerk comment (of een ander veranderbaar veld) op de databricks_ai_gateway_model_service bron en breng opnieuw aan. Wijzigingen worden direct toegepast.

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 Softwareontwikkelingskit

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'),
});

Een modelservice verwijderen

Je moet eigenaar zijn of over MANAGE beschikken. Door het systeem aangeboden modelservices in system.ai kunnen niet worden verwijderd.

UI (Gebruikersinterface)

Open de modelservice in de Unity AI Gateway UI of Catalog Explorer en selecteer Verwijderen in het kebabmenu.

REST API

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

CLI

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

Terraform

Voer terraform destroyuit, of verwijder het resource block en breng het opnieuw toe.

Python SDK

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

Go Softwareontwikkelingskit

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' });

Volgende stappen