Hyper-Extract CLI Workflow
定义
Hyper-Extract CLI Workflow 是一套围绕 Hyper-Extract 命令行工具组织起来的知识抽取与消费流程,用来把原始文档转成可复用的知识库,并在后续继续查询、问答、扩充和重建索引。它不是单个命令,而是把 parse、info、show、search、talk、feed、build-index 串成一个可重复执行的操作链。
在本文档中的语境
在示例语境中,这个工作流面向“研究论文分析”场景:用户先准备一篇论文文件,再抽取其中的实体与关系,随后查看统计、可视化知识图、进行语义搜索和问答,并在加入新论文后继续维护同一个知识库。
文档明确说明,输入文件支持 .md 与 .txt;示例虽然下载的是一个研究论文文本文件,但随后将其保存为 transformer_paper.md 后再执行命令,说明这两种文本型输入都属于标准起点。
标准顺序
该工作流的推荐顺序非常明确:
- 使用
he parse从原始文档生成知识库。 - 使用
he info查看知识库统计与基本信息。 - 使用
he show、he search、he talk消费知识库内容。 - 后续通过
he feed向已有知识库追加新文档。 - 在需要时运行
he build-index重建搜索索引。
第一步:从输入文件生成知识库
典型命令示例如下:
he parse transformer_paper.md -t general/concept_graph -o ./transformer_kb/ -l en
这个命令里有四个关键输入位:
- 输入文件:
transformer_paper.md,即待抽取的原始文档。 - 模板参数
-t:general/concept_graph,用于指定抽取任务采用的知识图模板。 - 输出目录
-o:./transformer_kb/,用于保存抽取结果;这个目录会在后续被info、show、search、talk、feed、build-index反复复用。 - 语言参数
-l:en,用于声明输入文本语言。
解析阶段具体发生什么
he parse 并不是简单复制文件,而是执行一整套抽取流程:
- 读取文档内容。
- 如果文档较长,则先进行分块。
- 调用 LLM 抽取实体与关系。
- 将抽取结果写入输出目录。
文档还给出了输出目录中的典型结果:
data.json:抽取出的知识数据。metadata.json:抽取元数据。index/:向量检索索引;如果已构建,会出现在该目录中。
这说明 parse 的结果不是临时会话,而是一个可落盘、可复用的知识库目录。其目录结构可进一步参见 Hyper-Extract Knowledge Base Directory。
第二步:查看知识库信息
在知识库生成后,标准下一步是:
he info ./transformer_kb/
该命令用于读取输出目录中的元数据并展示概要统计。示例输出包含以下字段:
- 路径:
./transformer_kb/ - 模板:
general/concept_graph - 语言:
en - 创建时间:
2024-01-15 10:30:00 - 更新时间:
2024-01-15 10:30:00 - 节点数:
12 - 边数:
15 - 索引状态:
Index Built
因此,he info 在这个工作流中承担的是“确认抽取结果是否存在、规模多大、索引是否就绪”的作用。
第三步:消费知识库
用 he show 可视化知识图
可视化命令为:
he show ./transformer_kb/
该操作会在浏览器中打开一个交互式知识图。示例中特别指出:
- 节点可包含作者、概念、模型、指标。
- 边展示这些节点之间的关系。
因此 show 适合做结构浏览,而不是只看文本片段。
用 he search 做语义检索
语义检索示例:
he search ./transformer_kb/ "neural network architecture"
文档强调,即使关键词不完全匹配,也可以找到语义相关内容。示例结果中包括:
Transformer,类型是model,描述为“完全基于注意力机制的神经网络架构”。Attention Mechanism,类型是concept,描述为“用于捕捉序列间全局依赖的机制”。
还可以指定返回数量,例如:
he search ./transformer_kb/ "performance metrics" -n 5
这表明 search 既可用于开放语义查找,也可通过 -n 控制结果条数。更完整的检索与问答能力可参见 Hyper-Extract CLI Retrieval and QA。
用 he talk 基于知识库问答
单轮问答示例:
he talk ./transformer_kb/ -q "What is the main contribution of this paper?"
示例回答指出,该论文的主要贡献是提出 Transformer 架构,并说明其在机器翻译任务上达到先进结果,同时比循环架构或卷积架构更易并行、训练时间显著更少。
交互模式示例:
he talk ./transformer_kb/ -i
进入交互后,可连续提问,直到输入 exit 或 quit 退出。示例会话中包含两个具体问答:
- 询问作者时,返回了 Ashish Vaswani、Noam Shazeer、Niki Parmar、Jakob Uszkoreit、Llion Jones、Aidan N. Gomez、Lukasz Kaiser、Illia Polosukhin。
- 询问 BLEU 分数时,返回模型在 WMT 2014 英译德任务上达到
28.4。
这说明 talk 不只是检索文本,而是面向知识库进行面向问题的回答。
第四步:持续扩充而不是一次性执行
这个工作流强调“持续构建”的模式,而不是一次抽取后就结束。已有知识库可以继续追加文档,例如:
he feed ./transformer_kb/ bert_paper.md
在这个步骤前,示例先下载另一篇论文,再把它加入现有知识库。追加后,可以再次执行:
he info ./transformer_kb/
文档特别提醒,这时应当观察到:
- 节点数增加。
- 边数增加。
- 更新时间发生变化。
这表明 feed 是在已有知识库上做增量更新,而不是要求每次重新从零 parse。
第五步:按需重建索引
当追加新文档后,搜索索引可能需要更新。标准命令为:
he build-index ./transformer_kb/
如果需要强制完整重建,则使用:
he build-index ./transformer_kb/ -f
因此,build-index 的定位不是最初的知识抽取,而是为后续检索能力提供或刷新索引。尤其在 feed 之后,这一步是典型维护动作。
自动化与批量化实践
用 bash 脚本封装完整流程
文档给出了一份自动化脚本示例,使用变量统一配置:
INPUT_FILE="paper.md"OUTPUT_DIR="./paper_kb/"TEMPLATE="general/concept_graph"LANGUAGE="en"
脚本按固定顺序自动执行:
he parse "$INPUT_FILE" -t "$TEMPLATE" -o "$OUTPUT_DIR" -l "$LANGUAGE"he info "$OUTPUT_DIR"he search "$OUTPUT_DIR" "main contributions" -n 2he show "$OUTPUT_DIR"
这说明 CLI Workflow 很适合被封装进 shell 脚本,做成可重复运行的标准流程。相关背景可参见 CLI Workflow Guide 摘要。