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.
Dowiedz się, jak zarejestrować dostawcę jako usługę modelowego dostawcy, przyznawać do niego dostęp, konfigurować funkcje Unity Gateway i usuwać go.
Requirements
-
CREATE SERVICEw schemacie, w którym tworzysz usługę dostawcy modelu, a takżeUSE CATALOGiUSE SCHEMAw jego katalogu i schemacie. - Poświadczenia dostawcy zewnętrznego, który chcesz zarejestrować (na przykład klucz interfejsu API OpenAI lub para kluczy dostępu platformy AWS).
- Aby uwierzytelnić Azure OpenAI lub Microsoft Foundry za pomocą poświadczenia serwisowego zamiast klucza lub sekretu, musisz mieć istniejące dane
ACCESSuwierzytelniające i na nim zawarte. Zobacz Jak uwierzytelniać Azure OpenAI lub Microsoft Foundry za pomocą poświadczeń usługi.
Aby powiązać poświadczenie dostawcy z sekretem Unity Catalog należącym do klienta zamiast przechowywać wartość bezpośrednio, musisz mieć istniejący sekret Unity Catalog oraz READ SECRET do niego. Zobacz Jak zabezpieczyć poświadczenie dostawcy za pomocą wpisu tajnego w Unity Catalog.
Stwórz modelową usługę dostawcy
Usługi dostawcy modeli i usługi modeli współdzielą tę samą przestrzeń nazw w schemacie Unity Catalog. Nie można użyć nazwy usługi dostawcy modeli, jeśli usługa modelu w schemacie już jej używa, i odwrotnie.
Stwórz usługę dostawcy modelu w interfejsie Unity Gateway lub Catalog Explorer. Aby stworzyć go programatycznie, użyj REST API, SDK Azure Databricks, Databricks CLI, Terraform lub Declarative Automation Bundles (DAB).
interfejs użytkownika
- Wykonaj jedną z następujących czynności:
- W pasku bocznym workspace kliknij Unity Gateway, następnie otwórz zakładkę Providers i kliknij Provider.
- W Eksploratorze katalogu przejdź do schematu, gdzie chcesz utworzyć usługę dostawcy modelu, kliknij Utwórz>usługę, a następnie wybierz usługę dostawcy modelu w oknie Utwórz usługę .
- Wprowadź nazwę usługi dostawcy modelu, a następnie wybierz katalog i schemat, w których ma zostać utworzona. Jeśli zaczniesz od Eksploratora wykazu, Eksplorator wykazu wstępnie wypełnia wykaz i schemat.
- Wybierz typ dostawcy i wprowadź szczegóły połączenia i poświadczenia dostawcy.
- Kliknij pozycję Utwórz. Azure Databricks szyfruje i przechowuje poświadczenia. Interfejs użytkownika nie wyświetla ich po tym punkcie.
interfejs API REST
Wyślij POST do /api/2.1/unity-catalog/model-provider-services, przekazując parent i model_provider_service_id jako parametry zapytania. Ustaw provider_type i dokładnie jeden odpowiadający blok dostawcy; targets określa listę dozwolonych osiągalnych modeli nadrzędnych, a sekrety są podawane bezpośrednio jako jawny tekst:
databricks api post \
"/api/2.1/unity-catalog/model-provider-services?parent=schemas/main.default&model_provider_service_id=my_provider" \
--json '{
"comment": "Routes to a custom OpenAI-compatible provider",
"config": {
"provider_type": "EXTERNAL_MODEL_PROVIDER_TYPE_CUSTOM",
"targets": [
{ "model": "gpt-4o", "native_api_types": ["openai/v1/chat/completions"] }
],
"custom": {
"direct": {
"base_url": "https://api.example.com/v1",
"api_key": { "plaintext": "dummy-api-key" }
}
}
}
}'
CLI
Przekaż schemat nadrzędny i nazwę liścia, a konfigurację podaj za pomocą --json. ustaw provider_type i dokładnie jeden pasujący blok dostawcy; targets pozwala na listę dostępnych modeli w górnym biegu, a sekrety są podawane w linii jako tekst jawny. Aby zainstalować interfejs wiersza polecenia CLI, zobacz Instalowanie lub aktualizowanie interfejsu Databricks CLI.
databricks ai-gateway create-model-provider-service schemas/main.default my_provider --json '{
"comment": "Routes to a custom OpenAI-compatible provider",
"config": {
"provider_type": "EXTERNAL_MODEL_PROVIDER_TYPE_CUSTOM",
"targets": [
{ "model": "gpt-4o", "native_api_types": ["openai/v1/chat/completions"] }
],
"custom": {
"direct": {
"base_url": "https://api.example.com/v1",
"api_key": { "plaintext": "dummy-api-key" }
}
}
}
}'
Terraform
Utwórz usługę dostawcy modelu i zarządzaj nią za pomocą dostawcy Terraform Databricks oraz zasobu databricks_ai_gateway_model_provider_service. Nie przechowuj prawdziwych kluczy w systemie kontroli wersji; przekaż klucz API za pośrednictwem zmiennej sensitive = true (ustaw ją za pomocą -var lub zmiennej środowiskowej TF_VAR_provider_api_key):
variable "provider_api_key" {
type = string
sensitive = true
}
resource "databricks_ai_gateway_model_provider_service" "example" {
parent = "schemas/main.default"
model_provider_service_id = "my_provider"
comment = "Routes to a custom OpenAI-compatible provider"
config = {
provider_type = "EXTERNAL_MODEL_PROVIDER_TYPE_CUSTOM"
targets = [{
model = "gpt-4o"
native_api_types = ["openai/v1/chat/completions"]
}]
custom = {
direct = {
base_url = "https://api.example.com/v1"
api_key = { plaintext = var.provider_api_key }
}
}
}
}
DAB-y (Beta)
Zdefiniuj usługę dostawcy modelu w pakiecie i wdroż ją za pomocą databricks bundle deploy. Przechowuj rzeczywiste klucze poza systemem kontroli wersji, przekazując klucz API za pomocą zmiennej pakietu (ustaw ją za pomocą --var lub zmiennej środowiskowej BUNDLE_VAR_provider_api_key):
variables:
provider_api_key:
description: Provider API key.
resources:
model_provider_services:
my_provider:
parent: schemas/main.default
model_provider_service_id: my_provider
comment: Routes to a custom OpenAI-compatible provider
config:
provider_type: EXTERNAL_MODEL_PROVIDER_TYPE_CUSTOM
targets:
- model: gpt-4o
native_api_types: [openai/v1/chat/completions]
custom:
direct:
base_url: https://api.example.com/v1
api_key:
plaintext: ${var.provider_api_key}
Zestaw SDK dla języka Python
Stwórz i zarządzaj usługą dostawcy modeli za pomocą SDK Databricks dla Python:
from databricks.sdk.service import catalog as c
model_provider_service = w.ai_gateway.create_model_provider_service(
parent="schemas/main.default",
model_provider_service_id="my_provider",
model_provider_service=c.ModelProviderService(
comment="Routes to a custom OpenAI-compatible provider",
config=c.ModelProviderServiceConfig(
provider_type=(
c.ModelProviderServiceConfigExternalModelProviderType
.EXTERNAL_MODEL_PROVIDER_TYPE_CUSTOM
),
targets=[
c.ModelProviderServiceConfigModelTargetConfig(
model="gpt-4o",
native_api_types=["openai/v1/chat/completions"],
)
],
custom=c.ModelProviderServiceConfigCustomProviderConfig(
direct=c.ModelProviderServiceConfigCustomProviderDirectConfig(
base_url="https://api.example.com/v1",
api_key=c.ModelProviderServiceConfigProviderSecret(
plaintext="dummy-api-key"
),
)
),
),
),
)
Zestaw SDK dla języka Go
Stwórz i zarządzaj usługą dostawcy modelu za pomocą SDK Databricks dla Go:
modelProviderService, err := w.AiGateway.CreateModelProviderService(ctx,
catalog.CreateModelProviderServiceRequest{
Parent: "schemas/main.default",
ModelProviderServiceId: "my_provider",
ModelProviderService: catalog.ModelProviderService{
Comment: "Routes to a custom OpenAI-compatible provider",
Config: &catalog.ModelProviderServiceConfig{
ProviderType: catalog.ModelProviderServiceConfigExternalModelProviderTypeExternalModelProviderTypeCustom,
Targets: []catalog.ModelProviderServiceConfigModelTargetConfig{{
Model: "gpt-4o",
NativeApiTypes: []string{"openai/v1/chat/completions"},
}},
Custom: &catalog.ModelProviderServiceConfigCustomProviderConfig{
Direct: &catalog.ModelProviderServiceConfigCustomProviderDirectConfig{
BaseUrl: "https://api.example.com/v1",
ApiKey: &catalog.ModelProviderServiceConfigProviderSecret{
Plaintext: "dummy-api-key",
},
},
},
},
},
})
Go Modular SDK
Stwórz i zarządzaj usługą dostawcy modelu za pomocą pakietu Go SDK. Pola opcjonalne są wskaźnikami, więc przykład używa jednolinijowej funkcji pomocniczej, func ptr[T any](v T) *T { return &v }.
modelProviderService, err := c.CreateModelProviderService(ctx,
aigateway.CreateModelProviderServiceRequest{
Parent: ptr("schemas/main.default"),
ModelProviderServiceId: ptr("my_provider"),
ModelProviderService: &aigateway.ModelProviderService{
Comment: ptr("Routes to a custom OpenAI-compatible provider"),
Config: &aigateway.ModelProviderServiceConfig{
ProviderType: aigateway.ModelProviderServiceConfig_ExternalModelProviderType_ExternalModelProviderTypeCustom,
Targets: []aigateway.ModelProviderServiceConfig_ModelTargetConfig{{
Model: ptr("gpt-4o"),
NativeApiTypes: []string{"openai/v1/chat/completions"},
}},
Provider: &aigateway.ModelProviderServiceConfig_Provider_Custom{
Custom: aigateway.ModelProviderServiceConfig_CustomProviderConfig{
ProviderMode: &aigateway.ModelProviderServiceConfig_CustomProviderConfig_ProviderMode_Direct{
Direct: aigateway.ModelProviderServiceConfig_CustomProviderDirectConfig{
BaseUrl: ptr("https://api.example.com/v1"),
AuthMode: &aigateway.ModelProviderServiceConfig_CustomProviderDirectConfig_AuthMode_ApiKey{
ApiKey: aigateway.ModelProviderServiceConfig_ProviderSecret{
Value: &aigateway.ModelProviderServiceConfig_ProviderSecret_Value_Plaintext{
Plaintext: "dummy-api-key",
},
},
},
},
},
},
},
},
},
})
Java SDK
Stwórz i zarządzaj usługą dostawcy modeli za pomocą Databricks SDK dla Javy:
ModelProviderServiceConfig config =
new ModelProviderServiceConfig()
.setProviderType(
ModelProviderServiceConfigExternalModelProviderType
.EXTERNAL_MODEL_PROVIDER_TYPE_CUSTOM)
.setTargets(
Collections.singletonList(
new ModelProviderServiceConfigModelTargetConfig()
.setModel("gpt-4o")
.setNativeApiTypes(
Collections.singletonList("openai/v1/chat/completions"))))
.setCustom(
new ModelProviderServiceConfigCustomProviderConfig()
.setDirect(
new ModelProviderServiceConfigCustomProviderDirectConfig()
.setBaseUrl("https://api.example.com/v1")
.setApiKey(
new ModelProviderServiceConfigProviderSecret()
.setPlaintext("dummy-api-key"))));
ModelProviderService modelProviderService =
w.aiGateway()
.createModelProviderService(
new CreateModelProviderServiceRequest()
.setParent("schemas/main.default")
.setModelProviderServiceId("my_provider")
.setModelProviderService(
new ModelProviderService()
.setComment("Routes to a custom OpenAI-compatible provider")
.setConfig(config)));
JS Modular SDK
Stwórz i zarządzaj usługą dostawcy modelu za pomocą pakietu JavaScript SDK:
import { ModelProviderServiceConfig_ExternalModelProviderType as ProviderType } from '@databricks/sdk-aigateway/v1';
const created = await client.createModelProviderService({
parent: 'schemas/main.default',
modelProviderServiceId: 'my_provider',
modelProviderService: {
comment: 'Routes to a custom OpenAI-compatible provider',
config: {
providerType: ProviderType.EXTERNAL_MODEL_PROVIDER_TYPE_CUSTOM,
targets: [{ model: 'gpt-4o', nativeApiTypes: ['openai/v1/chat/completions'] }],
provider: {
$case: 'custom',
custom: {
providerMode: {
$case: 'direct',
direct: {
baseUrl: 'https://api.example.com/v1',
authMode: {
$case: 'apiKey',
apiKey: {
value: { $case: 'plaintext', plaintext: 'dummy-api-key' },
},
},
},
},
},
},
},
},
});
Pełną listę dostawców i ich metod uwierzytelniania znajdziesz w sekcji Dostawcy modeli zewnętrzni wobec Databricks.
Uwierzytelnij Azure OpenAI lub Microsoft Foundry za pomocą poświadczenia serwisowego
Możesz uwierzytelnić dostawcę Azure OpenAI lub Microsoft Foundry za pomocą poświadczenia usługowego zamiast przechowywać klucz API lub sekret klienta usługi Microsoft Entra ID. Dane uwierzytelniające usługi zawierają tożsamość Azure, którą zarządza Unity Catalog, więc żadna długowieczna tajemnica nie jest kopiowana do usługi modelu dostawcy: Azure Databricks pobiera krótkotrwałe tokeny z tej tożsamości, aby uwierzytelnić każde żądanie.
Utwórz usługę modelu dostawcy zgodnie z opisaniem w Utwórz usługę modelu dostawcy. Wybierz Azure OpenAI lub Microsoft Foundry jako typ dostawcy i wprowadź szczegóły połączenia, w tym bazowy adres URL punktu końcowego. Następnie ustaw metodę uwierzytelniania na dane uwierzytelniające usługi i wybierz dane poświadczenia zamiast wpisywać klucz API lub sekret klienta. Dane uwierzytelniające usługi zastępują tylko sekret, więc nadal wymagany jest adres URL bazy końcowej.
Potwierdź następujące wymagania:
Właściciel modelu usługi dostawcy posiada
ACCESSna tym poświadczeniu usługowym. Ponieważ usługa Azure Databricks ponownie sprawdza dostęp właściciela przy obsłudze żądań, właściciel musi go zachować tak długo, jak ten dostawca jest używany. Jego unieważnienie powoduje zatrzymanie zapytań dla wszystkich, nawet dla wywołujących, którzy mająEXECUTEu dostawcy. Aby udzielić właścicielowi dostępu do uprawnień:GRANT ACCESS ON SERVICE CREDENTIAL <service-credential-name> TO `<model-provider-service-owner>`;Celem poświadczenia jest służba, a nie przechowywanie.
Poświadczenie jest dostępne w przestrzeniach roboczych, z których pochodzą żądania. Powiązania z obszarem roboczym nadal obowiązują, więc żądanie pochodzące z obszaru roboczego, z którym poświadczenie nie jest powiązane, zakończy się niepowodzeniem, mimo że sama usługa dostawcy modelu jest dostępna z dowolnego obszaru roboczego korzystającego ze wspólnego metastore.
Tożsamość Azure poświadczenia usługi jest autoryzowana do wywoływania wdrożeń Azure OpenAI lub Microsoft Foundry, które planujesz zapytać. Aby utworzyć poświadczenia usługi, zobacz Tworzenie poświadczeń usługi.
Dzwoniący wysyłający zapytania do dostawcy potrzebują tych samych dotacji, co każdy inny dostawca. Nie potrzebują żadnych uprawnień do poświadczenia konta usługi, dzięki czemu samo poświadczenie pozostaje poza ich zasięgiem.
Usługa dostawcy modeli identyfikuje poświadczenie na podstawie jego wewnętrznego identyfikatora, dzięki czemu można zmienić jego nazwę bez ryzyka niepowodzenia zapytania.
Jeśli usuniesz poświadczenie, wykonanie zapytań kończy się niepowodzeniem i nie pojawia się żadne ostrzeżenie, że odwołuje się do niego usługa dostawcy modelu. Upewnij się, że nie ma żadnych odniesień do tego poświadczenia, zanim go usuniesz.
Nie można przełączać istniejącej usługi dostawcy modelu między poświadczeniem usług a kluczem API ani uwierzytelnianiem sekretem klienta. Zamiast tego stwórz nowy model usługi dostawcy.
Wyślij niestandardowy klucz API dostawcy w nagłówku
Niestandardowy dostawca domyślnie wysyła swój klucz API jako token nośnika. Gdy punkt końcowy oczekuje zamiast tego klucza w określonym nagłówku, użyj uwierzytelniania za pomocą klucza API w nagłówku i samodzielnie nazwij ten nagłówek. Azure Databricks następnie wysyła klucz na każde żądanie wychodzące jako .<header name>: <header value>
Utwórz usługę modelu dostawcy zgodnie z opisaniem w Utwórz usługę modelu dostawcy. Wybierz Custom jako typ dostawcy, następnie ustaw metodę Auth na nagłówek klucza API i podaj nazwę nagłówka , której oczekuje punkt końcowy (np. X-API-Key lub Ocp-Apim-Subscription-Key), wraz z wartością nagłówka.
Te dwie metody wzajemnie się wykluczają: niestandardowy dostawca używa albo tokenu okaziciela, albo nagłówka o określonej nazwie, ale nie obu jednocześnie. Uwierzytelnianie za pomocą nagłówka używa dokładnie jednego nagłówka.
Nazwa nagłówka musi być poprawną nazwą nagłówka HTTP: litery, cyfry i znaki !#$%&'*+-.^_`|~, do 255 znaków. Każdy inny znak zostaje odrzucony, w tym spacje, dwukropki, ukośniki i podziały wiersza.
Zabezpiecz poświadczenie dostawcy za pomocą wpisu tajnego Unity Catalog
Zamiast przechowywać dane poświadczenia dostawcy w linii, możesz skierować model usługi dostawcy na sekret katalogu Unity należący do klienta, który zawiera tę wartość. Azure Databricks odczytuje wpis tajny w czasie wykonywania zapytania, korzystając z uprawnień właściciela usługi dostawcy modelu, i nigdy nie kopiuje tej wartości do usługi dostawcy modelu, więc rotacja wpisu tajnego staje się skuteczna bez konieczności wprowadzania zmian w usłudze dostawcy modelu.
To działa dla każdego dostawcy, którego dane uwierzytelniające to pojedyncza wartość inline: OpenAI, Azure OpenAI, Anthropic, Amazon Bedrock, Amazon Bedrock Mantle, Microsoft Foundry, Google Gemini Enterprise oraz Custom.
Utwórz usługę modelu dostawcy zgodnie z opisaniem w Utwórz usługę modelu dostawcy. Wybierz typ dostawcy i wprowadź szczegóły połączenia. Dla uwierzytelniania (np. klucza API) zmień typ uwierzytelniania z tekstu jawnego na Secret, a następnie wybierz katalog, schemat i sekret, które identyfikują twój sekret Unity Catalog.
Potwierdź następujące wymagania:
Właściciel usługi model provider posiada
READ SECRETsekret katalogu Unity. Ponieważ usługa Azure Databricks ponownie sprawdza dostęp właściciela przy obsłudze żądań, właściciel musi go zachować tak długo, jak ten dostawca jest używany. Jego unieważnienie powoduje zatrzymanie zapytań dla wszystkich, nawet dla wywołujących, którzy mająEXECUTEu dostawcy. Aby udzielić właścicielowi dostępu do sekretu:GRANT READ SECRET ON SECRET <catalog>.<schema>.<secret> TO `<model-provider-service-owner>`;Sekret Katalogu Unity istnieje zanim się do niego odwołasz. Aby tworzyć i zarządzać sekretami Katalogu Unity, zobacz Sekrety w Katalogu Unity.
Dzwoniący wysyłający zapytania do dostawcy potrzebują tych samych dotacji, co każdy inny dostawca. Nie potrzebują żadnych uprawnień do sekretu w Unity Catalog, co uniemożliwia im dostęp do wartości sekretu.
Aby przeprowadzić rotację poświadczeń, zaktualizuj wartość wpisu tajnego w Unity Catalog, bez wprowadzania zmian w usłudze dostawcy modelu.
Jeśli usuniesz sekret Unity Catalog, zapytania kończą się niepowodzeniem. Usługa dostawcy modelu zachowuje odwołanie, które jest teraz nieprawidłowe, dzięki czemu widać zależność, a dostawcę można przywrócić, aktualizując go tak, aby odwoływał się do klucza tajnego, który nadal istnieje.
Usunięcie usługi dostawcy modelu nigdy nie usuwa sekretu Unity Catalog, na który się powołuje.
Udziel dostępu do usługi modelowego dostawcy
Domyślnie tylko właściciel usługi dostawcy modelu może wysyłać do niej zapytania. Aby inni mogli wysyłać zapytania do usługi dostawcy modeli, przyznaj im uprawnienie EXECUTE do niej, a także USE CATALOG i USE SCHEMA do jej katalogu i schematu. Jeśli usługa dostawcy modelu rejestruje się w tabeli wnioskowania, przyznaj SELECT w tabeli, aby umożliwić im odczytywanie zarejestrowanych żądań i odpowiedzi.
interfejs użytkownika
- Otwórz usługę dostawcy modelu w Eksploratorze Katalogu lub przejdź do Unity 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_provider_service/main.default.my_provider" \
--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_provider_service main.default.my_provider \
--json '{"changes": [{"principal": "data-team", "add": ["EXECUTE"]}]}'
Terraform
Grant EXECUTE z dostawcą Databricks Terraform i zasobem databricks_grant :
resource "databricks_grant" "example" {
model_provider_service = "main.default.my_provider"
principal = "data-team"
privileges = ["EXECUTE"]
}
DAB-y (Beta)
Dodaj blok grants do zasobu usługi dostawcy modeli w swoim pakiecie i wdroż go ponownie, aby przyznać dostęp.
variables:
provider_api_key:
description: Provider API key.
resources:
model_provider_services:
my_provider:
parent: schemas/main.default
model_provider_service_id: my_provider
comment: Routes to a custom OpenAI-compatible provider
config:
provider_type: EXTERNAL_MODEL_PROVIDER_TYPE_CUSTOM
targets:
- model: gpt-4o
native_api_types: [openai/v1/chat/completions]
custom:
direct:
base_url: https://api.example.com/v1
api_key:
plaintext: ${var.provider_api_key}
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_provider_service",
full_name="main.default.my_provider",
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_provider_service",
FullName: "main.default.my_provider",
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_provider_service")
.setFullName("main.default.my_provider")
.setChanges(Arrays.asList(
new PermissionsChange().setPrincipal("data-team").setAdd(Arrays.asList(Privilege.EXECUTE)))));
Więcej informacji o przyznawaniu i odnajdywaniu dostępu można znaleźć w Odnajdywanie i zarządzanie dostępem do zewnętrznych dostawców modeli (usług dostawców modeli).
Konfigurowanie funkcji
Ponieważ usługa dostawcy modeli jest kierowana przez Unity Gateway, stosuj te same funkcje zarządzania i obserwowalności, jak w przypadku innego ruchu przechodzącego przez Unity Gateway:
- Rejestrowanie inferencji. Rejestruj żądania i odpowiedzi w tabeli Unity Catalog. Zobacz Rejestrowanie żądań i odpowiedzi w tabelach inferencji.
- Limity szybkości. Limit zapytań na minutę w celu zarządzania pojemnością i kosztami. Zobacz Zastosowanie limitów stawek dla usług modelowych i MCP.
- Zasady usługi. Reguluj treść każdej interakcji, na przykład blokowanie niebezpiecznych treści lub redagowanie wrażliwych danych, poprzez dołączenie polityki usługowej. Zobacz Zasady usług dotyczące zabezpieczanych zasobów AI i Tworzenie i dołączanie zasad usług.
Konfiguruj mnożnik cen
Domyślnie Azure Databricks szacuje wydatki na modele zewnętrzne, korzystając z opublikowanych przez dostawców cen listowych. Jeśli ceny u Twojego dostawcy różnią się, skonfiguruj mnożnik cen, aby odzwierciedlał rabaty lub marże. Na przykład 0.8 wykorzystuje 80% ceny katalogowej, a 1.2 120%.
- Stwórz usługę dostawcy modelu lub otwórz istniejącą usługę dostawcy modeli w Eksploratorze Katalogu lub Unity Gateway i kliknij Edytuj.
- Rozwiń Opcje zaawansowane.
- Wprowadź mnożnik ceny.
- Kliknij Stwórz lub Zapisz.
Mnożnik dotyczy wszystkich modeli dostępnych w ramach usługi dostawcy modeli. Obliczony koszt w system.ai_gateway.external_model_spend odzwierciedla skonfigurowany mnożnik. Zmiany dotyczą żądań złożonych po wejściu konfiguracji w życie; wcześniejsze żądania pozostają szacowane na podstawie ceny katalogowej lub wcześniej skonfigurowanego mnożnika.
Skonfigurowany mnożnik wyświetla etykietę Niestandardowe ceny. Skorygowane ceny mają kropkowane podkreślenie w tabelach cen. Najedź kursorem na skorygowaną cenę, aby porównać ją z ceną katalogową dostawcy.
Konfiguruj trasy punktów końcowych dla niestandardowego dostawcy
Trasy punktu końcowego są opcjonalne. Używaj ich, gdy niestandardowy dostawca hostuje różne modele na różnych ścieżkach pod tym samym base_url. Model może obsługiwać wiele typów API. Każdy model ma jedną ścieżkę endpointu współdzieloną przez obsługiwane typy API.
Aby skonfigurować trasę, ustaw endpoint_route w elemencie docelowym na ścieżkę względną, a nie pełny adres URL. Unity Gateway dodaje trasę do końca base_url, po dowolnej ścieżce, którą base_url już zawiera.
interfejs użytkownika
- Otwórz okno dialogowe „Utwórz usługę dostawcy modelu”, jak opisano w sekcji „Utwórz usługę dostawcy modelu”, i wybierz Własne w sekcji Dostawca.
- W sekcji Models wpisz nazwę modelu, wybierz API types, które model obsługuje, i wpisz ścieżkę względną w polu Endpoint route (optional).
- Kliknij Dodaj model. Powtarzaj dla każdego modelu.
- Kliknij pozycję Utwórz.
interfejs API REST
Poniższe żądanie konfiguruje oddzielne trasy dla modelu czatu i modelu osadzania:
databricks api post \
"/api/2.1/unity-catalog/model-provider-services?parent=schemas/main.default&model_provider_service_id=my_provider" \
--json '{
"config": {
"provider_type": "EXTERNAL_MODEL_PROVIDER_TYPE_CUSTOM",
"targets": [
{
"model": "chat-model",
"native_api_types": ["openai/v1/chat/completions"],
"endpoint_route": "serve/openai/chat"
},
{
"model": "embedding-model",
"native_api_types": ["openai/v1/embeddings"],
"endpoint_route": "serve/openai/embed"
}
],
"custom": {
"direct": {
"base_url": "https://api.example.com/gateway",
"api_key": { "plaintext": "placeholder-api-key" }
}
}
}
}'
W związku z tym base_url, żądania używają następujących adresów URL upstream:
-
chat-model:https://api.example.com/gateway/serve/openai/chat -
embedding-model:https://api.example.com/gateway/serve/openai/embed
Jeśli pominiesz endpoint_route lub ustawisz je jako pusty ciąg, Unity Gateway używa base_url bez zmian.
native_api_types wybiera tłumaczenie API dla każdego modelu. Nie wybiera ani nie zmienia trasy nadrzędnej.
Zaktualizuj usługę dostawcy modeli
Musisz być właścicielem lub mieć MANAGE. Typ dostawcy jest niezmienny.
interfejs użytkownika
Edytuj konfigurację usługi dostawcy modeli z interfejsu Unity Gateway lub Eksploratora katalogu. Zmiany są stosowane na miejscu.
interfejs API REST
databricks api patch \
"/api/2.1/unity-catalog/model-provider-services/main.default.my_provider?update_mask=comment" \
--json '{"comment": "Updated: routes to a custom provider"}'
CLI
databricks ai-gateway update-model-provider-service model-provider-services/main.default.my_provider comment \
--json '{"comment": "Updated: routes to a custom provider"}'
Terraform
Edytuj databricks_ai_gateway_model_provider_service (lub dowolne inne pole modyfikowalne) 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_provider_service(
name="model-provider-services/main.default.my_provider",
update_mask=FieldMask(paths=["comment"]),
model_provider_service=c.ModelProviderService(
comment="Updated: routes to a custom provider"
),
)
Zestaw SDK dla języka Go
updated, err := w.AiGateway.UpdateModelProviderService(ctx,
catalog.UpdateModelProviderServiceRequest{
Name: "model-provider-services/main.default.my_provider",
UpdateMask: *fieldmask.New([]string{"comment"}),
ModelProviderService: catalog.ModelProviderService{
Comment: "Updated: routes to a custom provider",
},
})
Go Modular SDK
mask, err := types.NewFieldMask[aigateway.ModelProviderService]("comment")
updated, err := c.UpdateModelProviderService(ctx,
aigateway.UpdateModelProviderServiceRequest{
ModelProviderService: &aigateway.ModelProviderService{
Name: ptr("model-provider-services/main.default.my_provider"),
Comment: ptr("Updated: routes to a custom provider"),
},
UpdateMask: mask,
})
Java SDK
ModelProviderService updated =
w.aiGateway()
.updateModelProviderService(
new UpdateModelProviderServiceRequest()
.setName("model-provider-services/main.default.my_provider")
.setUpdateMask(FieldMask.newBuilder().addPaths("comment").build())
.setModelProviderService(
new ModelProviderService()
.setComment("Updated: routes to a custom provider")));
JS Modular SDK
import { modelProviderServiceFieldMask } from '@databricks/sdk-aigateway/v1';
const updated = await client.updateModelProviderService({
modelProviderService: {
name: 'model-provider-services/main.default.my_provider',
comment: 'Updated: routes to a custom provider',
},
updateMask: modelProviderServiceFieldMask('comment'),
});
Usuwanie usługi dostawcy modelu
Musisz być właścicielem lub mieć MANAGE.
interfejs użytkownika
Otwórz usługę dostawcy modelu w interfejsie Unity Gateway lub Eksploratorze katalogu i wybierz Usuń w menu kebabu.
interfejs API REST
databricks api delete "/api/2.1/unity-catalog/model-provider-services/main.default.my_provider"
CLI
databricks ai-gateway delete-model-provider-service model-provider-services/main.default.my_provider
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_provider_service(
name="model-provider-services/main.default.my_provider"
)
Zestaw SDK dla języka Go
err := w.AiGateway.DeleteModelProviderService(ctx,
catalog.DeleteModelProviderServiceRequest{
Name: "model-provider-services/main.default.my_provider",
})
Go Modular SDK
err := c.DeleteModelProviderService(ctx,
aigateway.DeleteModelProviderServiceRequest{
Name: ptr("model-provider-services/main.default.my_provider"),
})
Java SDK
w.aiGateway()
.deleteModelProviderService(
new DeleteModelProviderServiceRequest()
.setName("model-provider-services/main.default.my_provider"));
JS Modular SDK
await client.deleteModelProviderService({
name: 'model-provider-services/main.default.my_provider',
});