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.
Usługa modelowa to punkt końcowy, który tłumaczy i kieruje żądania wnioskowania do jednego lub więcej modeli, z rozdzieleniem ruchu i możliwościami wpadkowymi. Obsługuje żądania w czasie rzeczywistym oraz wnioskowanie wsadowe.
Możesz stworzyć niestandardową usługę modelu, która reprezentuje "model wirtualny" dla takich przypadków jak:
- Punkt końcowy niezależny od modelu dla aplikacji. Udostępnij asystentowi obsługi klienta usługę o nazwie
production.ai.support-assistant. Zmień model bazowy bez zmiany nazwy, którą aplikacja wywołuje. - Niestandardowy routing i mechanizmy awaryjne. Użyj dzielenia ruchu, aby skierować 10% ruchu do nowego modelu przed szerszym wdrożeniem lub skonfiguruj zapasowy element docelowy dla żądań, które zakończyły się niepowodzeniem.
- Budżet dla jednego obciążenia roboczego. Otaguj usługę za pomocą
project=support-assistanti przypisz miesięczny budżet do tego tagu, z alertem po osiągnięciu wydatków na poziomie 1000 USD. - Kontrola dostępu dla zespołu. Udziel zespołowi prawnemu i jego podmiotom usług aplikacyjnych dostęp do usługi
legal-revieworaz korzystaj z oddzielnych usług dla innych zespołów. - Limity stawek dla obciążenia pracą. Konfiguruj usługę testową dla 100 żądań na minutę oraz usługę produkcyjną dla 1000 żądań na minutę, korzystając z limitów prędkości usług.
- Oddzielny monitoring i logi. Wysyłaj żądania i odpowiedzi asystenta wsparcia do dedykowanej tabeli inferencji, aby jego ruch można było monitorować oddzielnie od ruchu agenta kodującego.
Aby zapytać model podstawowy obsługiwany przez Azure Databricks bez tworzenia usługi, użyj usługi modelu dostarczonego przez system w system.ai.
Usługa może kierować ruch do modeli udostępnianych przez Azure Databricks, korzystając z pay-per-token lub provisioned throughput, albo do modeli zewnętrznych za pośrednictwem dostawcy modeli. Możesz łączyć te miejsca w jednej usłudze.
Usługi modeli niestandardowych są obiektami zabezpieczanymi w Unity Catalog. Wywołujący odwołują się do nich, używając ich w pełni kwalifikowanej nazwy catalog.schema.name, w różnych obszarach roboczych lub spoza środowiska Azure Databricks. Zobacz Zarządzanie i przywileje.
Requirements
Note
Unity Gateway nie jest obsługiwany w Azure Government.
- 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 SCHEMAdla każdego dostawcy modelu, do którego usługa modelu odwołuje się 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.
-
Stwórz usługę modelu niestandardowego
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 dostawcy modeli dzielą jedną przestrzeń nazw w ramach schematu Unity Catalog. Nie możesz użyć nazwy dla usługi modelowej, jeśli dostawca modelu w schemacie już jej używa, 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. Tym miejscem docelowym może być model udostępniany przez Azure Databricks, dla którego masz
EXECUTEi który może być udostępniany przez Unity Gateway, albo dostawca modeli, dla którego 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
}]
}
}
}
DAB-y (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,
}},
},
},
},
})
Go Modular SDK
Twórz i zarządzaj usługą modelu za pomocą Databricks AI Gateway SDK for Go. Pola opcjonalne są wskaźnikami, więc przykład używa jednolinijowej funkcji pomocniczej, 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
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 Modular 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,
},
],
},
},
},
});
Udzielenie dostępu 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-y (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)))));
Zobacz Odkrywanie dostępu do usług modelu i zarządzanie nim, aby dowiedzieć się więcej o przyznawaniu dostępu i uzyskiwaniu informacji o nim.
Skonfiguruj funkcje w usłudze modelu
Konfiguruj limity szybkości, logowanie wniosków oraz bariery zabezpieczające implementowane za pomocą polityk usług na modelu usługi z interfejsu Unity Gateway. See:
- 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 modyfikowalne pole) w zasobie comment i zastosuj ponownie. Zmiany są stosowane na miejscu.
DAB-y (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"},
})
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'),
});
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.
DAB-y (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",
})
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' });
Zarządzanie i przywileje
Jako zabezpieczony obiekt katalogu Unity, usługa modelowa:
- Znajduje się w katalogu i schemacie, gdzie dziedziczy ustawienia schematu, takie jak powiązania z obszarem roboczym.
- Zawiera standardowe metadane Unity Catalog, takie jak nazwa, właściciel, opis i tagi.
-
Podlega uprawnieniom Unity Catalog, więc przyznajesz dostęp za pomocą tych samych instrukcji
GRANTiREVOKE, których używasz w przypadku tabel, funkcji i modeli. - Można go znaleźć w Catalog Explorer wraz z pozostałymi zasobami Unity Catalog.
Obowiązują następujące uprawnienia:
| Przywilej | Opis |
|---|---|
USE CATALOG, USE SCHEMA |
Uzyskaj dostęp do katalogu i schematu, które zawierają usługę modelu. Wymagane dla wszystkich operacji. |
CREATE SERVICE |
Utwórz usługi modelu w schemacie. Przyznane w wykazie lub schemacie. |
EXECUTE |
Wysyłaj zapytania do usługi modelowej. |
MANAGE |
Modyfikowanie lub usuwanie usługi modelu i zarządzanie jej grantami. Właściciel ma nadzbiór MANAGE. |
Usługi modelowe korzystają z uprawnień definiera. Azure Databricks ocenia zapytanie względem uprawnień właściciela, a nie wywołującego. Gdy użytkownik zadaje zapytanie do usługi modelu, Azure Databricks sprawdza, czy właściciel ma EXECUTE dostęp do wskazanych miejsc docelowych, takich jak modele bazowe i dostawcy modeli. Dzwoniący nie potrzebuje bezpośredniego dostępu do tych miejsc.
Ograniczenia
Następujące możliwości nie są obsługiwane:
- Tworzenie i zarządzanie usługami modelowymi za pomocą SQL.
- Odnajdywanie usług modelu przy użyciu tylko uprawnienia
BROWSE. - Globalne wyszukiwanie usług modelowych.