W
AI-Wiki
SOURCE

he parse - Hyper-Extract 摘要

文档概览

he parse 用于从文档中提取知识,并将提取结果保存为一个知识抽象输出目录。它可处理单个文件、一个目录中的文档,或从标准输入读取内容;提取时可选用知识模板,也可直接使用底层抽取方法。

关键事实

  • 输入可以是单个文件、目录,或以 - 表示的标准输入。
  • 当输入为目录时,命令会读取其中的 .md.txt 文件;这些文件会先按字母顺序合并,再进行一次提取。
  • -t 用于指定知识模板,例如 general/biography_graphgeneral/concept_graphlegal/contract_obligationfinance/earnings_summary
  • 省略 -t 时,命令进入交互式模板选择:可从编号列表选择模板,也可输入搜索关键词。
  • -m 用于指定底层抽取方法,例如 light_rag。方法始终使用英文提示词。
  • 模板模式必须使用 -l 指定语言;方法模式不要求语言参数。模板语言应与源文档语言匹配,以获得更好的抽取质量。
  • -o 指定知识抽象输出目录。若目标目录已存在且非空,默认不能继续;-f 可强制覆盖。
  • 默认会构建向量搜索索引;--no-index 可跳过该步骤,适合不需要搜索或聊天、或进行批量提取的场景。之后可通过 he build-index 构建索引。

使用方式

单个文件与指定模板

he parse document.md -t general/biography_graph -o ./output/ -l en

交互式选择模板

he parse document.md -o ./output/ -l en

该方式不传入 -t。命令会展示可用模板,例如 general/biography_graphgeneral/graphfinance/earnings_summary,等待用户输入编号或搜索关键词。

处理目录

he parse ./documents/ -t general/concept_graph -o ./output/ -l en

目录内 .md.txt 文件会按文件名字母顺序合并。目录输入应避免依赖未说明的文件遍历顺序。

使用底层方法而非模板

he parse document.md -m light_rag -o ./output/

方法模式不需要 -l,但其提示词固定为英文;这与模板模式按 -l 选择语言的行为不同。

从标准输入读取

cat document.md | he parse - -t general/biography_graph -o ./output/ -l en

输出内容

输出目录至少包含以下文件:

./output/
├── data.json
├── metadata.json
└── index/
    ├── index.faiss
    └── docstore.json
  • data.json:提取出的知识数据,例如实体、关系等。
  • metadata.json:提取元数据,包括所用 templatelangcreated_at 创建时间和 updated_at 最后更新时间。
  • index/index.faissindex/docstore.json:仅在构建索引时出现,用于向量搜索索引及其文档存储。使用 --no-index 时不会立即生成这一部分。

模板与适配场景

  • 研究论文:使用 general/concept_graph,例如将 paper.md 输出至 ./paper_kb/
  • 人物传记:使用 general/biography_graph,例如将 biography.md 输出至 ./bio_kb/
  • 法律合同:使用 legal/contract_obligation,例如将 contract.md 输出至 ./contract_kb/
  • 财报:使用 finance/earnings_summary,例如将 earnings.md 输出至 ./finance_kb/。 模板选择应与文档类型匹配;这是提高 文档知识抽取 结果可用性的首要条件。

语言要求

模板支持多语言。英文文档可使用 -l en,中文文档可使用 -l zh,例如:

he parse doc.md -t general/biography_graph -l zh -o ./output/

模板模式遗漏 -l 会报出“Language is required”类错误。底层方法模式不需要语言参数,但不应据此假设其提示词会自动随文档语言切换。

常见错误与处理

输出目录已存在

当输出目录存在且非空时,可采取以下任一方式:

  1. 使用 -f 强制覆盖已有输出。
  2. 改用不同的输出路径。
  3. 先移除既有目录,再执行命令。

找不到模板

当指定模板不存在时:

  1. 使用 he list template 列出可用模板。
  2. 不传 -t,改用交互式选择。
  3. 检查模板路径的拼写。

模板缺少语言参数

模板调用必须传入 -l;例如 he parse doc.md -t general/biography_graph -o ./out/ -l en。若改用 -m light_rag 等方法,则无需 -l

使用建议

  1. 按文档类型选择合适的 知识抽取模板,不要将人物、合同和财务文档混用同一模板。
  2. 模板模式下让 -l 与源文档语言一致,避免因语言不匹配降低抽取质量。
  3. 使用描述性输出目录名,例如 paper_kbbio_kbfinance_kb,以便区分不同知识抽象。
  4. 批量任务可加 --no-index 先完成抽取,最后统一运行 he build-index;这可减少重复构建 知识库索引构建 所需索引的开销。
  5. 覆盖已有目录前应确认结果是否仍需保留,因为 -f 针对已有非空输出目录执行强制覆盖。

相关条目