@tom_doerr: 人工智能驱动的逐页PDF知识提取与摘要 https://github.com/echohive42/AI-reads-books-page-by…
摘要
一种人工智能工具,用于逐页从PDF书籍中提取知识并生成摘要。
查看缓存全文
缓存时间: 2026/06/30 11:41
AI驱动的逐页PDF知识提取与摘要生成 https://github.com/echohive42/AI-reads-books-page-by-page…
echohive42/AI-reads-books-page-by-page
来源:https://github.com/echohive42/AI-reads-books-page-by-page
📚 AI 读书:逐页 PDF 知识提取与摘要生成器
read_books.py 脚本智能地对 PDF 书籍进行逐页分析,系统地提取知识点,并按指定间隔生成渐进式摘要。它独立处理每一页,既能深入理解内容,又能保持书籍的上下文连贯性。下面详细解释脚本的工作原理:
功能特性
- 📚 自动化的 PDF 书籍分析与知识提取
- 🤖 基于 AI 的内容理解与摘要生成
- 📊 基于间隔的进度摘要
- 💾 持久化的知识库存储
- 📝 Markdown 格式的摘要输出
- 🎨 彩色终端输出,提升可读性
- 🔄 支持断点续传,复用已有知识库
- ⚙️ 可配置的分析间隔与测试模式
- 🚫 智能内容过滤(跳过目录、索引等页面)
- 📂 输出文件按结构化目录组织
❤️ 深入探索:获取 Amplified + 每周 1000x LAB 会议
本仓库只是我向赞助者分享的更大规模 AI 构建实践的一扇小门。
- ❤️ 在 Patreon 上支持我 (https://www.patreon.com/c/echohive42/membership),即可获取完整的项目集合、源代码、说明文档以及持续更新的 AI 构建材料。
- 🎥 获取 Amplified (https://www.patreon.com/collection/1845761) 是我的一套 55 集视频系列,旨在帮助你快速思考、快速构建,并加速你的创造力。学习如何有效且富有创意地使用 Codex、Claude Code、Cursor 等 AI 工具。通过变得“可扩展”来获得扩展,更多章节将很快陆续推出。
- 🧠 1000x LAB(Architect+ 等级)(https://www.patreon.com/collection/759209) 是赞助者会议存档:目前已有 82 场专注的 1000x 会议,每周新增一场。这些会议深入探讨了真实构建、智能体工作流、创意工具以及将实验转化为完整可用系统的决策过程。
- 🤝 更高等级的会员还包含一对一会议,为你的 AI 构建、工作流程和创意方向提供更直接的指导。
- 🚀 赞助者能获得诸如本项目背后的深层背景:源代码、实操讲解、实施笔记以及大量将 AI 创意转化为实际产品的实例。
使用方法
-
设置环境
# 克隆仓库 git clone [仓库地址] cd [仓库名称] # 安装依赖 pip install -r requirements.txt -
配置
- 将你的 PDF 文件放置在项目根目录
- 打开
read_books.py,将PDF_NAME常量改为你的 PDF 文件名 - (可选)调整其他常量,如
ANALYSIS_INTERVAL或TEST_PAGES
-
运行
python read_books.py -
输出 脚本会生成以下内容:
book_analysis/knowledge_bases/:包含提取知识的 JSON 文件book_analysis/summaries/:包含间隔摘要和最终摘要的 Markdown 文件book_analysis/pdfs/:你的 PDF 文件的副本
-
自定义选项
- 将
ANALYSIS_INTERVAL设为None可跳过间隔摘要 - 将
TEST_PAGES设为None可处理整本书 - 调整
MODEL和ANALYSIS_MODEL以使用不同的 AI 模型
- 将
配置常量
PDF_NAME:要分析的 PDF 文件名。BASE_DIR:分析的基础目录。PDF_DIR:存储 PDF 文件的目录。KNOWLEDGE_DIR:保存知识库的目录。SUMMARIES_DIR:保存摘要的目录。PDF_PATH:PDF 文件的完整路径。OUTPUT_PATH:知识库 JSON 文件的路径。ANALYSIS_INTERVAL:生成间隔分析所需的页数。设为None可跳过间隔分析。MODEL:用于处理页面的模型。ANALYSIS_MODEL:用于生成分析的模型。TEST_PAGES:用于测试的页数。设为None可处理整本书。
类与函数
PageContent 类
一个 Pydantic 模型,表示 OpenAI API 页面内容分析响应的结构。包含两个字段:
has_content:一个布尔值,表示该页面是否包含相关内容。knowledge:从该页面提取的知识点列表。
load_or_create_knowledge_base() -> Dict[str, Any]
加载已有的知识库 JSON 文件(如果存在)。如果不存在,则返回一个空字典。
save_knowledge_base(knowledge_base: list[str])
将知识库保存到 JSON 文件。打印已保存项目数量的消息。
process_page(client: OpenAI, page_text: str, current_knowledge: list[str], page_num: int) -> list[str]
处理 PDF 的单个页面。它将页面文本发送给 OpenAI API 进行分析,并用提取的知识点更新知识库。同时将更新后的知识库保存到 JSON 文件。
load_existing_knowledge() -> list[str]
加载已有的知识库 JSON 文件(如果存在)。如果不存在,则返回一个空列表。
analyze_knowledge_base(client: OpenAI, knowledge_base: list[str]) -> str
使用 OpenAI API 生成整个知识库的综合摘要。以 Markdown 格式返回摘要内容。
setup_directories()
设置分析所需的目录结构。清除之前生成的任何文件,并确保 PDF 文件位于正确位置。
save_summary(summary: str, is_final: bool = False)
将生成的摘要保存到 Markdown 文件。根据是最终摘要还是间隔摘要,创建具有适当命名约定的文件。
print_instructions()
打印使用该脚本的说明。解释配置选项以及如何运行脚本。
main()
主函数,协调整个过程。设置目录、加载知识库、处理 PDF 的每一页、生成间隔摘要和最终摘要,并保存它们。
工作原理
- 设置:脚本设置必要的目录,并确保 PDF 文件位于正确位置。
- 加载知识库:如果存在,则加载已有的知识库。
- 处理页面:逐页处理 PDF,提取知识点并更新知识库。
- 生成摘要:根据
ANALYSIS_INTERVAL生成间隔摘要,并在处理完所有页面后生成最终摘要。 - 保存结果:将知识库和摘要保存到各自的文件中。
运行脚本
- 将你的 PDF 放在脚本所在目录。
- 将
PDF_NAME常量更新为你的 PDF 文件名。 - 运行脚本。它将处理书籍,提取知识点并生成摘要。
示例用法
相似文章
@Jolyne_AI: 一个能自动读懂 PDF 书籍的 Python 脚本:AI Reads Books。 把 PDF 丢进去,运行即可按页解析内容,抓取关键知识点,自动生成结构清晰的 Markdown 摘要。 GitHub:https://github.com…
一个 Python 脚本,能自动解析 PDF 书籍内容,提取关键知识点并生成 Markdown 格式的摘要,旨在提升阅读和知识整理效率。
@tom_doerr: 在本地索引PDF和Markdown文件以进行语义搜索和AI增强。 https://github.com/joelhooks/pdf-brain…
此工具在本地对PDF和Markdown文件进行索引,用于语义搜索和AI增强,使用Ollama进行嵌入和LLM处理,并提供CLI和MCP服务器以便与AI助手集成。
@tom_doerr: 从 Hacker News、Reddit 和 RSS 生成每日 AI 简报 https://github.com/Thysrael/Horizon…
Horizon 是一款开源工具,通过聚合和总结来自 Hacker News、Reddit、RSS 等来源的新闻,并利用 Claude、GPT 等 AI 模型生成每日 AI 简报。
@so_ainsight: 杂乱的文档,一条命令即可转化为结构化知识。向AI喂文档时,一个隐秘的难题是...
Hyper-Extract 是一款 Apache 2.0 开源工具,能将非结构化文档转换为结构化知识库,支持知识图谱、时间序列数据、空间信息,实现高精度AI查询。
@RituWithAI: 有人刚刚搭建了一个工具,可以将任何书籍转化为 AI 代理可永久使用的技能。一条命令。任何 PDF、ePub、o…
book-to-skill 是一个开源工具,能将 PDF、ePub 和长文档转换为结构化的 SKILL.md 文件,供 Claude Code 和 Cursor 等 AI 编码代理使用,让代理在编码会话中永久应用书籍知识。