query les APIs de modèle (services de modèle)
Utilisez Unity AI Gateway pour query des services de modèle dans Unity Catalog avec les APIs de modèle Databricks, en utilisant le SDK compatible OpenAI, les APIs de fournisseur natives ou SQL.
Lorsqu'un service de modèle achemine vers une destination de service fournisseur de modèle, seules les fonctionnalités Unity AI Gateway du service de modèle (telles que les limites de débit, les garde-fous, les tables d'inférence et les fallback) s'appliquent. Toutes les fonctionnalités Unity AI Gateway configurées sur le service fournisseur de modèle lui-même sont ignorées.
Bien start avec l’interrogation des APIs de modèle
Effectuer une query sur une API de modèle en deux étapes :
Étape 1 : Choisir une API de modèle prête à l'emploi
Databricks fournit des APIs de modèle prêtes à l'emploi dans le schéma system.ai, comme system.ai.claude-sonnet-4-5 et system.ai.gpt-5-6-sol. Ils sont immédiatement disponibles sans configuration supplémentaire.
Étape 2 : Envoyer une requête à l’aide de l’API unifiée compatible avec OpenAI
Utilisez l’API MLflow Chat Completions avec le SDK Python OpenAI :
from openai import OpenAI
import os
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
client = OpenAI(
api_key=DATABRICKS_TOKEN, # your personal access token
base_url="https://<workspace-url>/ai-gateway/mlflow/v1" # your Databricks workspace instance
)
chat_completion = client.chat.completions.create(
messages=[
{"role": "user", "content": "What is Databricks?"},
],
model="system.ai.claude-sonnet-4-5",
max_tokens=256
)
print(chat_completion.choices[0].message.content)
Pour d'autres options, consultez start avec l'interrogation de LLM sur Databricks.
Exigences
- Un Databricks workspace dans une région prise en charge par Unity AI Gateway.
- Unity Catalog activé pour votre workspace. Consultez Activer un workspace pour Unity Catalog.
APIs et intégrations prises en charge
Unity AI Gateway prend en charge les APIs et intégrations suivantes :
-
**APIs unifiées** : interfaces compatibles avec OpenAI pour interroger les modèles sur Databricks. Basculez en toute transparence entre les modèles de différents fournisseurs sans modifier la façon dont vous interrogez chaque modèle.
-
Native APIs : Interfaces spécifiques aux fournisseurs pour accéder au dernier modèle et aux fonctionnalités spécifiques aux fournisseurs.
-
Agents de codage : Intégrez vos agents de codage à Unity AI Gateway pour ajouter une gouvernance et un monitoring centralisés à vos workflows de développement assistés par l'IA. Consultez l'intégration des agents de codage.
-
Agents sur Databricks Apps : créez et déployez des agents sur Databricks Apps qui acheminent le trafic LLM via Unity AI Gateway. Voir Étape 4. Gérer l'utilisation des LLM par vos agents sur Databricks Apps avec Unity AI Gateway.
-
ai_query: utilisezai_querypour interroger les services de modèle fournis par Databricks à partir de SQL ou de Python pour l'inférence par lot. Voir Interroger les services de modèle avecai_query.
Interroger les services de modèle avec des APIs unifiées
Les APIs unifiées offrent une interface compatible avec OpenAI pour interroger les modèles sur Databricks. Utilisez des APIs unifiées pour passer de manière transparente d'un modèle à l'autre entre différents fournisseurs sans modifier votre code.
API MLflow Chat Completions
API MLflow Chat Completions
- 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://<workspace-url>/ai-gateway/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="<model-service>",
max_tokens=256
)
print(chat_completion.choices[0].message.content)
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"model": "<model-service>",
"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://<workspace-url>/ai-gateway/mlflow/v1/chat/completions
Remplacez <workspace-url> par l'URL de votre workspace Databricks et <model-service> par le nom complet de votre service de modèle.
API d'embeddings MLflow
API d’embeddings MLflow
- 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://<workspace-url>/ai-gateway/mlflow/v1"
)
embeddings = client.embeddings.create(
input="What is Databricks?",
model="<model-service>"
)
print(embeddings.data[0].embedding)
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-d '{
"model": "<model-service>",
"input": "What is Databricks?"
}' \
https://<workspace-url>/ai-gateway/mlflow/v1/embeddings
Remplacez <workspace-url> par l'URL de votre workspace Databricks et <model-service> par le nom complet de votre service de modèle.
API Supervisor
API Supervisor
Query model services with ai_query
Vous pouvez utiliser la fonction ai_query pour query les services de modèle directement depuis SQL ou Python. Cela vous permet de capturer des informations de suivi de l'utilisation pour vos charges de travail d'inférence par batch.
ai_queryLa prise en charge de Unity AI Gateway est uniquement disponible pour les modèles fournis par Databricks. Transmettez le nom de l'endpoint du modèle de fondation Databricks, qui inclut un préfixedatabricks-(par exemple,databricks-claude-sonnet-4-5oudatabricks-gpt-5-6-sol) plutôt que le nom du service de modèlesystem.aiutilisé ailleurs sur cette page. Les services de modèle que vous créez dans Unity AI Gateway ne sont pas encore pris en charge.- Seul le suivi de l'utilisation s'applique aux
ai_querycharges de travail d'inférence par batch. Les autres fonctionnalités de Unity AI Gateway, telles que les limites de taux, les garde-fous, les tables d'inférence et les fallback, ne s'appliquent pas.
Pour query un service de modèle avec ai_query, exécutez ai_query sur un service de modèle :
SELECT ai_query(
'databricks-claude-sonnet-4-5',
'Summarize the following text: ' || text_column
) AS summary
FROM my_table
LIMIT 10
La table système de suivi de l'utilisation (system.ai_gateway.usage) capture les requêtes effectuées via ai_query vers les services de modèle. Ces requêtes apparaissent également dans le tableau de bord d'utilisation intégré.
Pour la syntaxe complète ai_query et la référence des paramètres, consultez la fonctionai_query. Pour les bonnes pratiques et les modèles pris en charge, consultez Utiliser ai_query.
Interroger les services de modèle avec des APIs natives
Les APIs natives offrent des interfaces spécifiques aux fournisseurs pour query les modèles sur Databricks. Utiliser les APIs natives pour accéder aux dernières fonctionnalités spécifiques au fournisseur.
Chaque API native fonctionne uniquement avec les services de modèles dont le modèle sous-jacent utilise le format d'API correspondant :
- Utilisez l'OpenAI Responses API pour interroger les services de modèles soutenus par les modèles OpenAI (GPT).
- Utilisez l'Anthropic Messages API pour interroger les services de modèle pris en charge par les modèles Claude.
- Utilisez l'Google Gemini API pour interroger les services de modèle reposant sur les modèles Gemini.
Pour interroger un service de modèle quel que soit son modèle sous-jacent, utilisez plutôt les APIs unifiées.
OpenAI Responses API
OpenAI Responses 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://<workspace-url>/ai-gateway/openai/v1"
)
response = client.responses.create(
model="<model-service>",
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": "<model-service>",
"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://<workspace-url>/ai-gateway/openai/v1/responses
Remplacez <workspace-url> par l'URL de votre workspace Databricks et <model-service> par le nom complet de votre service de modèle.
Anthropic Messages API
Anthropic Messages API
- Python
- REST API
import anthropic
import os
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
client = anthropic.Anthropic(
api_key="unused",
base_url="https://<workspace-url>/ai-gateway/anthropic",
default_headers={
"Authorization": f"Bearer {DATABRICKS_TOKEN}",
},
)
message = client.messages.create(
model="<model-service>",
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": "<model-service>",
"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://<workspace-url>/ai-gateway/anthropic/v1/messages
Remplacez <workspace-url> par l'URL de votre workspace Databricks et <model-service> par le nom complet de votre service de modèle.
Google Gemini API
Google Gemini 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://<workspace-url>/ai-gateway/gemini",
headers={
"Authorization": f"Bearer {DATABRICKS_TOKEN}",
},
),
)
response = client.models.generate_content(
model="<model-service>",
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://<workspace-url>/ai-gateway/gemini/v1beta/models/<model-service>:generateContent
Remplacez <workspace-url> par l'URL de votre workspace Databricks et <model-service> par le nom complet de votre service de modèle.
Demandes de tag pour le suivi de l'utilisation
Vous pouvez attacher des tags personnalisés clé-valeur à des requêtes individuelles en utilisant l'en-tête HTTP Databricks-Ai-Gateway-Request-Tags. Les tags de requête sont enregistrés dans la colonne request_tags à la fois dans la table système de suivi de l'utilisation et dans les tables d'inférence, ce qui vous permet de suivre les coûts, d'attribuer l'utilisation et de filtrer l'analytique par projet, équipe, environnement ou toute autre dimension.
La valeur de l’en-tête doit être un objet JSON associant des clés de type chaîne à des valeurs de type chaîne. Par exemple :
{ "project": "chatbot", "team": "ml-platform", "environment": "production" }
Utilisez le paramètre extra_headers (Python) ou transmettez directement l'en-tête (API REST) pour associer des balises à une requête :
- Python (OpenAI SDK)
- Python (Anthropic SDK)
- REST API
from openai import OpenAI
import json
import os
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url="https://<workspace-url>/ai-gateway/mlflow/v1"
)
request_tags = {"project": "chatbot", "team": "ml-platform"}
chat_completion = client.chat.completions.create(
messages=[
{"role": "user", "content": "What is Databricks?"},
],
model="<model-service>",
max_tokens=256,
extra_headers={
"Databricks-Ai-Gateway-Request-Tags": json.dumps(request_tags)
}
)
import anthropic
import json
import os
DATABRICKS_TOKEN = os.environ.get('DATABRICKS_TOKEN')
request_tags = {"project": "chatbot", "team": "ml-platform"}
client = anthropic.Anthropic(
api_key="unused",
base_url="https://<workspace-url>/ai-gateway/anthropic",
default_headers={
"Authorization": f"Bearer {DATABRICKS_TOKEN}",
"Databricks-Ai-Gateway-Request-Tags": json.dumps(request_tags),
},
)
message = client.messages.create(
model="<model-service>",
max_tokens=256,
messages=[
{"role": "user", "content": "What is Databricks?"},
],
)
curl \
-u token:$DATABRICKS_TOKEN \
-X POST \
-H "Content-Type: application/json" \
-H 'Databricks-Ai-Gateway-Request-Tags: {"project": "chatbot", "team": "ml-platform"}' \
-d '{
"model": "<model-service>",
"max_tokens": 256,
"messages": [
{"role": "user", "content": "What is Databricks?"}
]
}' \
https://<workspace-url>/ai-gateway/mlflow/v1/chat/completions
Remplacez <workspace-url> par l'URL de votre workspace Databricks et <model-service> par le nom complet de votre service de modèle.