推导模型
通过推理功能,您可以与基础模型进行交互,并评估应用程序中由人工智能生成的响应。 推理功能提供了一个可用于生产环境的 API,可帮助您将对话式 AI 功能集成到工作流中、测试模型行为,并构建智能应用程序。
Inference 通过提供基于熟悉且符合行业标准的 API 立即访问基础模型的功能,解决了 AI 模型部署和扩展方面的难题。 无论您是在开发聊天机器人原型、构建人工智能助手,还是将自然语言理解功能集成到应用程序中,推理功能都能消除模型托管带来的复杂性,让您专注于为用户创造价值。
准备工作
-
创建一个按需付费或订阅制的 IBM Cloud 账户。 不支持试用账户。 如需了解更多信息或升级您的账户,请参阅 “账户类型”。
-
请确保您在“Red Hat AI Inference”服务中拥有“Writer”角色或更高权限。 如需了解更多信息,请参阅“管理 IAM 访问权限”。
使用控制台推导模型
该控制台提供了一个交互式实验环境,您可以在其中尝试不同的模型、测试提示词,并在将它们集成到应用程序之前优化与 AI 的交互。
-
在控制台中,打开 “Red Hat AI Inference”服务,然后单击您的项目名称以打开该项目。
-
在项目页面中,点击 “Playground” 以打开推理实验平台。
-
开始您的聊天会话。 您可以通过以下选项自定义聊天会话:
- 模型选择
- 您可以从一组基础模型列表中进行选择。
- 系统提示
- 系统提示指示模型如何执行对话。
- 推理设置
- 调整“随机性”、“重复次数”和 “响应限制” 的设置。
- 交谈历史记录
- 您可以按 “模型”或 “日期范围”筛选聊天记录。
使用 API 进行模型推理
借助该 API,您可以通过使用符合行业标准的 OpenAI-compatible 端点,以编程方式将 AI 功能集成到您的应用程序中。 在生产环境部署中,如果需要自动化AI交互、处理海量请求,或将对话式AI嵌入现有系统,这种方法至关重要。 该 API 提供了灵活的功能,可自定义模型行为、管理对话记录,并使您的 AI 驱动功能随应用程序一同扩展。
目前支持以下 API:
- 聊天自动补全
/v1/chat/completions - Create - OpenAI 文档
- Get - OpenAI 文档
- 列表 - 《 OpenAI 》文档
- 删除 - OpenAI 文档
- 模型
/v1/models - Get - OpenAI 文档
- 列表 - 《 OpenAI 》文档
请查阅以下各节,了解如何使用该 API 完成常见推理任务的示例。
API 端点
所有 API 请求均采用以下基本格式:URL:
https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference
请将 <project_id> 替换为您的项目 ID。 要找到它,请访问 Red Hat AI Inference projects 并打开您的项目。
对 API 进行身份验证
在进行 API 调用之前,您需要对请求进行身份验证。 您可以使用承载令牌(bearer token)或 IBM Cloud API密钥进行身份验证。
使用承载令牌进行身份验证
持有人代币可确保您安全访问项目的推理功能,并由您的 IBM Cloud API 密钥生成。 持有人代币在设定时间后会过期,因此必须定期刷新。
以下示例演示了如何获取承载令牌。
curl -X POST "https://iam.cloud.ibm.com/identity/token" --header "Content-Type: application/x-www-form-urlencoded" --header "Accept: application/json" --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" --data-urlencode "apikey=$<IBM_CLOUD_API_KEY>"
响应中的持有人令牌即为 access_token。 这些令牌有有效期,必须定期刷新。
{"access_token":"xxxxx","refresh_token":"not_supported","token_type":"Bearer","expires_in":3600,"expiration":1770058324,"scope":"ibm openid"}
使用 API 密钥进行身份验证
使用 API 密钥进行身份验证有两种方式:您可以创建一个服务 ID,这是分配访问权限和控制权的推荐方法。 如果您创建了一个服务 ID,则还需要 创建一个服务 ID API 密钥,用于身份验证。 《 Red Hat AI Inference 入门指南》 介绍了如何创建服务 ID 和 API 密钥,以便通过编程方式进行身份验证。
您也可以使用用户 API 密钥进行身份验证,而不是使用服务 ID API 密钥。 有关更多信息,请参阅管理用户 API 密钥。
生成聊天补全内容
对话补全是推理的核心。 它们允许您向基础模型发送消息,并接收由人工智能生成的回复。 这就是构建对话体验、获取问题答案、生成内容或处理自然语言输入的方法。 您可以通过提供系统提示来控制对话流程,这些提示用于定义模型的行为,并保存消息历史记录,以实现基于上下文的交互。
以下示例演示了如何生成聊天自动补全功能。 有关可用参数的完整列表,请参阅《 OpenAI 聊天自动补全 》。
curl https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer <bearer_token>" -d '{
"model": "granite-4-0-h-small",
"messages": [
{
"role": "developer",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Hello! Tell me about yourself"
}
]
}'
from openai import OpenAI
client = OpenAI(
api_key="<bearer_token>",
base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
completion = client.chat.completions.create(
model="granite-4-0-h-small",
messages=[
{"role": "developer", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello! Tell me about yourself"}
]
)
print(completion.choices[0].message)
通过 ID 获取聊天记录
通过 ID 检索特定的聊天记录,对于审计、调试或分析过去的互动非常有用。
以下示例演示了如何通过 ID 获取一条聊天记录。 有关可用参数的完整列表,请参阅“获取聊天补全”。
curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions/<completion_id>' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
api_key="<bearer_token>",
base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
completion = client.chat.completions.retrieve(completion_id="<completion_id>")
print(completion)
列出聊天自动补全项
“聊天完成项”列表可为您提供所有推理活动的概览,以便您监控使用模式、追踪成本,并分析您的应用程序与基础模型之间的交互情况。 这对于理解用户行为、识别常见使用场景以及优化您的 AI 集成策略尤为重要。
以下示例演示了如何列出聊天自动补全项。 有关可用参数的完整列表,请参阅 “聊天自动补全列表”。
curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
api_key="<bearer_token>",
base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
completions = client.chat.completions.list()
print(completions)
删除聊天自动补全
删除聊天自动补全内容有助于清理测试数据并符合隐私要求。
以下示例演示了如何删除一条聊天自动补全项。 有关可用参数的完整列表,请参阅 “删除聊天记录”的自动补全功能。
curl -X DELETE https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions/<completion_id> \
-H "Content-Type: application/json" -H "Authorization: Bearer <bearer_token>"
列出模型
了解您的项目中可用的基础模型有哪些,并掌握其功能,从而能够根据具体用例选择最合适的模型,并针对响应质量、速度或成本等因素进行优化。
以下示例演示了如何列出模型。 有关可用参数的完整列表,请参阅 OpenAI List Models。
curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/models' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
api_key="<bearer_token>",
base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
models = client.models.list()
print(models)
通过 ID 获取模型
获取特定模型的详细信息,有助于您在将其应用于您的应用程序之前,了解该模型的特性、功能和局限性。
以下示例演示了如何通过 ID 获取模型。 有关可用参数的完整列表,请参阅“检索模型”。
curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/models/<model>' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
api_key="<bearer_token>",
base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
model = client.models.retrieve("<model>") # for example, "granite-4-0-h-small"
print(model)