@tom_doerr: 人工智能驱动的逐页PDF知识提取与摘要 https://github.com/echohive42/AI-reads-books-page-by…

X AI KOLs Timeline 工具

摘要

一种人工智能工具,用于逐页从PDF书籍中提取知识并生成摘要。

人工智能驱动的逐页PDF知识提取与摘要 https://github.com/echohive42/AI-reads-books-page-by-page…
查看原文
查看缓存全文

缓存时间: 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 创意转化为实际产品的实例。

使用方法

  1. 设置环境

    # 克隆仓库
    git clone [仓库地址]
    cd [仓库名称]
    
    # 安装依赖
    pip install -r requirements.txt
    
  2. 配置

    • 将你的 PDF 文件放置在项目根目录
    • 打开 read_books.py,将 PDF_NAME 常量改为你的 PDF 文件名
    • (可选)调整其他常量,如 ANALYSIS_INTERVALTEST_PAGES
  3. 运行

    python read_books.py
    
  4. 输出 脚本会生成以下内容:

    • book_analysis/knowledge_bases/:包含提取知识的 JSON 文件
    • book_analysis/summaries/:包含间隔摘要和最终摘要的 Markdown 文件
    • book_analysis/pdfs/:你的 PDF 文件的副本
  5. 自定义选项

    • ANALYSIS_INTERVAL 设为 None 可跳过间隔摘要
    • TEST_PAGES 设为 None 可处理整本书
    • 调整 MODELANALYSIS_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 的每一页、生成间隔摘要和最终摘要,并保存它们。

工作原理

  1. 设置:脚本设置必要的目录,并确保 PDF 文件位于正确位置。
  2. 加载知识库:如果存在,则加载已有的知识库。
  3. 处理页面:逐页处理 PDF,提取知识点并更新知识库。
  4. 生成摘要:根据 ANALYSIS_INTERVAL 生成间隔摘要,并在处理完所有页面后生成最终摘要。
  5. 保存结果:将知识库和摘要保存到各自的文件中。

运行脚本

  1. 将你的 PDF 放在脚本所在目录。
  2. PDF_NAME 常量更新为你的 PDF 文件名。
  3. 运行脚本。它将处理书籍,提取知识点并生成摘要。

示例用法

相似文章