query les fournisseurs de modèles externes (services de fournisseur de modèles)
query un fournisseur de modèle externe (service de fournisseur de modèle) via Unity Gateway, qui fournit les identifiants stockés et achemine la requête vers le fournisseur externe, afin que les appelants n’aient pas à gérer le secret du fournisseur.
Exigences
- Droit d'interrogation du workspace : Accès au workspace , ou Accès consommateur avec l'aperçu Accès consommateur à Unity Gateway activé pour votre compte (Aperçu public). Consultez Gérer les droits et Gérer les aperçus Databricks.
- Les autorisations suivantes sont requises. Voir Découvrir et gouverner l'accès aux fournisseurs de modèles externes (services de fournisseur de modèle).
EXECUTEsur le service de fournisseur de modèleUSE CATALOGsur le catalogueUSE SCHEMAsur le schéma
Identifier un service de fournisseur de modèle
Vous sélectionnez un service de fournisseur de modèle pour une requête avec l'en-tête Databricks-Model-Provider-Service, défini sur le nom en trois parties du service :
Databricks-Model-Provider-Service: main.default.openai_prod
Authentifiez-vous avec votre jeton Databricks, et non avec les identifiants du fournisseur. L'URL de base est l'URL de votre Workspace suivie de /ai-gateway.
Interroger les APIs prises en charge
Les chemins gérés rendent disponible l’API de chaque fournisseur sous un chemin Unity Gateway stable. Unity Gateway assure la traduction entre la requête et le fournisseur, applique la gouvernance telle que les garde-fous et les limites de débit, et enregistre l’utilisation. Il s’agit de la méthode recommandée pour query un service de fournisseur de modèles.
L'exemple suivant envoie une achèvement de chat via un service de fournisseur de modèles OpenAI en utilisant le chemin OpenAI géré. Comme la requête utilise l'API Chat Completions d'OpenAI, vous pouvez pointer le client OpenAI vers l'URL de base de Unity Gateway.
- Python
- REST
from openai import OpenAI
client = OpenAI(
api_key="<databricks-token>",
base_url="https://<workspace-url>/ai-gateway/openai/v1",
default_headers={"Databricks-Model-Provider-Service": "main.default.openai_prod"},
)
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Say hello in exactly 3 words."}],
)
print(response.choices[0].message.content)
curl https://<workspace-url>/ai-gateway/openai/v1/chat/completions \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Databricks-Model-Provider-Service: main.default.openai_prod" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [{"role": "user", "content": "Say hello in exactly 3 words."}]
}'
Le chemin géré que vous appelez dépend de l'API du fournisseur :
API Fournisseur | Chemin d'accès géré |
|---|---|
OpenAI (achèvements du chat) |
|
OpenAI (réponses) |
|
OpenAI (intégrations) |
|
Anthropic (messages) |
|
Gemini (générer du contenu) |
|
Gemini (générez du contenu avec des réponses en streaming) |
|
Le modèle dans le corps de la requête (ou le segment de chemin Gemini) doit être un modèle que le service de fournisseur de modèle autorise.
Query d'autres APIs (Passthrough)
Si un chemin géré ne couvre pas un endpoint de fournisseur, tel qu’un fichier OpenAI ou un endpoint de batch, vous pouvez transmettre la requête au fournisseur sans modification. Unity Gateway supprime le préfixe /ai-gateway, joint les informations d’identification stockées et transfère le chemin restant au fournisseur.
Pour activer le passthrough non géré, sélectionnez **Transférer tous les chemins d'URL** sous **Options avancées** lorsque vous créez ou mettez à jour le service de fournisseur de modèle dans l'interface utilisateur.
Le suivi de l'utilisation et du coût des jetons, les limites de débit basées sur les jetons, le contrôle d'accès au modèle et les politiques de service ne s'appliquent pas aux requêtes de transfert.
Après avoir activé la transmission, appelez le chemin natif du fournisseur sous /ai-gateway. Par exemple, listez les fichiers sur l'Endpoint de fichiers OpenAI :
curl https://<workspace-url>/ai-gateway/files \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Databricks-Model-Provider-Service: main.default.openai_prod"
En-têtes et transfert des paramètres de query
Par default, Unity Gateway ne transmet pas les en-têtes de requête ou les parameters de query du client au fournisseur en amont. Deux indicateurs de configuration de service modifient ce comportement, et ils s’appliquent aux chemins gérés et non gérés :
forward_headers: Lorsquetrue, Unity Gateway transmet les en-têtes de requête client au fournisseur. Activez cette option lorsqu’un fournisseur exige un en-tête que Unity Gateway ne définit pas pour vous, tel queOpenAI-Organization.forward_query_parameters: Lorsquetrue, Unity Gateway transfère les paramètres de query du client au fournisseur.
Définissez-les sur le service de fournisseur de modèles comme tout autre champ de configuration :
curl https://<workspace-url>/api/2.1/unity-catalog/model-provider-services/main.default.openai_prod \
-X PATCH \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-G \
--data-urlencode "update_mask=config.forward_headers,config.forward_query_parameters" \
--data '{ "config": { "forward_headers": true, "forward_query_parameters": true } }'
Demandes de tag pour le suivi de l'utilisation
Vous pouvez attacher des tags clé-valeur personnalisés à des requêtes individuelles en utilisant l’en-tête HTTP Databricks-Ai-Gateway-Request-Tags. Unity Gateway Logs les tags de requête dans la colonne request_tags à la fois dans la table système de suivi de l’utilisation et dans les tables d’inférence. Vous pouvez ensuite suivre les coûts, attribuer l’utilisation et 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" }
Envoyez l'en-tête des tags avec l'en-tête Databricks-Model-Provider-Service. Utilisez le extra_headers parameter (Python) ou transmettez l'en-tête directement (API REST) :
- Python
- REST
from openai import OpenAI
import json
client = OpenAI(
api_key="<databricks-token>",
base_url="https://<workspace-url>/ai-gateway/openai/v1",
default_headers={"Databricks-Model-Provider-Service": "main.default.openai_prod"},
)
request_tags = {"project": "chatbot", "team": "ml-platform"}
response = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "What is Databricks?"}],
extra_headers={"Databricks-Ai-Gateway-Request-Tags": json.dumps(request_tags)},
)
curl https://<workspace-url>/ai-gateway/openai/v1/chat/completions \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Databricks-Model-Provider-Service: main.default.openai_prod" \
-H "Content-Type: application/json" \
-H 'Databricks-Ai-Gateway-Request-Tags: {"project": "chatbot", "team": "ml-platform"}' \
-d '{
"model": "gpt-5.5",
"messages": [{"role": "user", "content": "What is Databricks?"}]
}'