
项目开源地址:https://github.com/zhimaAi/doc-to-skill

一、项目概述
Doc to Skill 是一个将 TXT、Markdown、DOCX 或 PDF 文件转换为便携式技能 ZIP 包的工具。其核心思想是,通过将文档内容结构化,生成一个包含知识索引、源文件和检索助手的“技能”,以便AI Agent能高效地检索和使用这些知识。
这个项目本质上是一个独立的技能模板,其工作流由内置的 Python 脚本实现,不依赖特定的 Agent 框架。
二、核心处理流程
项目的核心处理流程清晰,主要分为以下六个步骤:
-
文档转换:将所有源文档(.txt, .md, .docx, .pdf)转换为 Markdown 格式,并提取 DOCX/PDF 中的图片等资源。
-
文本分块:将过长的章节(超过 5000 个字符)进行拆分,并将相邻的小段落合并成有界的数据块。
-
模型批处理:将文本块组合成模型调用批次(通常上限为 15,000 字符和 8 个块),让模型生成知识元数据并引用来源ID。
-
验证与合并:验证批次结构,恢复确切的源单元内容,并确定性地合并成最终的 JSONL 索引。
-
打包:将索引、源文件、资源和检索脚本打包成一个可安装的技能 ZIP 文件。
-
特殊处理:对于无法提取文字的PDF页面,会将其转换为图片。项目不调用OCR或视觉模型,仅做资源保留。
三、为什么能降低Token消耗?
该项目通过巧妙的批处理和数据引用机制来降低Token消耗:
-
批量处理:一次模型调用处理多个数据块,而非一个一个处理。
-
证据ID引用:为每个来源证据单元(u001, u002…)分配ID,模型输出时仅需引用最多8个ID,而不是复制大段原文。
-
本地还原:合并脚本在本地根据ID还原确切的原文内容。
-
状态持久化:完成的批次存储在磁盘上,其结构和引用在恢复时会被验证,无需再次加载到模型上下文中。
-
稳健的错误处理:遇到无效输出时,会创建重试占位符,并返回包含错误信息和源单元的待处理负载,供一次性重写。
了解更多功能详情,
获取功能试用,请扫码联系

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