GitHub 国产开源BookToSkill:将书籍转为标准化 Skill,大幅降低 Token 消耗

GitHub 国产开源BookToSkill:将书籍转为标准化 Skill,大幅降低 Token 消耗

在利用大语言模型处理长文档或大量零散资料时,常见的操作瓶颈在于上下文窗口限制、格式兼容性差以及反复手动整理输入文件的低效。

BookToSkill 提供了一种系统化的解决路径:它不依赖扩展上下文,而是通过构建可检索的结构化索引,使 AI 能够按需、精准地调用源文档内容,从而实现高效的知识管理。点此进入芝麻小客服官网

项目地址:https://github.com/zhimaAi/BookToSkill

GitHub 国产开源BookToSkill:将书籍转为标准化 Skill,大幅降低 Token 消耗

一、项目定位与核心功能

BookToSkill 是一个开源命令行工具,支持将 TXT、Markdown、DOCX 及 PDF 格式的一份或多份文档,转化为一个可直接部署的 .zip 技能包。该技能包包含:

  • 归一化的 Markdown 源文本

  • 提取出的图片等附件资源

  • 基于 JSONL 格式的结构化知识索引

  • 生成的技能调用指令、Agent 元数据

  • 本地检索辅助脚本

最终产出物是一个可供 AI 代理直接调用的标准化技能包,而非单纯的文档压缩包。

二、处理流程与技术实现

BookToSkill 的后端处理流程由多个 Python 脚本串联完成,具有明确的阶段划分和容错机制,不依赖特定 Agent 框架。

1.文档转换与归一化

将输入的 DOCX、PDF 等格式统一转换为 Markdown,并保留 DOCX/PDF 中的嵌入图片。对于无可提取文本的 PDF 页面,转为单页图片保存,但不执行 OCR 或视觉模型调用。

2.分块与批量打包

将超长章节按 5000 个 Unicode 字符拆分,并将相邻小段合并为有界的语义块。随后将文本块组合成模型调用批次(通常上限为 15000 字符和 8 个块),以减少 API 请求次数。

3.模型生成知识点索引

针对每个批次,调用语言模型生成基于行的、有边界限制的知识点元数据,并引用简短的源单元 ID(如 u001),每个知识点最多引用 8 个 ID,避免复制长原文。每块最多生成 12 个知识点,单部分输出上限为 64000 字符。

4.验证与合并

对模型输出的批次结构进行严格验证,恢复确切的源单元作为最终内容,并将各批次结果确定性合并为一个完整的 JSONL 索引文件。

5.打包输出

将索引、源文件、资产及检索脚本打包为可安装的技能 ZIP。

该流程支持中断恢复。若某批次输出无效,系统会创建重试占位文件,并在下次请求时返回包含错误信息和源单元的待处理内容,无需重新处理全部数据。

三、输出结构与使用方式

使用时,AI 代理先调用技能包中的索引文件进行检索,定位最相关的知识点及其源单元 ID,再根据 ID 打开对应的 Markdown 文件或图片进行深度分析。这种机制将运行时上下文消耗控制在较低水平,同时保留了原始资料的完整可查性。

四、关键设计特点

证据引用机制:使用短 ID 引用原文,而非内嵌长段内容,显著降低索引生成阶段的 Token 消耗。

按比例抽样大纲:当知识点总数超出大纲容量上限时,系统按各文档知识点数量比例进行抽样,确保每个文档至少保留一个条目,避免信息覆盖不均。

确定性合并与校验:合并阶段会对批次有效性、源文件一致性进行强校验,拒绝手动编辑中间状态文件,保证最终索引的可信度。

格式与命名约束:输入文件自动添加序列前缀(如 001-original.pdf),避免同名不同扩展名文件冲突;任一源文档转换失败即视为整体任务失败,杜绝部分转换的模糊状态。

BookToSkill 并非试图让 AI 一次性“读完”所有文档,而是通过前置的结构化索引构建,使 AI 能够像使用专业数据库一样按需查询。

这种方式在保证信息覆盖完整性的同时,兼顾了成本与响应速度,为长文档知识管理提供了一种工程化的可行方案。

项目地址:https://github.com/zhimaAi/BookToSkill

点此进入芝麻小客服官网

了解更多功能详情,

获取功能试用,请扫码联系GitHub 国产开源BookToSkill:将书籍转为标准化 Skill,大幅降低 Token 消耗

原创文章,作者:mia,如若转载,请注明出处:https://xiaokefu.com.cn/blog/49350.html