3.1 KiB
解析 sources/ 中的新文件并增量更新知识库。
输入: /lyxy-kb-ingest 后的参数为项目名称。
前置条件: 查找并阅读名为 lyxy-kb 的 skill,了解知识库的完整规范。
步骤
-
获取项目名称并验证结构
从参数中获取项目名称。如果未提供参数,提示用户输入。
按照 lyxy-kb skill「结构完整性验证」规则检查项目目录,不完整则提示用户先 init。
-
检查 office 文档解析能力
按照 lyxy-kb skill「Office 文档解析」规则,查找当前环境中名为 lyxy-reader-office 的 skill。如果不存在且无其他可替代的文档解析 skill,则提示用户无法处理 office 文档并中止流程。
-
读取 manifest.json
读取
<project-name>/manifest.json,获取已入库文件的信息。 -
递归扫描 sources/ 目录
按照 lyxy-kb skill「sources/ 扫描规则」,递归检查 sources/ 及其所有子目录中的文件。如果无任何文件,提示用户无待处理文件并终止。
-
预检查
空文件检测:按照 lyxy-kb skill「空文件处理」规则,识别 0 字节文件,标记为跳过。
同名不同扩展名冲突检测:按照 lyxy-kb skill「同名不同扩展名冲突检测」中的两条检测规则执行。冲突文件标记为跳过。
如果有跳过的文件,列出详情(空文件 / 冲突文件分别列出)。如果所有文件都被跳过,终止流程。
-
逐个处理文件
对每个通过预检查的文件:
a) 解析:按照 lyxy-kb skill「文件类型解析策略」判断解析方式。office 文档使用 lyxy-reader-office skill(查找并阅读该 skill 获取具体命令),其他文件直接读取。
b) 写入 parsed:按照 lyxy-kb skill「parsed 文件元信息标记」格式,在内容头部添加元信息注释,写入
<project-name>/parsed/<文件名>.md(同名覆盖)。c) 归档:按照 lyxy-kb skill「归档命名规则」,移动原始文件到 archive/(带时间戳后缀
YYYYMMDDHHmm)。d) 更新 manifest.json:新文件追加条目,已有文件在 versions 数组追加新版本。使用
sha256sum计算文件哈希。更新last_ingest。e) 解析失败处理:按照 lyxy-kb skill「解析失败处理」规则,失败文件保留在 sources/ 中不移动,报告错误,继续处理下一个文件。
-
增量更新 project.md
按照 lyxy-kb skill「增量追加」策略:
- 对每个新处理的文件,读取其 parsed 内容生成简要摘要(1-2 句话)
- 新文件:在文件索引表追加新行
- 已有文件更新:更新文件索引表中对应行
- 在更新记录追加本次 ingest 条目
- 不修改概述和关键信息部分
-
输出结果
汇总显示:
- 成功处理的文件列表
- 跳过的文件(空文件 / 冲突文件 / 解析失败文件,分别列出)
- 当前项目已入库文件总数
- 提示可使用
/lyxy-kb-rebuild <project-name>更新概述和关键信息 - 提示可使用
/lyxy-kb-ask <project-name>进行知识问答