# 查询 Response 输入项

```{raw} html
<div class="mo-api-page-show-toc" aria-hidden="true"></div>
```

分页读取已保存 Response 使用的输入项。完整输入内容能否取回取决于所选模型服务。

```text
GET https://token.moi.matrixorigin.cn/v1/responses/$RESPONSE_ID/input_items
```

## 调用前准备

1. 在支持保存和取回的模型服务上[创建 Response](../text-generation/responses.md#请求体)，并开启保存。选择仍可访问、未删除且未过期的响应。
2. 准备创建该响应时使用的[个人访问令牌](../../../../guides/genesis/api-keys.md#创建和管理个人访问令牌)。

## 请求示例

将示例中的 `$GENESIS_ACCESS_TOKEN` 和 `$RESPONSE_ID` 分别替换为个人访问令牌和所选响应的 ID。

### 不指定分页参数

```bash
curl -X GET \
  "https://token.moi.matrixorigin.cn/v1/responses/$RESPONSE_ID/input_items" \
  -H "Authorization: Bearer $GENESIS_ACCESS_TOKEN"
```

### 读取第一页

```bash
curl --get \
  "https://token.moi.matrixorigin.cn/v1/responses/$RESPONSE_ID/input_items" \
  -H "Authorization: Bearer $GENESIS_ACCESS_TOKEN" \
  --data-urlencode 'limit=1' \
  --data-urlencode 'order=asc'
```

### 读取下一页

当 `has_more` 为 `true` 时，将上一页的 `last_id` 保存为 `$LAST_ITEM_ID`，使用相同的排序读取下一页。`has_more` 为 `false` 时停止。

```bash
curl --get \
  "https://token.moi.matrixorigin.cn/v1/responses/$RESPONSE_ID/input_items" \
  -H "Authorization: Bearer $GENESIS_ACCESS_TOKEN" \
  --data-urlencode 'limit=1' \
  --data-urlencode 'order=asc' \
  --data-urlencode "after=$LAST_ITEM_ID"
```

## 路径参数

::::{div} mo-api-parameter-table

| 参数 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `response_id` | string | 是 | 已保存 Response 的标识，取自创建响应返回的 `id`。 |

::::

## 查询参数

::::{div} mo-api-parameter-table

| 参数 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `limit` | integer | 否 | 每页项数，示例设为 `1`；支持范围由所选模型服务决定。 |
| `order` | string | 否 | 排列顺序：`asc` 或 `desc`。 |
| `after` | string | 否 | 从上一页的 `last_id` 之后继续读取。 |

::::

## 成功响应

成功时返回本页输入项及下一页标记。

:::::::{div} mo-api-tabs mo-api-response-tabs
::::::{tab-set}
:::::{tab-item} 响应示例

```json
{
  "data": [
    {
      "id": "item-example-1",
      "type": "message",
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Reply with OK."
        }
      ]
    }
  ],
  "first_id": "item-example-1",
  "last_id": "item-example-1",
  "has_more": true
}
```

:::::
:::::{tab-item} 字段说明

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `data` | array of object | 本页输入项。 |
| `data[].id` | string | 输入项标识，可用作下一页游标。 |
| `data[].type` | string | 项类型，文本消息为 `message`。 |
| `data[].role` | string | 输入消息的角色。 |
| `data[].content` | array of object | 输入消息的文本块。 |
| `data[].content[].type` | string | 文本块类型 `input_text`。 |
| `data[].content[].text` | string | 输入文本。 |
| `first_id` | string | 本页第一项的标识。 |
| `last_id` | string | 本页最后一项的标识；用作 `after` 继续读取。 |
| `has_more` | boolean | 是否还有下一页；为 `false` 时停止翻页。 |

:::::
::::::
:::::::

## 错误响应

响应不存在、已删除、已过期或当前凭据无法访问时，返回 HTTP `404`。确认响应 ID 和创建时使用的凭据。

:::::::{div} mo-api-tabs mo-api-response-tabs
::::::{tab-set}
:::::{tab-item} 响应示例

```json
{
  "error": {
    "message": "response state not found",
    "type": "response_state_not_found",
    "code": "response_state_not_found"
  }
}
```

:::::
:::::{tab-item} 字段说明

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `error` | object | 错误信息。 |
| `error.message` | string | 不可访问或不存在的响应说明。 |
| `error.type` | string | 错误类别。 |
| `error.code` | string | 错误代码。 |

:::::
::::::
:::::::
