Aller au contenu principal

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

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 :

Text
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
from openai import OpenAI

client = OpenAI(
api_key="<databricks-token>",
base_url="https://<workspace-url>/ai-gateway/openai/v1",
default_headers={&quot;Databricks-Model-Provider-Service&quot;: &quot;main.default.openai_prod&quot;},
)

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)

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)

/ai-gateway/openai/v1/chat/completions

OpenAI (réponses)

/ai-gateway/openai/v1/responses

OpenAI (intégrations)

/ai-gateway/openai/v1/embeddings

Anthropic (messages)

/ai-gateway/anthropic/v1/messages

Gemini (générer du contenu)

/ai-gateway/gemini/v1beta/models/<model>:generateContent

Gemini (générez du contenu avec des réponses en streaming)

/ai-gateway/gemini/v1beta/models/<model>:streamGenerateContent

API Fournisseur

Chemin d'accès géré

OpenAI (achèvements du chat)

/ai-gateway/openai/v1/chat/completions

OpenAI (réponses)

/ai-gateway/openai/v1/responses

OpenAI (intégrations)

/ai-gateway/openai/v1/embeddings

Anthropic (messages)

/ai-gateway/anthropic/v1/messages

Gemini (générer du contenu)

/ai-gateway/gemini/v1beta/models/<model>:generateContent

Gemini (générez du contenu avec des réponses en streaming)

/ai-gateway/gemini/v1beta/models/<model>:streamGenerateContent

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.

remarque

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 :

Bash
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: Lorsque true, 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 que OpenAI-Organization.
  • forward_query_parameters: Lorsque true, 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 :

Bash
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 :

JSON
{ "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
from openai import OpenAI
import json

client = OpenAI(
api_key="<databricks-token>",
base_url="https://<workspace-url>/ai-gateway/openai/v1",
default_headers={&quot;Databricks-Model-Provider-Service&quot;: &quot;main.default.openai_prod&quot;},
)

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={&quot;Databricks-Ai-Gateway-Request-Tags&quot;: json.dumps(request_tags)},
)

Étapes suivantes