通过模型网关推断模型

通过模型网关使用 OpenAI-compatible 端点向模型发送请求。 您可以使用REST API PythonOpenAI 或SDK生成文本、创建基于聊天的响应、生成嵌入向量,并针对特定用例开发适用于多种模型的可扩展解决方案。

所需权限

: 要推断网关模型,您必须具备以下任一权限: - 平台管理员 - 管理配置

所需凭证
您必须生成凭据才能通过 watsonx.ai 的API进行身份验证。 详情请参阅生成持有人令牌

工作方式

模型网关端点为任何提供商提供统一的 OpenAI-compatible 接口,用于路由模型请求。

您可以通过以下编程方法推断网关基础模型:

注意: 某些模型提供商可能在其后端不支持特定端点的服务。 若使用已配置的模型提供程序与不受支持的端点服务配合使用,您可能会在响应中看到错误。

REST API

有关管理模型网关的更多详细信息,请参阅模型网关 API 文档

该模型网关支持以下端点:

列表提供商和模式

您可以列出您配置的提供商和型号。

要列出所有已配置的模型提供程序,请使用以下命令:

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

要列出为特定提供商启用的所有型号,请使用以下命令:

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}"

要列出已启用的所有型号(跨所有已配置的提供商),请使用以下命令:

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

聊天完成

要使用 /v1/chat/completions 端点,请参阅下面的示例:

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?"
      }
    ]
  }'

有关详细信息和示例,请参阅 OpenAI API 文档中的聊天完成

文本补全/生成

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
 }'

有关详细信息和示例,请参阅 OpenAI API 文档中的文本生成

嵌入生成

要使用 /v1/embeddings 端点,请参阅下面的示例:

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"
  }'

有关更多详情和示例,请参阅 OpenAI API 文档中的如何获取嵌入式内容

Python SDK

要在模型网关中使用基础模型,可采用 watsonx.ai 库中的Gateway类 ( Python )。

要开始使用,请参阅以下示例笔记本:

  • 要构建使用 LangGraph 框架和模型网关将请求路由到提供者的LLM应用,请参阅 LangGraph 代理模板

该模型网关保持与 OpenAI API的兼容性。 因此, OpenAI SDK 可通过传递承载令牌(而非 OpenAI API 密钥)来对网关模型进行推理。

要使用 OpenAI 中的 Python SDK 通过模型网关发起聊天补全请求,请参阅以下示例:

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)