プロバイダーをモデルプロバイダーサービスとして登録する方法、アクセス権の付与、Unity Gatewayの機能設定、削除方法を学びましょう。
Requirements
-
モデルプロバイダーサービスを作成するスキーマでは
CREATE SERVICE、さらにそのカタログとスキーマではUSE CATALOGとUSE SCHEMAが必要です。 - 登録する外部プロバイダーの資格情報 (OpenAI API キーや AWS アクセス キー ペアなど)。
- Azure OpenAI または Microsoft Foundry をキーやシークレットではなくサービス資格情報で認証するには、既存のサービス資格情報を所有し、その資格情報に対して
ACCESSが設定されている必要があります。 サービス認証でAzure OpenAIまたはMicrosoft Foundryを認証する方法を参照してください。
値をインラインで保存する代わりに、プロバイダーの資格情報を顧客所有の Unity Catalog シークレットで保護するには、既存の Unity Catalog シークレットと、そのシークレットに対する READ SECRET が必要です。
Unity Catalog シークレットを使用したプロバイダー資格情報の裏付けを参照してください。
モデルプロバイダーサービスの作成
モデル プロバイダー サービスと モデル サービス は、Unity カタログ スキーマ内で 1 つの名前名前空間を共有します。 スキーマ内のモデル サービスで既に使用されている場合は、モデル プロバイダー サービスの名前を使用できません。その逆も同様です。
Unity Gateway UIまたはカタログエクスプローラーでモデルプロバイダーサービスを作成します。 プログラム的に作成する場合は、REST API、Azure Databricks SDK、Databricks CLI、Terraform、または宣言的自動化バンドル(DAB)を使いましょう。
UI
- 次のいずれかの操作を行います。
- ワークスペースのサイドバーで 「Unity Gateway」をクリックし、「 Providers 」タブを開き、「 Provider」をクリックします。
- カタログエクスプローラーで、モデルプロバイダーサービスを作成したいスキーマに移動し、「Create>Service」をクリックし、「Create a service」ダイアログで「Model provider service」を選択します。
- モデル プロバイダー サービスの名前を入力し、作成するカタログとスキーマを選択します。 カタログ エクスプローラーから開始すると、カタログとスキーマがカタログ エクスプローラーによって事前入力されます。
- プロバイダーの種類を選択し、プロバイダーの接続の詳細と資格情報を入力します。
- Create をクリックしてください。 Azure Databricksは、資格情報を暗号化して格納します。 この時点以降、UI には表示されません。
REST API
POSTを/api/2.1/unity-catalog/model-provider-servicesに送信し、parentとmodel_provider_service_idをクエリパラメータとして渡します。
provider_typeと正確に一致するプロバイダーブロックを1つ設定します。targets到達可能な上流モデルを許可リストし、秘密は平文としてインラインで提供されます。
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
親スキーマとリーフ名を渡し、設定に --jsonを添えて提供します。
provider_typeと正確に1つの一致するプロバイダーブロックを設定し、targets到達可能な上流モデルを許可リストし、秘密は平文としてインラインで提供されます。 CLIをインストールするには、「 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
DatabricksのTerraformプロバイダーとdatabricks_ai_gateway_model_provider_serviceリソースを使ってモデルプロバイダーサービスを作成・管理します。 APIキーを sensitive = true 変数に通すことで、実際のキーをソース管理から遠ざける( -var または 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(ベータ版)
バンドル内でモデルプロバイダーサービスを定義し、databricks bundle deployとともに展開します。 APIキーをbundle変数に通すことで、実際のキーをソース管理から遠ざける( --var や 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}
Python SDK
Databricks SDK for 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"
),
)
),
),
),
)
Go SDK (ソフトウェア開発キット)
Databricks SDK for 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
Go SDKパッケージを使ってモデルプロバイダーサービスを作成・管理します。 オプションフィールドはポインタなので、例では1行のヘルパー 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
Databricks SDK for Javaでモデルプロバイダーサービスを作成・管理:
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
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' },
},
},
},
},
},
},
},
},
});
プロバイダーおよびその認証方法の全リストについては、 Databricks外部のモデルプロバイダーを参照してください。
サービス認証でAzure OpenAIまたはMicrosoft Foundryを認証する
Azure OpenAIやMicrosoft Foundryプロバイダーは、APIキーやMicrosoft Entra IDのサービスプリンシパルクライアント秘密を保存する代わりに、サービス認証情報で認証できます。 サービス認証はUnity Catalogが管理するAzureのアイデンティティを保持するため、長期存在するシークレットがモデルプロバイダーサービスにコピーされることはありません。Azure Databricksはそのアイデンティティから短命トークンを取得して各リクエストを認証します。
モデル プロバイダー サービスを作成するで説明されているように、モデル プロバイダー サービスを作成してください。 プロバイダータイプとしてAzure OpenAIまたはMicrosoft Foundryを選択し、エンドポイントの基本URLを含む接続詳細を入力します。 次に 、認証メソッド を サービス認証に 設定し、APIキーやクライアントシークレットを入力する代わりに認証情報を選択してください。 サービス認証情報は秘密のみを置き換えるため、エンドポイントのベースURLは依然として必要です。
次の要件を確認します。
モデルプロバイダーサービスの所有者はサービス認証に
ACCESSしています。 Azure Databricksはリクエストを送る際に所有者のアクセスを再確認するため、プロバイダーが使用されている間は所有者がアクセス権を保持しなければなりません。 取り消すと、プロバイダーにEXECUTEを持っている発信者も含めて、全員の問い合わせが停止します。 所有者に認証情報へのアクセスを付与するには:GRANT ACCESS ON SERVICE CREDENTIAL <service-credential-name> TO `<model-provider-service-owner>`;認証情報の目的は保存ではなく サービスにあります。
認証情報はリクエストが来るワークスペースで利用可能です。 ワークスペースのバインディングは依然として適用されるため、認証情報が拘束されていないワークスペースからのリクエストはそこで失敗します。モデルプロバイダーサービス自体はメタストアを共有するどのワークスペースからでもアクセス可能です。
サービス認証のAzureアイデンティティは、あなたが問い合わせる予定のAzure OpenAIまたはMicrosoft Foundryのデプロイメントを呼び出す権限を持っています。 サービス資格情報を作成するには、「 サービス資格情報の作成」を参照してください。
プロバイダーに問い合わせる電話は、他のプロバイダーと同じ助成金が必要です。 サービス認証情報の権限は不要で、それが認証情報自体を手の届かない状態にしています。
モデルプロバイダーサービスは内部識別子で認証情報を追跡するため、クエリ失敗なく資格情報を変更できます。
認証情報を削除するとクエリは失敗し、モデルプロバイダーサービスが参照している警告もありません。 この認証情報への参照がないか確認してから削除してください。
既存のモデルプロバイダーサービスをサービス認証情報とAPIキーやクライアントシークレット認証の間で切り替えることはできません。 代わりに新しいモデルプロバイダーサービスを作成しましょう。
カスタムプロバイダーAPIキーをヘッダーで送信します
カスタムプロバイダーはデフォルトでAPIキーをベアラートークンとして送信します。 エンドポイントが特定のヘッダーのキーを期待する場合は、APIキーヘッダー認証を使い、自分でヘッダー名を付けましょう。 Azure Databricksは各アウトバウンドリクエストでキーを<header name>: <header value>として送信します。
モデル プロバイダー サービスを作成するで説明されているように、モデル プロバイダー サービスを作成してください。 プロバイダータイプとして Custom を選択し、 Authメソッド を APIキーヘッダー に設定し、エンドポイントが期待する ヘッダー名 ( X-API-Key や Ocp-Apim-Subscription-Keyなど)と ヘッダーの値を入力します。
この 2 つの方法は相互排他的です。カスタムプロバイダーは、ベアラー トークンまたは名前付きヘッダーのいずれか一方のみを使用し、両方を同時に使用することはありません。 ヘッダー認証は正確に1つのヘッダーを扱います。
ヘッダー名は有効なHTTPヘッダー名でなければなりません。文字、数字、文字 !#$%&'*+-.^_`|~、最大255文字まで。 スペース、コロン、スラッシュ、改行など、他の文字は除外されます。
Unity Catalogのシークレットでプロバイダーの認証情報を保護する
プロバイダーの認証情報をインラインで保存する代わりに、その値を格納している顧客所有の Unity Catalog シークレット を参照するようにモデルプロバイダーサービスを設定できます。 Azure Databricksはクエリ時にモデルプロバイダーのサービスオーナーのアクセス下でシークレットを読み取り、モデルプロバイダーサービスに値をコピーすることはありません。したがってシークレットのローテーションはモデルプロバイダーサービスに変更されずに有効となります。
これは、認証情報が単一のインライン値であるすべてのプロバイダーに適用されます:OpenAI、Azure OpenAI、Anthropic、Amazon Bedrock、Amazon Bedrock Mantle、Microsoft Foundry、Google Gemini Enterprise、Custom。
モデル プロバイダー サービスを作成するで説明されているように、モデル プロバイダー サービスを作成してください。 プロバイダーの種類を選択し、接続情報を入力してください。 認証情報( APIキーなど)については、認証タイプを Plaintext から Secretに変更し、Unityカタログのシークレットを識別するカタログ、スキーマ、シークレットを選択します。
次の要件を確認します。
モデルプロバイダーサービスの所有者は、Unity Catalog のシークレットに対する
READ SECRET権限を持っています。 Azure Databricksはリクエストを送る際に所有者のアクセスを再確認するため、プロバイダーが使用されている間は所有者がアクセス権を保持しなければなりません。 取り消すと、プロバイダーにEXECUTEを持っている発信者も含めて、全員の問い合わせが停止します。 所有者にシークレットへのアクセスを許可するには:GRANT READ SECRET ON SECRET <catalog>.<schema>.<secret> TO `<model-provider-service-owner>`;参照する前に、Unity Catalog シークレットが存在している必要があります。 Unity Catalogの秘密を作成・管理するには、「 Unity Catalogの秘密」を参照してください。
プロバイダーに問い合わせる電話は、他のプロバイダーと同じ助成金が必要です。 彼らはUnity Catalogの秘密に対して特別な権限を必要としません。これが秘密値を手の届かない状態に保っているのです。
認証情報をローテーションするには、モデルプロバイダーサービスを変更することなく、Unity Catalog のシークレットの値を更新します。
Unity Catalogのシークレットを削除すると、クエリは失敗します。 モデルプロバイダーサービスは壊れた参照を保持し、依存関係を確認できるようにし、存在する秘密を参照するように更新することでプロバイダーを復元できます。
モデルプロバイダーサービスを削除しても、参照されているUnity Catalogのシークレットは決して消えません。
各ユーザーのClaudeまたはChatGPTサブスクリプションをご利用ください
APIキーを保存する代わりに、モデルプロバイダーサービスは各呼び出し者が自分のClaudeやChatGPTサブスクリプションをコーディングエージェントに持参できるようにします。 サービスは認証情報を保存しません。 各呼び出し元は自分のサブスクリプションでサインインし、リクエストはそれに対して請求されます。
モデルプロバイダーサービスを作成で説明されているようにモデルプロバイダーサービスを作成し、次にプロバイダーの種類と認証モードを選択します:
- Claude:プロバイダータイプとしてAnthropicを選択し、Claude Max / Enterprise認証モードを選択してください。 Claude Codeを接続するには、Claude Max and Anthropic Enterprise supportをご覧ください。
- ChatGPT: プロバイダータイプとして OpenAI を選択し、 ChatGPT Go / Plus / Pro / Enterprise プラン の認証モードを選択してください。 Codexに接続するには、 ChatGPTサブスクリプションサポートをご覧ください。
モデルプロバイダーサービスへのアクセスを付与する
デフォルトでは、モデルプロバイダーのサービスオーナーのみがクエリ可能です。 他のユーザーがモデルプロバイダー サービスにクエリを実行できるようにするには、そのサービスに対する EXECUTE に加えて、そのカタログとスキーマに対する USE CATALOG と USE SCHEMA を付与します。 モデル プロバイダー サービスが推論テーブルにログを記録する場合は、テーブルに SELECT を付与して、ログに記録された要求と応答を読み取るようにします。
UI
- カタログエクスプローラーでモデルプロバイダーサービスを開くか、 Unity Gateway に行きサービスを選択してください。
- [アクセス許可] タブに移動します。
- [許可] をクリックします。
- アクセス権を付与するユーザー、グループ、またはサービス プリンシパルを選択します。
- EXECUTE 特権を選択します。
- [許可] をクリックします。
REST API
databricks api patch \
"/api/2.1/unity-catalog/permissions/model_provider_service/main.default.my_provider" \
--json '{
"changes": [
{ "principal": "data-team", "add": ["EXECUTE"] }
]
}'
CLI
Databricks CLIで EXECUTE を付与してください。 CLIをインストールするには、「 Databricks CLIのインストールまたは更新」をご覧ください。
databricks grants update model_provider_service main.default.my_provider \
--json '{"changes": [{"principal": "data-team", "add": ["EXECUTE"]}]}'
Terraform
Databricks Terraform プロバイダーと databricks_grant リソースを使用して EXECUTE を付与する:
resource "databricks_grant" "example" {
model_provider_service = "main.default.my_provider"
principal = "data-team"
privileges = ["EXECUTE"]
}
DAB(ベータ版)
バンドル内のモデルプロバイダーサービスリソースに grants ブロックを追加し、再デプロイしてアクセス権を付与します。
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]
Python SDK
Databricks SDK for Python を使用して EXECUTE を付与する:
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])],
)
Go SDK (ソフトウェア開発キット)
Databricks SDK for GoでEXECUTEを付与する:
_, 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
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)))));
アクセスの付与および発見の詳細については、「 外部モデルプロバイダーへのアクセスを発見・統治する(モデルプロバイダーサービス)」をご覧ください。
機能の構成
モデルプロバイダーのサービスはUnity Gatewayを経由するため、他のUnity Gatewayトラフィックに使用するのと同じガバナンスおよびオブザーバビリティ機能を適用してください:
- 推論ログ。 Unity カタログ テーブルへの要求と応答をログに記録します。 推論テーブルへのリクエストとレスポンスのログ記録を参照してください。
- レート制限。 容量とコストを管理するために、1 分あたりのクエリ数を上限とします。 「 モデルおよびMCPサービスへのレート制限適用」を参照してください。
- サービス ポリシー。 サービスポリシーを付与することで、安全でないコンテンツのブロックや機密データの編集など、各やり取りの内容を管理できます。 AI セキュリティ保護可能なリソースのサービス ポリシーとサービス ポリシーの作成とアタッチに関する説明を参照してください。
価格乗算器の設定
デフォルトでは、Azure Databricksはプロバイダーの公開リストプライスを使って外部モデル支出を推定します。 プロバイダーの料金が異なる場合は、割引やマージンを反映した価格乗数を設定しましょう。 例えば、 0.8 はリスト価格の80% を使い、 1.2 は120%を使用します。
- モデルプロバイダーサービスを作成するか、カタログエクスプローラーまたは Unity Gateway にある既存のモデルプロバイダーサービスを開いて 編集 をクリックします。
- 詳細オプションを展開します。
- 価格乗数を入力します。
- 作成または保存をクリックします。
乗算はモデルプロバイダーサービスを通じて利用可能なすべてのモデルに適用されます。
system.ai_gateway.external_model_spendの計算された支出は設定された乗数を反映しています。 変更は設定が有効になった後に行われたリクエストに適用されます。以前のリクエストはリスト価格または以前に設定された乗数で推定されます。
設定された乗数には カスタムプライシング タグが表示されます。 調整後価格は価格表に点線で下線が引かれています。 調整価格にカーソルを合わせて、調整価格と提供者のリスト価格を比較してください。
カスタムプロバイダーのエンドポイントルートを設定する
エンドポイント経路は任意です。 カスタムプロバイダーが同じ base_url 配下の異なるパスで異なるモデルをホストしている場合に使うべきです。 モデルは複数のAPIタイプをサポートすることができます。 各モデルは、対応するAPI型で共有される1つのエンドポイントルートを持っています。
ルートを設定するには、ターゲットの endpoint_route を完全なURLではなく相対パスに設定してください。 Unity Gatewayは、base_urlがすでに含むパスの後に、ルートをbase_urlの終わりに付け加えます。
UI
- モデルプロバイダーサービスを作成ダイアログを、モデルプロバイダーサービスを作成で説明されているように開き、プロバイダセクションでカスタムを選択します。
- モデル セクションでモデル名を入力し、モデルが提供する API タイプ を選択し、エンドポイント ルート (任意) に相対パスを入力します。
- 「モデルを追加」をクリックします。 これを各モデルごとに繰り返します。
- Create をクリックしてください。
REST API
以下のリクエストは、チャットモデルと埋め込みモデルの別々のルートを設定します:
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" }
}
}
}
}'
この base_url を使用すると、要求は次のアップストリーム URL を使用します。
-
chat-model:https://api.example.com/gateway/serve/openai/chat -
embedding-model:https://api.example.com/gateway/serve/openai/embed
endpoint_routeを省略したり空文字列に設定した場合、Unity Gatewayはそのままbase_urlを使います。
native_api_types 各モデルのAPI変換を選択します。 上流ルートを選択したり変更したりはしません。
モデルプロバイダーサービスの更新
所有者であるか、MANAGE を持っている必要があります。 プロバイダータイプは不変です。
UI
Unity Gateway UIまたはカタログエクスプローラーからモデルプロバイダーサービスの設定を編集してください。 変更は現地で適用されます。
REST API
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
databricks_ai_gateway_model_provider_serviceリソースのcomment(または他の可変フィールド)を編集して再適用してください。 変更は現地で適用されます。
DAB(ベータ版)
バンドルリソース内の comment (または他の可変フィールド)を編集して databricks bundle deployを実行します。 変更は現地で適用されます。
Python SDK
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"
),
)
Go SDK (ソフトウェア開発キット)
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'),
});
モデル プロバイダー サービスを削除する
所有者であるか、MANAGE を持っている必要があります。
UI
Unity Gateway UIまたはカタログエクスプローラーでモデルプロバイダーサービスを開き、kebabメニューから 「delete 」を選択します。
REST API
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
terraform destroyを実行するか、リソースブロックを削除して再適用してください。
DAB(ベータ版)
リソースをバンドルから削除し、 databricks bundle deploy を実行して削除してください。
databricks bundle destroy これも動作しますが、バンドルが管理するすべての資源を除去してしまい、このリソースだけでなくほかのリソースも削除されます。
Python SDK
w.ai_gateway.delete_model_provider_service(
name="model-provider-services/main.default.my_provider"
)
Go SDK (ソフトウェア開発キット)
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',
});