# 信息提取

根据 JSON Schema，从文件或已解析文档中提取结构化字段，并保留可用的来源追踪信息。

适用于合同要素、票据字段、简历信息等有明确字段定义的任务。自由生成摘要可使用[AI 推理](ai-inference.md)。

## 定义输入和字段

输入选择上游解析结果 `documents`，或由本节点解析的文件引用 `files`，两者只填写一项。

| 配置 | 说明 |
| --- | --- |
| 提取 Schema | 必填 JSON Schema，定义字段名称、类型与约束 |
| 提取指令 | 可选自然语言说明，用于解释字段含义和提取要求 |
| 版面敏感字段 | 指定需要结合页面位置核对的字段，例如供应商与收件方 |
| 页码筛选 | 限定源文件页面；留空处理全部页面 |
| 调试记录 | 默认关闭；开启后记录部分调用详情，供排查提取问题使用 |

文件输入使用有效且不重复的 Catalog `file_id`。

## 选择提取模式

| 模式 | 结果与失败行为 |
| --- | --- |
| 汇总为一个结果 `n_to_1` | 默认模式，全部输入共同生成一份结果 |
| 每个来源一个结果 `n_to_n` | 按来源文件分别生成结果；可配置失败策略 |

`n_to_n` 默认使用 `per_item`：失败来源保留明确的错误对象，其余来源继续。选择 `fail_fast` 时，遇到失败即中止整批。批量入表前，先分开成功结果和错误对象，只写入成功提取的数据。

## 使用输出

`result` 是单个提取结果的 JSON 字符串，`results` 用于按来源返回的结果字符串。`mode` 表示实际模式；`sources_tracking` 提供可用的字段来源信息。

绑定到接受 JSON 对象的节点时，需要区分 JSON 字符串和对象。单结果可接到[存至 MOI 表](../data-io/save-table.md)的 JSON 数据输入；多结果应先处理每项结果和错误状态。

## 示例：提取合同编号

流程示意：文档解析 → 信息提取 → 存至 MOI 表。

可使用以下 Schema 作为字段定义示意：

```json
{
  "type": "object",
  "properties": {
    "contract_number": {"type": "string", "description": "合同编号"}
  },
  "required": ["contract_number"]
}
```

选择汇总模式，并说明合同编号在文档中的含义。运行后核对提取出的合同编号及其来源。

## 继续阅读

- [变量与数据传递](../../variables-and-data.md)
- [运行与调试](../../run-debug.md)
