Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Modelldienst ist ein Endpunkt, der Inferenzanfragen für ein oder mehrere Modelle verarbeitet und weiterleitet, mit Verkehrsaufteilung und Fallbacks. Es unterstützt Echtzeit-Anfragen sowie Batch-Inferenz.
Erstellen Sie einen benutzerdefinierten Modelldienst für Anwendungsfälle wie:
- Ein modellunabhängiger Endpunkt für eine Anwendung. Bieten Sie einem Kundensupport-Assistenten einen Service namens
production.ai.support-assistant. Ändern Sie das zugrunde liegende Modell, ohne den Namen zu ändern, den die Anwendung verwendet. - Benutzerdefiniertes Routing und Rückfallpläne. Verwenden Sie Verkehrsaufteilung , um 10% Verkehr an ein neues Modell zu senden, bevor ein breiterer Rollout erfolgt, oder konfigurieren Sie ein Backup-Ziel für fehlgeschlagene Anfragen.
- Ein Budget für eine Arbeitslast. Kennzeichnen Sie einen Dienst mit
project=support-assistantund ordnen Sie dieser Kennzeichnung ein monatliches Budget zu, mit einer Warnung bei Ausgaben von 1.000 $. - Zugangskontrollen für ein Team. Gewähren Sie dem Rechtsteam und seinen Anwendungsdienstleitern Zugang zu einem
legal-reviewDienst und nutzen Sie separate Dienste für andere Teams. - Ratenbegrenzungen für eine Arbeitsbelastung. Konfigurieren Sie einen Testdienst für 100 Anfragen pro Minute und einen Produktionsdienst für 1.000 Anfragen pro Minute unter Verwendung von Service-Rate-Grenzen.
- Getrennte Überwachung und Protokolle. Senden Sie die Anfragen und Antworten eines Support-Assistenten an eine dedizierte Inferenztabelle , damit dessen Verkehr getrennt vom Verkehr des Coding-Agenten überprüft werden kann.
Um ein von Azure Databricks bedientes Foundation-Modell abzufragen, ohne einen Dienst zu erstellen, verwenden Sie einen systembereitgestellten Modelldienst in system.ai.
Ein Dienst kann zu Azure Databricks-Served-Modellen routen, indem er Pay-per-Token oder provisioned Throughput verwendet, oder über einen Modellanbieter zu externen Modellen. Du kannst diese Ziele in einem Dienst kombinieren.
Benutzerdefinierte Modelldienste sind sicherungsfähige Objekte im Unity Catalog. Aufrufer rufen sie mit ihrem vollständig qualifizierten Namen, catalog.schema.name, arbeitsbereichsübergreifend oder von außerhalb von Azure Databricks auf. Siehe Verwaltung und Privilegien.
Requirements
Hinweis
Unity Gateway wird auf Azure Government nicht unterstützt.
- 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 SCHEMAundCREATE SERVICEim Katalog und Schema, in dem Sie den Modelldienst erstellen. -
EXECUTEauf jedem Modell, auf das der Modelldienst als Ziel verweist. -
EXECUTE,USE CATALOGundUSE SCHEMAfür jeden Modellanbieter, den der Modellservice als Ziel referenziert. -
USE CATALOG,USE SCHEMAundCREATE TABLEfür den Katalog und das Schema, in denen die Inferenztabelle erstellt wird, wenn Sie die Inferenzprotokollierung aktivieren.
-
Erstellen Sie einen benutzerdefinierten Modellservice
Erstellen Sie einen Modelldienst in der Unity Gateway UI oder im Catalog Explorer. Um eines programmatisch zu erstellen, verwenden Sie die REST API, die Azure Databricks SDKs, die Azure Databricks CLI, Terraform oder Declarative Automation Bundles (DABs).
Modelldienste und Modellanbieter teilen sich einen einzigen Namensraum innerhalb eines Unity-Katalog-Schemas. Man kann keinen Namen für einen Modelldienst verwenden, wenn ein Modellanbieter im Schema ihn bereits verwendet, und umgekehrt.
Benutzeroberfläche
- 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.
- 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.
- Wählen Sie das Hauptziel aus, das Sie bedienen möchten. Dieses Ziel kann ein von Azure Databricks bereitgestelltes Modell sein, für das Sie
EXECUTEhaben und das von Unity Gateway bereitgestellt werden kann, oder ein Modellanbieter, für den SieUSE CATALOG,USE SCHEMAundEXECUTEhaben. - Klicke 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
}
]
}
}
}'
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
}]
}
}
}
DABs (Beta)
Definiere den Modelldienst in einem Bundle und bereite ihn mit databricks bundle deployaus. Die Routing-Konfiguration muss mindestens ein Ziel haben:
resources:
model_services:
my_model_service:
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,
}},
},
},
},
})
Go Modular SDK
Erstellen und verwalten Sie einen Modelldienst mit dem Databricks AI Gateway SDK für Go. Optionale Felder sind Zeiger, daher verwendet das Beispiel einen einzeiligen Helfer, func ptr[T any](v T) *T { return &v }.
modelService, err := c.CreateModelService(ctx, aigateway.CreateModelServiceRequest{
Parent: ptr("schemas/main.default"),
ModelServiceId: ptr("my_model_service"),
ModelService: &aigateway.ModelService{
Comment: ptr("Routes chat traffic to a foundation model"),
Config: &aigateway.ModelServiceConfig{
Routing: &aigateway.ModelServiceConfig_RoutingConfig{
Destinations: []aigateway.ModelServiceConfig_DestinationConfig{{
Name: ptr("primary"),
DestinationType: aigateway.ModelServiceConfig_DestinationConfig_DestinationType_DestinationTypePayPerTokenFoundationModel,
TrafficPercentage: ptr(100),
TypeConfig: &aigateway.ModelServiceConfig_DestinationConfig_TypeConfig_PayPerTokenConfig{
PayPerTokenConfig: aigateway.ModelServiceConfig_PayPerTokenConfig{
Model: ptr("models/system.ai.databricks-gpt-5"),
},
},
}},
},
},
},
})
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 Modular 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,
},
],
},
},
},
});
Zugang zu einem Modelldienst gewähren
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
- Öffnen Sie den Modelldienst im Katalogexplorer oder gehen Sie zu AI Gateway und wählen Sie den Dienst aus.
- Wechseln Sie zur Registerkarte Berechtigungen.
- Klicken Sie auf Erlauben.
- Wählen Sie die Benutzer, Gruppen oder Dienstprinzipale aus, um Zugriff zu gewähren.
- Wählen Sie die EXECUTE-Berechtigung aus .
- 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"] }
]
}'
CLI
Weisen Sie EXECUTE mit der Databricks-CLI zu. 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"]
}
DABs (Beta)
Füge einen Block grants zur Modellservice-Ressource in deinem Bundle hinzu und deploye neu, um Zugriff zu gewähren.
resources:
model_services:
my_model_service:
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
grants:
- 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)
Weisen Sie EXECUTE mit dem Databricks SDK für Go zu:
_, 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
Weisen Sie EXECUTE mit dem Databricks SDK für Java zu:
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 Ermitteln von Zugriff auf Modelldienste finden Sie unter Ermitteln und Verwalten des Zugriffs auf Modelldienste.
Funktionen auf einem Modelldienst konfigurieren
Konfigurieren Sie Ratenbegrenzungen, Inferenzprotokollierung und Schutzmechanismen, die mithilfe von Service-Richtlinien für den Modelldienst implementiert sind, über die Unity-Gateway-Benutzeroberfläche. See:
- Ratenbegrenzungen auf Modell- und MCP-Dienste anwenden
- Anfragen und Antworten in Inferenztabellen protokollieren
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 SCHEMAundCREATE TABLEfü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"}'
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.
DABs (Beta)
Bearbeite comment (oder ein anderes veränderbares Feld) in der Bundle-Ressource und führe databricks bundle deploy. Ä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"},
})
Go Modular SDK
mask, err := types.NewFieldMask[aigateway.ModelService]("comment")
updated, err := c.UpdateModelService(ctx, aigateway.UpdateModelServiceRequest{
ModelService: &aigateway.ModelService{
Name: ptr("model-services/main.default.my_model_service"),
Comment: ptr("Updated: routes chat traffic"),
},
UpdateMask: mask,
})
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 Modular 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 Modelldienstes
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"
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.
DABs (Beta)
Entferne die Ressource aus dem Bundle und führe databricks bundle deploy aus, um sie zu löschen.
databricks bundle destroy Funktioniert auch, aber es entfernt jede Ressource, die das Bundle verwaltet, nicht nur diese hier.
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",
})
Go Modular SDK
err := c.DeleteModelService(ctx, aigateway.DeleteModelServiceRequest{
Name: ptr("model-services/main.default.my_model_service"),
})
Java SDK
w.aiGateway()
.deleteModelService(
new DeleteModelServiceRequest().setName("model-services/main.default.my_model_service"));
JS Modular SDK
await client.deleteModelService({ name: 'model-services/main.default.my_model_service' });
Verwaltung und Privilegien
Als Sicherungsobjekt in Unity Catalog ist ein Modellservice:
- Lebt in einem Katalog und Schema, wo es Schemaeinstellungen wie Arbeitsbereichsbindungen erbt.
- Enthält Standardmetadaten des Unity-Katalogs, z. B. Name, Besitzer, Kommentar und Tags.
-
Unterliegt den Unity-Katalogrechten, sodass Sie den Zugriff mit denselben
GRANTAnweisungenREVOKEgewähren, die Sie für Tabellen, Funktionen und Modelle verwenden. - Ist im Katalog-Explorer zusammen mit den restlichen Unity-Katalogressourcen auffindbar.
Die folgenden Berechtigungen gelten:
| Privileg | Beschreibung |
|---|---|
USE CATALOG, USE SCHEMA |
Greifen Sie auf den Katalog und das Schema zu, der den Modelldienst enthält. Erforderlich für alle Vorgänge. |
CREATE SERVICE |
Erstellen sie Modelldienste in einem Schema. Wird für den Katalog oder das Schema gewährt. |
EXECUTE |
Einen Modelldienst abfragen. |
MANAGE |
Ändern oder Löschen eines Modelldiensts und Verwalten seiner Zuschüsse. Der Besitzer hat eine Obermenge von MANAGE. |
Modelldienste nutzen die Privilegien des Definierers. Azure Databricks bewertet eine Abfrage anhand der Rechte des Besitzers und nicht der des Anrufers. Wenn ein Benutzer einen Modellservice abfragt, überprüft Azure Databricks, ob der Besitzer über EXECUTE für die referenzierten Ziele verfügt, beispielsweise die zugrunde liegenden Modelle und alle Modellanbieter. Der Anrufer benötigt keinen direkten Zugang zu diesen Zielen.
Limitations
Die folgenden Funktionen werden nicht unterstützt:
- Erstellung und Verwaltung von Modelldiensten mit SQL.
- Ermitteln von Modelldiensten mit ausschließlich
BROWSE-Berechtigungen. - Globale Suche nach Modelldienstleistungen.