AIゲートウェイエンドポイントのクエリ
ベータ版
この機能はベータ版です。アカウント管理者は、アカウント コンソールの [プレビュー] ページからこの機能へのアクセスを制御できます。 「Databricks プレビューの管理」を参照してください。
このページでは、サポートされているAPIsを使用してAI Gateway (ベータ版)エンドポイントをクエリする方法について説明します。
要件
- お使いのアカウントで AI ゲートウェイ (ベータ版) プレビューが有効になっています。「Databricks プレビューの管理」を参照してください。
- AI Gateway (ベータ) がサポートされているリージョン内の Databricks ワークスペース。
- ワークスペースで Unity Catalog が有効になりました。「Unity Catalog のワークスペースを有効にする」を参照してください。
サポートされているAPIsと統合
AI Gateway は次のAPIsと統合をサポートしています。
-
統合APIs : Databricks上のモデルをクエリするためのOpenAI互換インターフェース。 各モデルのクエリ方法を変更することなく、異なるプロバイダーのモデル間をシームレスに切り替えることができます。
-
ネイティブAPIs : 最新のモデルとプロバイダー固有の機能にアクセスするためのプロバイダー固有のインターフェース。
-
コーディング エージェント : コーディング エージェントをAI Gateway と統合して、 AI支援開発ワークフローに一元的なガバナンスとモニタリングを追加します。 「コーディングエージェントとの統合」を参照してください。
統合APIsでエンドポイントをクエリする
統合APIs 、 Databricks上のモデルをクエリするためのOpenAI互換インターフェースを提供します。 統合されたAPIsを使用すると、コードを変更せずに、さまざまなプロバイダーのモデル間をシームレスに切り替えることができます。
MLflow チャット完了 API
- Python
- REST API
from openai import OpenAI
import os
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url="https://<ai-gateway-url>/mlflow/v1"
)
chat_completion = client.chat.completions.create(
messages=[
{"role": "user", "content": "Hello!"},
{"role": "assistant", "content": "Hello! How can I assist you today?"},
{"role": "user", "content": "What is Databricks?"},
],
model="<ai-gateway-endpoint>",
max_tokens=256
)
print(chat_completion.choices[0].message.content)
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"model": "<ai-gateway-endpoint>",
"max_tokens": 256,
"messages": [
{"role": "user", "content": "Hello!"},
{"role": "assistant", "content": "Hello! How can I assist you today?"},
{"role": "user", "content": "What is Databricks?"}
]
}' \
https://<ai-gateway-url>/mlflow/v1/chat/completions
<ai-gateway-url> AI ゲートウェイ URL に置き換え、 <ai-gateway-endpoint> AI ゲートウェイのエンドポイント名に置き換えます。
MLflow 埋め込み API
- Python
- REST API
from openai import OpenAI
import os
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url="https://<ai-gateway-url>/mlflow/v1"
)
embeddings = client.embeddings.create(
input="What is Databricks?",
model="<ai-gateway-endpoint>"
)
print(embeddings.data[0].embedding)
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"model": "<ai-gateway-endpoint>",
"input": "What is Databricks?"
}' \
https://<ai-gateway-url>/mlflow/v1/embeddings
<ai-gateway-url> AI ゲートウェイ URL に置き換え、 <ai-gateway-endpoint> AI ゲートウェイのエンドポイント名に置き換えます。
ネイティブAPIsを使用してエンドポイントをクエリする
ネイティブAPIs Databricks上のモデルをクエリするためのプロバイダー固有のインターフェイスを提供します。 ネイティブAPIsを使用して、プロバイダー固有の最新機能にアクセスします。
OpenAI レスポンス API
- Python
- REST API
from openai import OpenAI
import os
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url="https://<ai-gateway-url>/openai/v1"
)
response = client.responses.create(
model="<ai-gateway-endpoint>",
max_output_tokens=256,
input=[
{
"role": "user",
"content": [{"type": "input_text", "text": "Hello!"}]
},
{
"role": "assistant",
"content": [{"type": "output_text", "text": "Hello! How can I assist you today?"}]
},
{
"role": "user",
"content": [{"type": "input_text", "text": "What is Databricks?"}]
}
]
)
print(response.output)
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"model": "<ai-gateway-endpoint>",
"max_output_tokens": 256,
"input": [
{
"role": "user",
"content": [{"type": "input_text", "text": "Hello!"}]
},
{
"role": "assistant",
"content": [{"type": "output_text", "text": "Hello! How can I assist you today?"}]
},
{
"role": "user",
"content": [{"type": "input_text", "text": "What is Databricks?"}]
}
]
}' \
https://<ai-gateway-url>/openai/v1/responses
<ai-gateway-url> AI ゲートウェイ URL に置き換え、 <ai-gateway-endpoint> AI ゲートウェイのエンドポイント名に置き換えます。
AnthropicメッセージAPI
- Python
- REST API
import anthropic
import os
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
client = anthropic.Anthropic(
api_key="unused",
base_url="https://<ai-gateway-url>/anthropic",
default_headers={
"Authorization": f"Bearer {DATABRICKS_TOKEN}",
},
)
message = client.messages.create(
model="<ai-gateway-endpoint>",
max_tokens=256,
messages=[
{"role": "user", "content": "Hello!"},
{"role": "assistant", "content": "Hello! How can I assist you today?"},
{"role": "user", "content": "What is Databricks?"},
],
)
print(message.content[0].text)
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"model": "<ai-gateway-endpoint>",
"max_tokens": 256,
"messages": [
{"role": "user", "content": "Hello!"},
{"role": "assistant", "content": "Hello! How can I assist you today?"},
{"role": "user", "content": "What is Databricks?"}
]
}' \
https://<ai-gateway-url>/anthropic/v1/messages
<ai-gateway-url> AI ゲートウェイ URL に置き換え、 <ai-gateway-endpoint> AI ゲートウェイのエンドポイント名に置き換えます。
ジェミニAPI
- Python
- REST API
from google import genai
from google.genai import types
import os
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
client = genai.Client(
api_key="databricks",
http_options=types.HttpOptions(
base_url="https://<ai-gateway-url>/gemini",
headers={
"Authorization": f"Bearer {DATABRICKS_TOKEN}",
},
),
)
response = client.models.generate_content(
model="<ai-gateway-endpoint>",
contents=[
types.Content(
role="user",
parts=[types.Part(text="Hello!")],
),
types.Content(
role="model",
parts=[types.Part(text="Hello! How can I assist you today?")],
),
types.Content(
role="user",
parts=[types.Part(text="What is Databricks?")],
),
],
config=types.GenerateContentConfig(
max_output_tokens=256,
),
)
print(response.text)
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"role": "user",
"parts": [{"text": "Hello!"}]
},
{
"role": "model",
"parts": [{"text": "Hello! How can I assist you today?"}]
},
{
"role": "user",
"parts": [{"text": "What is Databricks?"}]
}
],
"generationConfig": {
"maxOutputTokens": 256
}
}' \
https://<ai-gateway-url>/gemini/v1beta/models/<ai-gateway-endpoint>:generateContent
<ai-gateway-url> AI ゲートウェイ URL に置き換え、 <ai-gateway-endpoint> AI ゲートウェイのエンドポイント名に置き換えます。