Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Twórz, udostępniaj i zarządzaj własnymi API modelu (usługami modelowymi) w Unity Catalog.
Wskazówka
Interfejsy API modeli dostarczane przez system w schemacie system.ai są gotowe do wykonywania zapytań bez żadnej konfiguracji. Stwórz własne API modelu tylko wtedy, gdy chcesz zarządzać dodatkowymi modelami lub udostępnić niestandardowy punkt końcowy.
Requirements
- Obszar roboczy usługi Azure Databricks w regionie obsługiwanym przez Unity Gateway.
- Katalog Unity włączony dla obszaru roboczego. Zobacz Umożliwienie obszaru roboczego dla Unity Catalog.
- Aby utworzyć usługę modelową, musisz mieć:
-
USE CATALOG,USE SCHEMAiCREATE SERVICEw katalogu i schemacie, w którym tworzysz usługę modelu. -
EXECUTEdla każdego modelu, do którego usługa modeli odwołuje się jako do miejsca docelowego. -
EXECUTE,USE CATALOGorazUSE SCHEMAw każdej usłudze dostawcy modeli, do której odwołuje się usługa modelu jako do miejsca docelowego. -
USE CATALOG,USE SCHEMAiCREATE TABLEw katalogu i schemacie, w których tworzona jest tabela inferencji, jeśli włączysz rejestrowanie inferencji.
-
Utwórz usługę modelu
Utwórz usługę modelową w interfejsie użytkownika Unity Gateway lub w Catalog Explorer. Aby stworzyć go programatycznie, użyj API REST, SDK Azure Databricks, CLI Azure Databricks, Terraform lub Declarative Automation Bundles (DAB).
Usługi modeli i usługi dostawców modeli współdzielą wspólną przestrzeń nazw w schemacie Unity Catalog. Nie można użyć nazwy usługi modelowej, jeśli taka nazwa jest już używana przez usługę dostawcy modelu w schemacie, i odwrotnie.
interfejs użytkownika
- Wykonaj jedną z następujących czynności:
- Na pasku bocznym obszaru roboczego kliknij pozycję Brama sztucznej inteligencji, a następnie kliknij pozycję Utwórz.
- W Eksploratorze wykazu przejdź do schematu, w którym chcesz utworzyć usługę modelową, a następnie kliknij Utwórz>Usługa>Usługa modelowa.
- Wprowadź nazwę usługi modelu, a następnie wybierz katalog i schemat, w którym ma zostać utworzona. Jeśli zaczniesz od Eksploratora wykazu, Eksplorator wykazu wstępnie wypełnia wykaz i schemat.
- Wybierz główne miejsce do obsługi. Miejscem docelowym może być model hostowany przez Databricks, do którego masz
EXECUTEi który może być obsługiwany przez Unity Gateway, albo usługa dostawcy modeli, do której maszEXECUTE,USE CATALOGiUSE SCHEMA. - Kliknij pozycję Utwórz.
Po utworzeniu usługi modelu Azure Databricks otworzy stronę przeglądu, na której można rozpocząć lub skonfigurować dodatkowe funkcje, takie jak rejestrowanie wnioskowania.
interfejs API REST
Wyślij POST do /api/2.1/unity-catalog/model-services, przekazując parent i model_service_id jako parametry zapytania. Konfiguracja routingu musi mieć co najmniej jedno miejsce docelowe:
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
Przekaż schemat nadrzędny i nazwę liścia, a konfigurację podaj za pomocą --json. Konfiguracja routingu musi mieć przynajmniej jedno miejsce docelowe. Aby zainstalować interfejs wiersza polecenia CLI, zobacz Instalowanie lub aktualizowanie interfejsu 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
Stwórz i zarządzaj usługą modelową z dostawcą Databricks Terraform oraz zasobem databricks_ai_gateway_model_service :
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)
Zdefiniuj usługę modelową w bundlu i wdroż ją za pomocą databricks bundle deploy. Konfiguracja routingu musi mieć co najmniej jedno miejsce docelowe:
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
Zestaw SDK dla języka Python
Stwórz i zarządzaj usługą modelu za pomocą Databricks SDK dla Pythona:
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,
)
]
)
),
),
)
Zestaw SDK dla języka Go
Utwórz usługę modelową i zarządzaj nią za pomocą Databricks SDK for 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
Stwórz i zarządzaj usługą modelu za pomocą Databricks SDK dla Javy:
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
Stwórz i zarządzaj usługą modelu za pomocą Databricks AI Gateway SDK dla 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,
},
],
},
},
},
});
Przyznaj dostęp do usługi modelowej
Domyślnie tylko właściciel usługi modelu może wysyłać do niej zapytania. Aby umożliwić innym wysyłanie zapytań do usługi modelu, przyznaj im uprawnienie EXECUTE do niej, a także USE CATALOG i USE SCHEMA do jej katalogu i schematu. Jeśli usługa modelu zapisuje logi w tabeli inferencji, przyznaj SELECT do tabeli, aby umożliwić odczytywanie zarejestrowanych żądań i odpowiedzi.
interfejs użytkownika
- Otwórz usługę modelu w Eksploratorze katalogu lub przejdź do AI Gateway i wybierz usługę.
- Przejdź do karty Uprawnienia .
- Kliknij Grant.
- Wybierz użytkowników, grupy lub nazwy główne usługi, którym chcesz przyznać dostęp.
- Wybierz uprawnienie EXECUTE .
- Kliknij Grant.
interfejs API REST
databricks api patch \
"/api/2.1/unity-catalog/permissions/model_service/main.default.my_model_service" \
--json '{
"changes": [
{ "principal": "data-team", "add": ["EXECUTE"] }
]
}'
CLI
Przyznawanie EXECUTE za pomocą interfejsu wiersza polecenia Databricks. Aby zainstalować interfejs wiersza polecenia CLI, zobacz Instalowanie lub aktualizowanie interfejsu Databricks CLI.
databricks grants update model_service main.default.my_model_service \
--json '{"changes": [{"principal": "data-team", "add": ["EXECUTE"]}]}'
Terraform
Grant EXECUTE z dostawcą Databricks Terraform i zasobem databricks_grant :
resource "databricks_grant" "example" {
model_service = "main.default.my_model_service"
principal = "data-team"
privileges = ["EXECUTE"]
}
DAB (Beta)
Dodaj blok grants do zasobu usługi modelu w swoim pakiecie i wdroż go ponownie, aby przyznać dostęp.
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]
Zestaw SDK dla języka Python
Nadawanie EXECUTE za pomocą pakietu Databricks SDK dla języka 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])],
)
Zestaw SDK dla języka Go
Przyznaj EXECUTE za pomocą Databricks SDK for 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 za pomocą pakietu Databricks SDK dla języka 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)))));
Więcej informacji na temat przyznawania dostępu i uzyskiwania informacji o nim znajdziesz w artykule Odnajdywanie i zarządzanie dostępem do interfejsów API modeli (usługi modeli).
Skonfiguruj funkcje w usłudze modelu
Konfigurujesz funkcje, takie jak limity liczby żądań, rejestrowanie inferencji i mechanizmy ochronne, dla usługi modelu w interfejsie Unity Gateway, tak samo jak konfigurujesz je w punkcie końcowym Unity Gateway. Zobacz:
- Zastosowanie limitów cen dla usług modelowych i MCP
- Żądania logów i odpowiedzi na tabele wnioskowania
Logowanie wnioskowania
Po włączeniu rejestrowania inferencji usługa Azure Databricks utworzy nową, pustą tabelę Unity Catalog ze wstępnie zdefiniowanym schematem w lokalizacji, którą określisz. Należy zwrócić uwagę na następujące kwestie:
- Musisz mieć
USE CATALOG,USE SCHEMAiCREATE TABLEw katalogu docelowym i schemacie. - Twórcą usługi modelu jest właściciel tabeli wnioskowania. Żaden inny użytkownik nie ma dostępu, chyba że przyznasz mu dostęp.
- Jeśli tabela już istnieje w określonej lokalizacji, tworzenie usługi modelu zakończy się niepowodzeniem.
- Tabela inferencyjna ma cykl życia niezależny od usługi modelu. Jeśli usuniesz tabelę, usługa modelowa nadal działa, ale przestaje rejestrować.
Więcej o tabelach wnioskowania można znaleźć w artykule Dzienniki zapytań i odpowiedzi na tabele wnioskowania.
Zaktualizuj usługę modelu
Musisz być właścicielem lub mieć MANAGE.
interfejs użytkownika
Edycja konfiguracji usługi modelowej z interfejsu Unity Gateway lub Catalog Explorer. Zmiany są stosowane na miejscu.
interfejs API REST
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
Edytuj databricks_ai_gateway_model_service (lub dowolne inne pole modyfikowalne) w zasobie comment i zastosuj ponownie. Zmiany są stosowane na miejscu.
DABs (Beta)
Edytuj comment (lub dowolne inne pole zmienne) w zasobach pakietu i uruchom databricks bundle deploy. Zmiany są stosowane na miejscu.
Zestaw SDK dla języka Python
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"),
)
Zestaw SDK dla języka Go
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'),
});
Usuń usługę modelową
Musisz być właścicielem lub mieć MANAGE. Nie można usunąć usług modelu dostarczanych przez system w system.ai.
interfejs użytkownika
Otwórz usługę modelu w interfejsie Unity Gateway lub Catalog Explorer i wybierz Usuń w menu kebabu.
interfejs API REST
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
Uruchom terraform destroy, albo usuń blok zasobów i zastosuj ponownie.
DABs (Beta)
Usuń zasób z pakietu i uruchom databricks bundle deploy, aby go usunąć.
databricks bundle destroy Też działa, ale usuwa wszystkie zasoby zarządzane przez pakiet, nie tylko ten.
Zestaw SDK dla języka Python
w.ai_gateway.delete_model_service(name="model-services/main.default.my_model_service")
Zestaw SDK dla języka Go
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' });