通过模型网关推断模型
通过模型网关使用 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)