メインコンテンツまでスキップ

Model Servingにおける外部モデル

備考

新しい Unity AI ゲートウェイ ベータ版をお試しください

新しいUnity AI Gatewayエクスペリエンスがベータ版で利用可能です。新しいUnity AI Gatewayは、拡張された機能を持つLLMエンドポイントとコーディングエージェントを管理するためのエンタープライズコントロールプレーンです。Unity AI GatewayでのAIガバナンスを参照してください。

重要

この記事のコード例では、 パブリック プレビューである MLflow Deployments CRUD API の使用方法を示します。

この記事では、Model Servingにおける外部モデルについて、サポートされるモデルプロバイダーと制限事項を含めて説明します。

外部モデルとは何ですか?

重要

外部モデルを提供するモデルサービングエンドポイントで、AI Gateway を構成できるようになりました。AI Gateway は、ガバナンス、モニタリング、および本番運用の準備をこれらのモデルサービングエンドポイントにもたらします。Unity AI GatewayでのAIガバナンスを参照してください。

外部モデルとは、Databricks の外部でホストされているサードパーティのモデルです。Model Servingによってサポートされている外部モデルを使用すると、組織内でOpenAIやAnthropicなどの様々な大規模言語モデル(LLM)プロバイダーの利用と管理を効率化できます。Model Servingをプロバイダーとして使用してカスタムモデルを提供することもできます。これにより、これらのエンドポイントのレート制限が提供されます。このサポートの一環として、Model Servingは、特定のLLM関連のリクエストを処理するための統合エンドポイントを提供することにより、これらのサービスとの対話を簡素化する高レベルのインターフェイスを提供します。

さらに、Databricksの外部モデルサポートは、一元化された資格情報管理を提供します。APIキーを1つの安全な場所に保存することで、組織はシステム全体での機密性の高いAPIキーの公開を最小限に抑え、セキュリティ体制を強化できます。また、コード内でこれらのキーが公開されるのを防ぎ、エンドユーザーがキーを安全に管理する必要がなくなります。

外部モデルエンドポイントの作成と、MLflow Deployments SDK を使用したそれらのエンドポイントが提供するサポートされているモデルのクエリーに関するステップバイステップのガイダンスについては、「チュートリアル:OpenAI モデルをクエリーするための外部モデルエンドポイントを作成する」を参照してください。Serving UI と REST API の使用方法については、以下のガイドを参照してください。

要件

モデルプロバイダー

Model Servingにおける外部モデルは、さまざまなモデルプロバイダーをサポートするように設計されています。プロバイダーは、OpenAI、Anthropicなどの機械学習モデルのソースを表します。各プロバイダーには固有の特性と構成があり、これらは外部モデルエンドポイント構成external_modelフィールド内にカプセル化されています。

以下のプロバイダーがサポートされています。

  • openai : OpenAI によって提供されるモデルと、AAD を使用した Azure OpenAI の Azure インテグレーションによって提供されるモデル。
  • anthropic : Anthropic が提供するモデル向け。
  • cohere : Cohere が提供するモデル用。
  • **amazon-bedrock**: Amazon Bedrock が提供するモデルの場合。
  • **google-cloud-vertex-ai**: Google クラウド Vertex AI によって提供されるモデルの場合。
  • databricks-model-serving :互換性のあるスキーマを持つモデルサービングエンドポイントの場合。エンドポイントの構成を参照してください。
  • カスタム :Databricks では直接サポートされていないものの、OpenAI APIと互換性のあるカスタムプロキシの背後にある代替プロバイダーまたはモデル向け。

ここに記載されていないプロバイダーのサポートをリクエストするには、**カスタム**プロバイダーオプションを使用するか、Databricksアカウントチームにお問い合わせください。

サポートされているモデル

選択するモデルは、API呼び出しから得られる応答の結果に直接影響します。そのため、ユースケースの要件に合ったモデルを選択してください。たとえば、会話応答を生成するには、チャットモデルを選択できます。逆に、テキストの埋め込みを生成するには、埋め込みモデルを選択できます。

サポートされているモデルをご覧ください。

Model Servingエンドポイントで提供されるモデルを使用する

Model Servingエンドポイントは、プロバイダーとしてllm/v1/completionsllm/v1/chat、およびllm/v1/embeddingsのエンドポイントタイプでサポートされています。これらのエンドポイントは、必須としてマークされた標準のクエリパラメーターを受け入れる必要がありますが、他のパラメーターはModel Servingエンドポイントがそれらをサポートするかどうかに応じて無視される可能性があります。

標準クエリパラメーターについては、APIリファレンスのPOST /serving-endpoints/{name}/invocationsを参照してください。

これらのエンドポイントは、以下のOpenAI形式で応答を生成する必要があります。

完了タスクの場合:

Python
{
"id": "123", # Not Required
"model": "test_databricks_model",
"choices": [
{
"text": "Hello World!",
"index": 0,
"logprobs": null, # Not Required
"finish_reason": "length" # Not Required
}
],
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}

チャットタスクの場合:

Python
{
"id": "123", # Not Required
"model": "test_chat_model",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "\n\nHello there, how may I assist you today?",
},
"finish_reason": "stop"
},
{
"index": 1,
"message": {
"role": "human",
"content": "\n\nWhat is the weather in San Francisco?",
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}

エンべディングタスクの場合:

Python
{
"data": [
{
"embedding": [
0.0023064255,
-0.009327292,
.... # (1536 floats total for ada-002)
-0.0028842222,
],
"index": 0
},
{
"embedding": [
0.0023064255,
-0.009327292,
.... #(1536 floats total for ada-002)
-0.0028842222,
],
"index": 0
}
],
"model": "test_embedding_model",
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}

エンドポイント構成

外部モデルを提供し、クエリを実行するには、サービングエンドポイントを設定する必要があります。外部モデルサービングエンドポイントの作成を参照してください。

外部モデルサービングエンドポイントの場合、エンドポイント構成のserved_entitiesセクションにexternal_modelフィールドとそのパラメーターを含める必要があります。サービングエンドポイントで複数の外部モデルを構成する場合は、各外部モデルのトラフィックルーティングの割合を定義するためにtraffic_configを提供する必要があります。

external_modelフィールドは、このエンドポイントがリクエストを転送するモデルを定義します。モデルを指定する際には、プロバイダーが要求しているモデルをサポートしていることが重要です。例えば、プロバイダーとしてのopenaitext-embedding-ada-002のようなモデルをサポートしますが、他のプロバイダーはサポートしない可能性があります。モデルがプロバイダーによってサポートされていない場合、DatabricksはそのモデルにリクエストをルーティングしようとするとHTTP 4xxエラーを返します。

次の表は、 external_model フィールドのパラメーターをまとめたものです。 エンドポイント構成パラメーターに関しては、POST /api/2.0/serving-endpointsエンドポイント構成パラメーターの場合。

パラメーター

説明

name

使用するモデルの名前。たとえば、OpenAIのGPT-3.5-Turboモデルにはgpt-3.5-turboを使用します。これは、対応するキー"model"とともにリクエストボディの一部として渡されます。

provider

このモデルのプロバイダー名を指定します。この文字列値は、サポートされている外部モデルのプロバイダーに対応している必要があります。たとえば、OpenAIのGPT-3.5モデルではopenaiです。

task

タスクは、希望する言語モデルのインタラクションのタイプに相当します。サポートされているタスクは「llm/v1/completions」、「llm/v1/chat」、「llm/v1/embeddings」です。

<provider>_config

モデルに必要な追加の構成詳細が含まれています。これには、APIベースURLの指定とAPIキーが含まれます。エンドポイントのプロバイダーを構成するを参照してください。 custom プロバイダーを使用している場合は、このパラメーターを custom_provider_config として指定します。

以下は、 create_endpoint() API を使用して外部モデルエンドポイントを作成する例です。 この例では、補完エンドポイントに送信された要求は、anthropicによって提供されるclaude-2モデルに転送されます。

Python
import mlflow.deployments

client = mlflow.deployments.get_deploy_client("databricks")

client.create_endpoint(
name="anthropic-completions-endpoint",
config={
&quot;served_entities&quot;: [
{
&quot;name&quot;: &quot;test&quot;,
&quot;external_model&quot;: {
&quot;name&quot;: &quot;claude-2&quot;,
&quot;provider&quot;: &quot;anthropic&quot;,
&quot;task&quot;: &quot;llm/v1/completions&quot;,
&quot;anthropic_config&quot;: {
&quot;anthropic_api_key&quot;: &quot;{{secrets/my_anthropic_secret_scope/anthropic_api_key}}&quot;
}
}
}
]
}
)

エンドポイントのプロバイダーを構成します

エンドポイントを作成する際は、指定されたモデルプロバイダーに必要な構成を提供する必要があります。以下のセクションでは、各モデルプロバイダーで利用可能なエンドポイント構成パラメーターを要約します。

注記

Databricksは、各モデルプロバイダーに提供された資格情報を暗号化して安全に保存します。これらの資格情報は、関連付けられたエンドポイントが削除されると自動的に削除されます。

OpenAI

構成パラメーター

説明

必須

デフォルト

openai_api_key

OpenAIサービスを使用した OpenAI API キーのDatabricksシークレットキーのリファレンス。API キーを直接貼り付ける場合は、 openai_api_key_plaintextを参照してください。

以下のいずれかのフィールドを使用してAPIキーを指定する必要があります:openai_api_key または openai_api_key_plaintext

openai_api_key_plaintext

OpenAIサービスを使用したOpenAI APIキーは、プレーンテキスト文字列として提供されます。Databricks Secretsを使用してキーを参照する場合は、openai_api_keyを参照してください。

次のいずれかのフィールドを使用してAPIキーを指定する必要があります: openai_api_keyまたはopenai_api_key_plaintext

openai_api_type

使用する OpenAI API のタイプを指定するためのオプションのフィールドです。

No

openai

openai_api_base

OpenAI APIのベースURL。

No

https://api.openai.com/v1

openai_api_version

OpenAI APIバージョンを指定するオプションフィールドです。

No

openai_organization

OpenAIで組織を指定するオプションフィールド。

No

Cohere

構成パラメーター

説明

必須

デフォルト

cohere_api_key

Cohere APIキーのDatabricksシークレットキー リファレンス。APIキーを直接貼り付けることを希望する場合は、cohere_api_key_plaintextを参照してください。

以下のいずれかのフィールドを使用してAPIキーを指定する必要があります:cohere_api_key または cohere_api_key_plaintext

cohere_api_key_plaintext

プレーンテキスト文字列として提供されるCohere APIキー。Databricks Secrets を使用してキーを参照する場合は、cohere_api_keyを参照してください。

以下のいずれかのフィールドを使用してAPIキーを指定する必要があります:cohere_api_key または cohere_api_key_plaintext

cohere_api_base

CohereサービスのベースURL

No

Anthropic

構成パラメーター

説明

必須

デフォルト

anthropic_api_key

Anthropic APIキーのDatabricks シークレットキー リファレンス。API キーを直接貼り付ける場合は、 anthropic_api_key_plaintextを参照してください。

以下のいずれかのフィールドを使用してAPIキーを指定する必要があります:anthropic_api_key または anthropic_api_key_plaintext

anthropic_api_key_plaintext

プレーンテキストの文字列として提供されるAnthropic APIキー。Databricks Secrets を使用してキーを参照する場合は、anthropic_api_keyを参照してください。

以下のいずれかのフィールドを使用してAPIキーを指定する必要があります:anthropic_api_key または anthropic_api_key_plaintext

Azure OpenAI

Azure OpenAIは、直接的なOpenAIサービスと比較して異なる特徴があります。概要については、比較ドキュメントをご覧ください。

構成パラメーター

説明

必須

デフォルト

openai_api_key

Azureサービスを使用した OpenAI API キーのDatabricksシークレットキー リファレンス。API キーを直接貼り付ける場合は、 openai_api_key_plaintextを参照してください。

以下のいずれかのフィールドを使用してAPIキーを指定する必要があります:openai_api_key または openai_api_key_plaintext

openai_api_key_plaintext

Azureサービスを使用し、プレーンテキスト文字列として提供されるOpenAI APIキー。Databricks Secrets を使用してキーを参照する場合は、openai_api_keyを参照してください。

以下のいずれかのフィールドを使用してAPIキーを指定する必要があります:openai_api_key または openai_api_key_plaintext

openai_api_type

アクセストークンの検証にazureを使用します。

はい

openai_api_base

Azure が提供する Azure OpenAI API サービスのベース URL。

はい

openai_api_version

日付で指定された、利用するAzure OpenAIサービスのバージョン。

はい

openai_deployment_name

Azure OpenAIサービスのデプロイリソースの名前。

はい

openai_organization

OpenAIで組織を指定するオプションフィールド。

No

Microsoft Entra ID で Azure OpenAI を使用している場合は、エンドポイント設定で以下のパラメーターを使用してください。Databricks は、Microsoft Entra ID トークンのデフォルト スコープとして https://cognitiveservices.azure.com/ を渡します。

構成パラメーター

説明

必須

デフォルト

microsoft_entra_tenant_id

Microsoft Entra ID認証用のテナントID。

はい

microsoft_entra_client_id

Microsoft Entra ID認証のクライアントID。

はい

microsoft_entra_client_secret

Microsoft Entra ID 認証に使用されるクライアント シークレットのDatabricks シークレットキー リファレンス。クライアントシークレットを直接貼り付ける場合は、 microsoft_entra_client_secret_plaintextを参照してください。

以下のいずれかのフィールドを使用してAPIキーを指定する必要があります:microsoft_entra_client_secret または microsoft_entra_client_secret_plaintext

microsoft_entra_client_secret_plaintext

Microsoft Entra ID認証に使用されるクライアントシークレットは、プレーンテキスト文字列として提供されます。Databricks Secrets を使用してキーを参照する場合は、microsoft_entra_client_secretを参照してください。

以下のいずれかのフィールドを使用してAPIキーを指定する必要があります:microsoft_entra_client_secret または microsoft_entra_client_secret_plaintext

openai_api_type

Microsoft Entra IDを使用した認証にはazureadを使用します。

はい

openai_api_base

Azure が提供する Azure OpenAI API サービスのベース URL。

はい

openai_api_version

日付で指定された、利用するAzure OpenAIサービスのバージョン。

はい

openai_deployment_name

Azure OpenAIサービスのデプロイリソースの名前。

はい

openai_organization

OpenAIで組織を指定するオプションフィールド。

No

次の例は、Azure OpenAI を使用してエンドポイントを作成する方法を示しています。

Python
client.create_endpoint(
name="openai-chat-endpoint",
config={
&quot;served_entities&quot;: [{
&quot;external_model&quot;: {
&quot;name&quot;: &quot;gpt-3.5-turbo&quot;,
&quot;provider&quot;: &quot;openai&quot;,
&quot;task&quot;: &quot;llm/v1/chat&quot;,
&quot;openai_config&quot;: {
&quot;openai_api_type&quot;: &quot;azure&quot;,
&quot;openai_api_key&quot;: &quot;{{secrets/my_openai_secret_scope/openai_api_key}}&quot;,
&quot;openai_api_base&quot;: &quot;https://my-azure-openai-endpoint.openai.azure.com&quot;,
&quot;openai_deployment_name&quot;: &quot;my-gpt-35-turbo-deployment&quot;,
&quot;openai_api_version&quot;: &quot;2023-05-15&quot;
}
}
}]
}
)

Google クラウド Vertex AI

構成パラメーター

説明

必須

デフォルト

private_key

Google Cloud Vertex AI サービスにアクセスできるサービスアカウントの、完全なサービスアカウントキー JSON ファイルに関する Databricks シークレットキーのリファレンス。これは、Google クラウドからダウンロードされた JSON キーファイルの全内容であり、private_keyフィールドだけではありません。サービス アカウント キーの管理に関するベスト プラクティスを参照してください。キーを直接貼り付けたい場合は、private_key_plaintextを参照してください。

キーは、次のいずれかのフィールド(private_key または private_key_plaintext)を使用して指定する必要があります。

private_key_plaintext

Google Cloud Vertex AI Service にアクセスできるサービスアカウントの完全なサービスアカウントキーJSON。プレーンテキストシークレットとして提供されます。これは、private_keyフィールドだけでなく、Google クラウドからダウンロードされたJSONキーファイルの内容全体です。サービスアカウントキーの管理に関するベストプラクティスを参照してください。Databricks Secrets を使用してキーを参照する場合は、private_keyを参照してください。

キーは、次のいずれかのフィールド(private_key または private_key_plaintext)を使用して指定する必要があります。

region

これはGoogle クラウド Vertex AIサービスのリージョンです。詳細については、サポートされているリージョンを参照してください。一部のモデルは特定のリージョンでのみ利用可能です。

はい

project_id

これは、サービス アカウントが関連付けられている Google Cloud プロジェクト ID です。

はい

Amazon Bedrock

Amazon Bedrockを外部モデルプロバイダーとして使用するには、顧客は、指定したAWSリージョンでBedrockが有効になっていること、および指定したAWSキー ペアにBedrockサービスとやり取りするための適切な権限があることを確認する必要があります。詳細については、AWS Identity and Access Managementを参照してください。

Amazon Bedrockは複数の認証メカニズムをサポートしています。以下のいずれか 1つ を指定する必要があります。

  • AWS IAMロールを参照する Unity Catalogサービス資格情報
  • AWS インスタンスプロファイル
  • AWS アクセスキー (Databricks Secretsまたはプレーンテキストのいずれかを使用)

アクセスキーを使用する場合は、アクセスキーIDとシークレットアクセスキーの 両方 が必要です。

構成パラメーター

説明

必須

デフォルト

aws_region

使用するAWSリージョン。このリージョンではAmazon Bedrockを有効にする必要があります。

はい

uc_service_credential_name

提供されるエンティティがAWSリソースにアクセスするために使用するUnity Catalogサービス資格情報への参照。資格情報はAWS IAMロールを参照する必要があります。

No

instance_profile_arn

提供されるエンティティがAWSリソースにアクセスするために使用するインスタンスプロファイルのAmazonリソースネーム(ARN)。

No

aws_access_key_id

Databricksシークレット参照を使用して提供される、提供されるエンティティがAWSリソースにアクセスするために使用するAWSアクセスキーID。

No

aws_access_key_id_plaintext

サービスを提供するエンティティがAWSリソースにアクセスするために使用するAWSアクセスキーID(平文の文字列として提供)。

No

aws_secret_access_key

サービス提供対象エンティティが AWS リソースにアクセスするために使用する AWS シークレットアクセスキー。これはアクセスキー ID とペアになっており、Databricks シークレット参照を使用して提供されます。

No

aws_secret_access_key_plaintext

提供されるエンティティがAWSリソースにアクセスするために使用するAWSシークレットアクセスキー。アクセスキーIDとペアになり、プレーンテキスト文字列として提供されます。

No

bedrock_provider

Amazon Bedrockの基盤となるプロバイダー。サポートされている値(大文字と小文字を区別しない):Anthropic、Cohere、AI21Labs、Amazon。

はい

次の例は、インスタンスプロファイルを使用してAmazon Bedrockでエンドポイントを作成する方法を示しています。アクセスキーを使用する場合は、aws_access_key_idaws_secret_access_keyを使用してください。サービス資格情報を使用する場合は、uc_service_credential_nameを使用してください。

Python
client.create_endpoint(
name="bedrock-anthropic-completions-endpoint",
config={
&quot;served_entities&quot;: [
{
&quot;external_model&quot;: {
&quot;name&quot;: &quot;claude-v2&quot;,
&quot;provider&quot;: &quot;amazon-bedrock&quot;,
&quot;task&quot;: &quot;llm/v1/completions&quot;,
&quot;amazon_bedrock_config&quot;: {
&quot;aws_region&quot;: &quot;&lt;YOUR_AWS_REGION&gt;&quot;,
&quot;uc_service_credential_name&quot;: &quot;&lt;YOUR_UC_SERVICE_CREDENTIAL_NAME&gt;&quot;, ## Remove if using other authentication methods
# &quot;instance_profile_arn&quot;: &quot;&lt;YOUR_AWS_INSTANCE_PROFILE_ARN&gt;&quot;,
# &quot;aws_access_key_id&quot;: &quot;{{secrets/my_amazon_bedrock_secret_scope/aws_access_key_id}}&quot;,
# &quot;aws_secret_access_key&quot;: &quot;{{secrets/my_amazon_bedrock_secret_scope/aws_secret_access_key}}&quot;,
&quot;bedrock_provider&quot;: &quot;anthropic&quot;,
},
}
}
]
},
)
注記

既存の Amazon Bedrock ガードレールを AI Gateway 経由で Amazon Bedrock モデルとともに使用するには、X-Amzn-Bedrock-GuardrailIdentifier ヘッダーを任意のガードレール ARN に設定し、必要に応じて X-Amzn-Bedrock-GuardrailVersion を設定してください。これらのヘッダーは Amazon Bedrock に転送されます。

AWSのアクセス許可に問題がある場合は、Databricksは、Amazon Bedrock APIで資格情報を直接確認することを推奨します。

AI21 Labs

構成パラメーター

説明

必須

デフォルト

ai21labs_api_key

AI21 Labs APIキーのDatabricksシークレットキー参照。APIキーを直接貼り付けることを希望する場合は、ai21labs_api_key_plaintextを参照してください。

以下のいずれかのフィールドを使用してAPIキーを指定する必要があります:ai21labs_api_key または ai21labs_api_key_plaintext

ai21labs_api_key_plaintext

プレーンテキスト文字列として提供されるAI21 Labs APIキー。Databricks Secrets を使用してキーを参照する場合は、ai21labs_api_keyを参照してください。

以下のいずれかのフィールドを使用してAPIキーを指定する必要があります:ai21labs_api_key または ai21labs_api_key_plaintext

カスタムプロバイダー

重要

カスタムプロバイダーモデルを使用するには、OpenAI API互換である必要があります。

構成パラメーター

説明

必須

デフォルト

custom_provider_url

カスタムプロバイダーのモデルが存在するURL。URLは特定のAPIエンドポイントを指している必要があります。たとえば、https://api.provider.com/chat/completions

はい

bearer_token_auth

カスタムプロバイダーがベアラートークン認証を利用している場合、必要なフィールドを指定してください。

以下のいずれかのフィールドを使用して認証方法を指定する必要があります:bearer_token_auth または api_key_auth

token

bearer認証用のトークンに関するDatabricksシークレットキーリファレンス。このパラメーターはbearer_token_authの下にネストする必要があります。APIキーを直接貼り付ける場合は、token_plaintextを参照してください。

ベアラー認証を使用する場合は、次のいずれかのフィールド(tokenまたはtoken_plaintext)を使用してAPIキーを提供する必要があります。

token_plaintext

プレーンテキスト文字列として提供されるベアラー認証用のトークン。このパラメーターはbearer_token_authの下にネストされている必要があります。Databricksシークレットを使用してキーを参照する場合は、tokenを参照してください。

ベアラー認証を使用する場合は、次のいずれかのフィールド(tokenまたはtoken_plaintext)を使用してAPIキーを提供する必要があります。

api_key_auth

カスタムプロバイダーがAPIキー認証を利用する場合、必要なフィールドを指定します。

以下のいずれかのフィールドを使用して認証方法を指定する必要があります:bearer_token_auth または api_key_auth

key

APIキー認証のキー。このパラメーターは以下にネストする必要があります。 api_key_auth

はい、APIキー認証を使用する場合。

value

APIキー認証の値に関するDatabricksシークレットキーのリファレンス。APIキーを直接貼り付けたい場合は、value_plaintextを参照してください。

APIキー認証を使用する場合は、次のいずれかのフィールドを使用してAPIキーを指定する必要があります: valueまたはvalue_plaintext

value_plaintext

APIキー認証の値は、プレーンテキスト文字列として提供されます。Databricksシークレットを使用してキーを参照したい場合は、valueを参照してください。

APIキー認証を使用する場合は、次のいずれかのフィールドを使用してAPIキーを指定する必要があります: valueまたはvalue_plaintext

次の例は、**ベアラー認証**を使用してカスタムプロバイダーでエンドポイントを作成する方法を示しています。

Python
client.create_endpoint(
name="custom-provider-completions-endpoint",
config={
&quot;served_entities&quot;: [
{
&quot;external_model&quot;: {
&quot;name&quot;: &quot;custom-provider-model&quot;,
&quot;provider&quot;: &quot;custom&quot;,
&quot;task&quot;: &quot;llm/v1/chat&quot;,
&quot;custom_provider_config&quot;: {
&quot;custom_provider_url&quot;: &quot;https://api.provider.com/chat/completions&quot;,
&quot;bearer_token_auth&quot;: {
&quot;token&quot;: &quot;{{secrets/my_custom_provider_secret_scope/custom_provider_token}}&quot;
}
}
}
}
]
},
)

以下の例は、 API キー認証 を使用してカスタムプロバイダーでエンドポイントを作成する方法を示しています:

Python
client.create_endpoint(
name="custom-provider-completions-endpoint",
config={
&quot;served_entities&quot;: [
{
&quot;external_model&quot;: {
&quot;name&quot;: &quot;custom-provider-model&quot;,
&quot;provider&quot;: &quot;custom&quot;,
&quot;task&quot;: &quot;llm/v1/chat&quot;,
&quot;custom_provider_config&quot;: {
&quot;custom_provider_url&quot;: &quot;https://my-custom-provider.com&quot;,
&quot;api_key_auth&quot;: {
&quot;key&quot;: &quot;X-API-KEY&quot;,
&quot;value&quot;: &quot;{{secrets/my_custom_provider_secret_scope/custom_provider_api_key}}&quot;
}
}
}
}
]
},
)

エンドポイントでAIゲートウェイを構成してください。

レート制限、使用状況の追跡、およびガードレールなどのAI Gateway 機能を有効にするように、エンドポイントを設定することもできます。

モデルサービング エンドポイントでのAIゲートウェイの構成を参照してください。

外部モデルエンドポイントをクエリします

外部モデルエンドポイントを作成すると、ユーザーからのトラフィックを受信する準備が整います。

OpenAI クライアント、REST API、または MLflow Deployments SDK を使用して、エンドポイントにスコアリングリクエストを送信できます。

以下の例は、OpenAI クライアントを使用して Anthropic がホストする claude-2 完了モデルをクエリします。OpenAI クライアントを使用するには、クエリするモデルをホストするモデルサービング エンドポイントの名前を model フィールドに入力します。

この例では、Anthropic モデル プロバイダーから外部モデルにアクセスするために構成された、以前に作成したエンドポイント anthropic-completions-endpointを使用します。 外部モデルのエンドポイントを作成する方法を参照してください。

クエリできる追加のモデルとそのプロバイダーについては、「サポートされているモデル」を参照してください。

Python
import os
import openai
from openai import OpenAI

client = OpenAI(
api_key="dapi-your-databricks-token",
base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)

completion = client.completions.create(
model="anthropic-completions-endpoint",
prompt="what is databricks",
temperature=1.0
)
print(completion)

予想される出力応答形式:

Python
{
"id": "123", # Not Required
"model": "anthropic-completions-endpoint",
"choices": [
{
"text": "Hello World!",
"index": 0,
"logprobs": null, # Not Required
"finish_reason": "length" # Not Required
}
],
"usage": {
"prompt_tokens": 8,
"total_tokens": 8
}
}

追加のクエリ パラメーター

エンドポイントのプロバイダーでサポートされている追加のパラメーターを、クエリの一部として渡すことができます。

例えば:

  • logit_bias (OpenAI、Cohere によってサポートされています)。

  • top_k (Anthropic、Cohereによってサポートされています)。

  • frequency_penalty (OpenAI、Cohere によってサポートされています)。

  • presence_penalty (OpenAI、Cohere によってサポートされています)。

  • stream (OpenAI、Anthropic、Cohere、Amazon Bedrock for Anthropicによってサポートされています。)これは、チャットおよび完了のリクエストでのみ利用可能です。

  • tools (OpenAI、Anthropic、Amazon Bedrock for Anthropicがサポート)。 これは、チャットと完了のリクエストでのみ使用できます。 このパラメーターを使用すると、AnthropicやAmazon Bedrock for Anthropicの コンピュータ 使用 (beta) などの外部機能を統合できます。 「Databricks での関数呼び出し」を参照してください。

外部モデルのネットワーク接続構成のサポート

AWS PrivateLinkを含む外部モデル向けのネットワーク接続構成(NCC)のサポートは、現在パブリックプレビュー中です。プレビューに参加するには、Databricksアカウントチームにお問い合わせください。

制限事項

選択した外部モデルによっては、構成によって、データが元のリージョン外で処理される場合があります。Model Servingの制限と地域を参照してください。

その他のリソース