Inférencer des modèles par le biais de la passerelle des modèles

Envoyez des requêtes aux modèles à l'aide OpenAI-compatible des points de terminaison via la passerelle de modèles. Vous pouvez utiliser l'API REST ou le OpenAIPython SDK pour générer du texte, créer des réponses basées sur le chat, produire des intégrations et développer des solutions évolutives sur plusieurs modèles adaptés à vos cas d'utilisation spécifiques.

Autorisations requises

: Pour inférer des modèles de passerelle, vous devez disposer de l'une des autorisations suivantes : - Administrateur de la plateforme - Gérer les configurations

Informations d'identification requises
Vous devez générer des informations d'identification pour vous authentifier auprès des API d' watsonx.ai. Pour plus d'informations, consultez la section Génération d'un jeton porteur.

Modes de travail

Les points de terminaison de la passerelle modèle fournissent une API unifiée OpenAI-compatible e pour tous les fournisseurs, qui sont utilisés pour acheminer les demandes de modèle.

Vous pouvez déduire les modèles de base de la passerelle à l'aide des méthodes de programmation suivantes :

Attention : certains fournisseurs de modèles peuvent ne pas prendre en charge le service d'un point de terminaison spécifique dans leur backend. Si vous utilisez un fournisseur de modèles configuré avec un service de point de terminaison non pris en charge, des erreurs peuvent apparaître dans la réponse.

API REST

Pour plus d'informations sur la gestion de la passerelle de modèles, consultez la documentation relative à l'API de la passerelle de modèles.

La passerelle modèle prend en charge les points de terminaison suivants :

Liste des fournisseurs et des modèles

Vous pouvez dresser la liste des fournisseurs et des modèles que vous avez configurés.

Pour obtenir la liste de tous les fournisseurs de modèles configurés, utilisez la commande suivante :

curl -sS "https://cpd-<namespace-name>.apps.<OCP-domain>/ml/gateway/v1/providers" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${TOKEN}"

Pour répertorier tous les modèles activés pour un fournisseur spécifique, utilisez la commande suivante :

curl -sS "https://cpd-<namespace-name>.apps.<OCP-domain>/ml/gateway/v1/providers/${PROVIDER_UUID}/models" \
	-H "Content-Type: application/json" \
	-H "Authorization: Bearer ${TOKEN}"

Pour dresser la liste de tous les modèles activés (pour tous les fournisseurs configurés), utilisez la commande suivante :

curl -sS "https://cpd-<namespace-name>.apps.<OCP-domain>/ml/gateway/v1/models" \
	-H "Content-Type: application/json" \
	-H "Authorization: Bearer ${TOKEN}"

Achèvements du chat

Pour utiliser le point de terminaison /v1/chat/completions , voir l'exemple suivant :

curl "https://cpd-<namespace-name>.apps.<OCP-domain>/ml/gateway/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${TOKEN}" \
  -d '{
    "model": "azure/gpt-4o",
    "messages": [
      {
        "role": "system",
        "content": "Please explain everything in a way a 5th grader could understand—simple language, clear steps, and easy examples."
      },
      {
        "role": "user",
        "content": "Can you explain what TLS is and how I can use it?"
      }
    ]
  }'

Pour plus de détails et d'exemples, voir Chat completions dans la documentation de l'API OpenAI.

Compléments de texte/génération

curl "https://cpd-<namespace-name>.apps.<OCP-domain>/ml/gateway/v1/completions" \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer ${TOKEN}" \
 -d '{
   "model": "ibm/llama-3-3-70b-instruct",
   "prompt": "Say this is a test",
   "max_tokens": 7,
   "temperature": 0
 }'

Pour plus de détails et d'exemples, voir Text generation dans la documentation de l'API OpenAI.

Génération d'emboîtements

Pour utiliser le point de terminaison /v1/embeddings , voir l'exemple suivant :

curl "https://cpd-<namespace-name>.apps.<OCP-domain>/ml/gateway/v1/embeddings" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${TOKEN}" \
  -d '{
    "input": "The food was delicious and the waiter...",
    "model": "text-embedding-3-large",
    "encoding_format": "float"
  }'

Pour plus de détails et d'exemples, voir Comment obtenir des embeddings dans la documentation de l'API OpenAI.

Logiciel SDK Python

Pour travailler avec les modèles de base dans la passerelle de modèles, vous pouvez utiliser la classe Gateway dans la bibliothèque watsonx.aiPython.

Pour commencer, consultez les exemples de blocs-notes suivants :

  • Pour créer des applications LLM qui acheminent les demandes vers les fournisseurs à l'aide du framework et de la passerelle de modèle d' LangGraph, consultez le modèle d'agent d' LangGraph.

La passerelle modèle reste compatible avec l'API OpenAI. Par conséquent, les SDK d' OpenAI s peuvent être utilisés pour inférer des modèles de passerelle en transmettant le jeton porteur à la place de la clé API d' OpenAI.

Pour utiliser le SDK OpenAI Python afin d'effectuer une requête de complétion de chat via la passerelle du modèle, consultez l'exemple suivant :

import os
from openai import OpenAI


gateway_url = "https://cpd-<namespace-name>.apps.<OCP-domain>/ml/gateway/v1"
ibm_cloud_api_key = os.getenv("TOKEN")

client = OpenAI(
    base_url=gateway_url,
    api_key=bearer_token,
)

completion = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ]
)

print(completion.choices[0].message)