Skip to content
Cloudflare Docs
非官方翻译 - 此文档为非官方中文翻译版本,仅供参考。如有疑问请以 英文官方文档 为准。

使用 API 添加人工反馈

本指南将引导您完成使用 Cloudflare API 将人工反馈添加到 AI 网关请求的步骤。您将学习如何检索相关的请求日志,并使用 API 提交反馈。

如果您希望通过仪表板添加人工反馈,请参阅添加人工反馈

1. 创建 API 令牌

  1. 创建 API 令牌,具有以下权限:
  • AI 网关 - 读取
  • AI 网关 - 编辑
  1. 获取您的账户 ID
  2. 使用该 API 令牌和账户 ID,向 Cloudflare API 发送 POST 请求

2. 使用 API 令牌

获得令牌后,您可以通过将其作为持有者令牌添加到授权标头中,在 API 请求中使用它。以下是在请求中使用它的示例:

Terminal window
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/ai-gateway/gateways/{gateway_id}/logs" \
--header "Authorization: Bearer {your_api_token}"

在上面的请求中:

  • {account_id}{gateway_id} 替换为您的特定 Cloudflare 账户和网关详细信息。
  • {your_api_token} 替换为您刚刚创建的 API 令牌。

3. 检索 cf-aig-log-id

cf-aig-log-id 是您要添加反馈的特定日志条目的唯一标识符。以下是获取此标识符的两种方法。

方法 1:在请求响应中定位 cf-aig-log-id

此方法允许您直接在 AI 网关返回的响应标头中找到 cf-aig-log-id。如果您可以访问原始 API 响应,这是最直接的方法。

以下步骤概述了如何执行此操作。

  1. 向 AI 网关发出请求:这可能是您的应用程序发送到 AI 网关的请求。一旦发出请求,响应将包含各种元数据。
  2. 检查响应标头:响应将包含一个名为 cf-aig-log-id 的标头。这是您提交反馈所需的标识符。

在下面的示例中,cf-aig-log-id01JADMCQQQBWH3NXZ5GCRN98DP

{
"status": "success",
"headers": {
"cf-aig-log-id": "01JADMCQQQBWH3NXZ5GCRN98DP"
},
"data": {
"response": "Sample response data"
}
}

方法 2:通过 API 检索 cf-aig-log-id (GET 请求)

如果您在响应正文中没有 cf-aig-log-id,或者您需要在事后访问它,您可以通过使用 Cloudflare API 查询日志来检索它。

以下步骤概述了如何执行此操作。

  1. 发送 GET 请求以检索日志:您可以查询特定时间范围或特定请求的 AI 网关日志。该请求将返回一个日志列表,每个日志都包含其自己的 id。 以下是示例请求:
Terminal window
GET https://api.cloudflare.com/client/v4/accounts/{account_id}/ai-gateway/gateways/{gateway_id}/logs

{account_id}{gateway_id} 替换为您的特定账户和网关详细信息。

  1. 搜索相关日志:在 GET 请求的响应中,找到您希望提交反馈的特定日志条目。每个日志条目都将包含 id

在下面的示例中,id01JADMCQQQBWH3NXZ5GCRN98DP

{
"result": [
{
"id": "01JADMCQQQBWH3NXZ5GCRN98DP",
"cached": true,
"created_at": "2019-08-24T14:15:22Z",
"custom_cost": true,
"duration": 0,
"id": "string",
"metadata": "string",
"model": "string",
"model_type": "string",
"path": "string",
"provider": "string",
"request_content_type": "string",
"request_type": "string",
"response_content_type": "string",
"status_code": 0,
"step": 0,
"success": true,
"tokens_in": 0,
"tokens_out": 0
}
],
"result_info": {
"count": 0,
"max_cost": 0,
"max_duration": 0,
"max_tokens_in": 0,
"max_tokens_out": 0,
"max_total_tokens": 0,
"min_cost": 0,
"min_duration": 0,
"min_tokens_in": 0,
"min_tokens_out": 0,
"min_total_tokens": 0,
"page": 0,
"per_page": 0,
"total_count": 0
},
"success": true
}

方法 3:通过绑定检索 cf-aig-log-id

您还可以使用绑定来检索 cf-aig-log-id,这简化了过程。以下是如何直接检索日志 ID:

const resp = await env.AI.run(
"@cf/meta/llama-3-8b-instruct",
{
prompt: "tell me a joke",
},
{
gateway: {
id: "my_gateway_id",
},
},
);
const myLogId = env.AI.aiGatewayLogId;

4. 通过 PATCH 请求提交反馈

一旦您有了 API 令牌和 cf-aig-log-id,您就可以发送 PATCH 请求来提交反馈。使用以下 URL 格式,将 {account_id}{gateway_id}{log_id} 替换为您的特定详细信息:

Terminal window
PATCH https://api.cloudflare.com/client/v4/accounts/{account_id}/ai-gateway/gateways/{gateway_id}/logs/{log_id}

在请求正文中添加以下内容以提交正面反馈:

{
"feedback": 1
}

在请求正文中添加以下内容以提交负面反馈:

{
"feedback": -1
}

5. 验证反馈提交

您可以通过两种方式验证反馈提交:

  • 通过 Cloudflare 仪表板:在 AI 网关界面上检查更新的反馈。
  • 通过 API:发送另一个 GET 请求以检索更新的日志条目并确认反馈已记录。