推导模型

通过推理功能,您可以与基础模型进行交互,并评估应用程序中由人工智能生成的响应。 推理功能提供了一个可用于生产环境的 API,可帮助您将对话式 AI 功能集成到工作流中、测试模型行为,并构建智能应用程序。

Inference 通过提供基于熟悉且符合行业标准的 API 立即访问基础模型的功能,解决了 AI 模型部署和扩展方面的难题。 无论您是在开发聊天机器人原型、构建人工智能助手,还是将自然语言理解功能集成到应用程序中,推理功能都能消除模型托管带来的复杂性,让您专注于为用户创造价值。

准备工作

使用控制台推导模型

该控制台提供了一个交互式实验环境,您可以在其中尝试不同的模型、测试提示词,并在将它们集成到应用程序之前优化与 AI 的交互。

  1. 在控制台中,打开 “Red Hat AI Inference”服务,然后单击您的项目名称以打开该项目。

  2. 在项目页面中,点击 “Playground” 以打开推理实验平台。

  3. 开始您的聊天会话。 您可以通过以下选项自定义聊天会话:

模型选择
您可以从一组基础模型列表中进行选择。
系统提示
系统提示指示模型如何执行对话。
推理设置
调整“随机性”、“重复次数”和 “响应限制” 的设置。
交谈历史记录
您可以按 “模型”或 “日期范围”筛选聊天记录。

使用 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)