Red Hat AI Inference on IBM Cloud 入门

准备好在您的应用程序中开始使用人工智能了吗? 在本教程中,您将学习如何利用基础模型进行推理,并生成由人工智能驱动的响应。 只需15分钟,您就能与大型语言模型进行对话,并将对话式人工智能整合到您的工作流程中。

Red Hat® AI Inference on IBM Cloud® 这是一款由 Red Hat OpenShift AI驱动的、面向企业、私有且安全的生成式AI解决方案。 本教程重点介绍如何通过推理与基础模型进行交互,这是开始使用人工智能的最快途径。

需要完成的任务

在本教程中,您将完成以下任务:

  • 设置您的 IBM Cloud 账户和项目。
  • 对推理 API 进行身份验证。
  • 使用基础模型生成您的第一个聊天完成内容。
  • 了解如何使用您自己的数据对模型进行定制的后续步骤。

准备工作

请确保您具备以下条件:

获取您的项目 ID 和 API 端点

所有 API 请求都必须提供您的项目 ID。

  1. 访问 Red Hat AI Inference projects

  2. 打开您的项目。

  3. 复制您的项目 ID 并保存下来,以便进行后续操作。

API 端点

所有 API 请求均采用以下基本格式:URL:

https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference

请将 <project_id> 替换为您的项目 ID。

对 API 进行身份验证

在与基础模型进行交互之前,您需要对 API 请求进行身份验证。 您可以使用持有人令牌或 IBM Cloud API密钥。 本教程介绍了如何结合使用服务 ID 和 API 密钥进行程序化访问。 有关使用 Bearer 令牌的更多信息,请参阅“使用 Bearer 令牌进行身份验证”。

创建服务 ID 并授予访问权限

服务 ID 是控制和分配对 Red Hat AI Inference 项目访问权限的一种有效方式。 创建服务 ID,然后将其授予对您项目的访问权限。

  1. 在 IBM Cloud 控制台中,转到 “管理” >“访问(IAM)”> “服务 ID”,然后单击 “创建”

  2. 输入服务 ID 的名称和描述,然后单击 “创建”

  3. 在服务 ID 页面上,点击“分配访问权限”。

  4. 选择 Red Hat AI Inference 作为服务。

  5. “资源”下,选择“特定资源”,然后选择您的项目。 通过这种方式,您可以限制对特定项目的访问权限。

  6. “角色和操作”中,选择相应的服务访问角色:

    • 如果需要创建聊天自动补全功能,请选择 “Writer”
    • 如果您只需阅读聊天自动补全内容或查看模型信息,请选择 “阅读器”

    访问 API 无需平台访问角色。

  7. (可选)添加条件(例如基于时间的访问权限),以进一步限定对服务 ID 的访问范围。

  8. 查看访问摘要,然后单击 “分配”

创建 API 密钥

既然您的服务 ID 已获得对 Red Hat AI Inference 项目的访问权限,请创建一个服务 ID API 密钥,以便在 API 调用中使用。

  1. 在服务 ID 页面中,点击 “API 密钥”

  2. 点击“创建”,并为您的 API 密钥输入一个名称。

  3. 对于泄露密钥的处理,请选择“禁用泄露密钥”,以便在检测到密钥泄露时自动禁用该密钥。

  4. 为密钥设置过期日期。 出于安全考虑,建议定期轮换密钥。

  5. 单击创建

  6. 复制 API 密钥,并将其保存在安全的地方。 无法再次查看该密钥。

现在,您可以使用该 API 密钥对请求进行身份验证。 在下一步中,您将在 API 调用的 Authorization: Bearer 请求头中使用此密钥。

浏览可选机型

不同的基础模型各有各的优势,因此仔细评估项目中可用的模型非常重要。

调用以下 API 接口以列出所有可用的模型。 请将 <project_id> 替换为您的项目 ID,将 <api_key> 替换为您的服务 ID API 密钥:

curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/models' \
  -H 'Accept: application/json' \
  -H "Authorization: Bearer <api_key>"
from openai import OpenAI
client = OpenAI(
  api_key="<api_key>",
  base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
models = client.models.list()
print(models)

该响应向您展示了所有可用的模型,以及关于这些模型功能的信息。 您可以尝试不同的模型,以找到最适合您使用场景的那一个。

生成您的第一个聊天完成内容

现在,向模型发送一条消息,并接收由人工智能生成的回复。

请执行以下 API 调用,将 <project_id> 替换为您的项目 ID,将 <api_key> 替换为您的服务 ID API 密钥:

curl https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <api_key>" \
  -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="<api_key>",
  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)

您应该会收到模型发来的自我介绍。

理解该请求

让我们来分析一下你刚才的操作:

model
您指定了 granite-4-0-h-small,这是可用的基础模型之一。 不同型号具有不同的功能和性能特点。
消息
您提供了两条消息。 其中一条是开发者消息,该消息设置了系统提示,并指导模型如何进行操作。 用户消息中包含了您希望模型回答的实际问题。
API 端点
该请求已发送到您项目的推理端点,该端点负责将请求路由到相应的模型。

您可以通过调整系统提示、添加更多消息,或者针对不同的使用场景选用不同的模型,来定制模型的行为。

后续步骤

既然您已经成功开始使用推理功能,接下来您可以这样做:

继续进行推理

使用您的数据自定义模型

已弃用

准备好超越通用模型了吗? 您可以通过模型对齐,结合贵组织的特定知识和技能来定制基础模型:

  1. 制定分类法 其中包含您的商业知识和技能。

  2. 根据您的分类法 生成合成数据

  3. 根据您的具体需求 训练一个自定义模型

通过这种方式,您可以对模型进行微调,使其理解您的业务背景、术语和需求,这超越了通用模型所能提供的功能。