Skip to content

Latest commit

 

History

History
286 lines (174 loc) · 14.1 KB

File metadata and controls

286 lines (174 loc) · 14.1 KB

DocOracle

将任何 PDF 转化为 AI 知识库——包含聊天、图表、引用,以及可部署的网站。

DocOracle 是一个开源项目,能将任何 PDF 文档转化为完整的结构化 AI 知识库。它提取每一页内容、以 Gemini Vision 分析每张图表、建立可搜索的数据,并可选择性地生成交互式网站,让用户能够提问并获得以原始文档为依据的答案——每个回答都附有页码引用,并自动显示相关图表。

Landing Page


语言切换 | Language

English · 繁體中文 · 简体中文 · 日本語 · Deutsch


为什么选择 DocOracle?(为什么不直接把 PDF 上传到 ChatGPT?)

你可能会想:"我直接把 PDF 上传到 ChatGPT 或 Claude 提问不就好了?"

你确实可以这样做——但以下是这样做的结果:

将 PDF 上传至 ChatGPT/Claude DocOracle
页码引用 模糊或缺失——LLM 无法可靠地告诉你答案来自哪一页 每个答案都包含精确的页码,因为流程保留了页面边界
图表与图片 被忽略或描述不清——大多数 LLM 完全跳过视觉内容 每张图表、表格和照片都由 Gemini Vision 进行详细的空间描述和检索标签分析
大型文档(200+ 页) 上下文窗口溢出——LLM 会悄悄丢弃内容,导致答案不完整或产生幻觉 流程逐页处理,然后建立检索优化的分块——不会丢失任何内容
一致性 每次问同一个问题可能得到不同答案 结构化 JSON 数据确保确定性检索——相同的问题始终找到相同的依据
可重用性 锁定在单一聊天会话中——无法分享、搜索或进一步开发 输出为标准 JSON 文件,可驱动网站、供 RAG 系统使用,或集成到任何应用程序中
词汇表与结构 无——只有原始答案,没有导航功能 自动生成带有类别标签的词汇表、附有摘要和关键字标签的章节/段落导航
可分享的成果 一个私人聊天记录 可部署的网站,供你的团队、读者、学生或客户使用

简而言之,将 PDF 上传到 LLM 只能得到一次一次性的对话。DocOracle 给你的是永久、结构化、可分享的知识库,保留每一页、每张图表和每个引用。


适合哪些人使用?

DocOracle 根据用户的技术背景和目标,服务不同类型的用户。请阅读符合你情况的类别。

第 1 类——非技术用户(无需编写代码)

这类用户希望在不编写代码或运行脚本的情况下,将 PDF 转化为 AI 知识库。

1.1 试用在线演示(零配置)

你是: 任何拥有 PDF 且想立即试用 DocOracle 的人,无需安装任何东西。

你要做的: 前往 DocOracle 在线演示,点击"用你的 PDF 试试",上传你的文档,等待流程处理完成。完成后,你可以直接在浏览器中与 AI 就你的文档进行聊天——附有引用和图表。

你需要的: 一个网页浏览器和一个 PDF 文件。仅此而已。

这是体验 DocOracle 最快的方式。无需下载、无需终端、无需 API 密钥。

1.2 构建独立的 AI 知识库网站(无代码工具)

你是: 使用 AI 驱动的网页构建工具(如 Base44LovableVibecoding.aiCursor)的用户,希望从你的 PDF 构建自己的 AI 知识库网站。

你要做的: 运行 DocOracle 流程(或让 AI 代理为你运行——见第 2 类),将你的 PDF 处理成 4 个 JSON 数据文件。然后使用你偏好的无代码构建工具,构建一个读取这些 JSON 文件并提供 AI 聊天界面的网站。你可以使用 DocOracle 的网站源代码作为参考或提示模板。

你获得的: 一个你拥有和控制的独立网站,由你文档的内容驱动。

1.3 为现有网站构建可嵌入的 AI 聊天小工具

你是: 已经拥有网站(公司网站、WordPress 博客、作品集等)并希望在其中添加 AI 驱动的"询问我的文档"聊天小工具的用户。

你要做的: 与 1.2 相同,但不是构建完整网站,而是使用无代码工具构建一个轻量级聊天小工具,然后通过 <iframe><script> 标签嵌入到你的现有网站中。

你获得的: 嵌入在你现有网站中的 AI 聊天窗口——访客无需离开你的网站即可就你的 PDF 内容提问。


第 2 类——开发者与技术用户

这类用户熟悉终端、Python 和/或 JavaScript,希望对流程和输出有更多控制。

2.1 全栈开发者(快速构建 AI 知识库 MVP)

你是: 了解 React/Node.js 的开发者,希望快速为客户或项目构建 AI 知识库——而不需要从头编写整个 PDF 处理流程。

你要做的: 克隆这个仓库,将你的 PDF 放在 input/ 中,运行流程,然后启动网站。根据需要自定义 UI、更换 LLM 提供商或扩展 API。请参阅下方的快速开始部分。

你获得的: 一个在一天内就能运作的 AI 知识库网站,包含聊天、词汇表、章节导航和视觉资产检索——全部准备好可以演示或部署。

2.2 使用 AI 代理仅运行流程(获取 JSON 输出)

你是: 想要流程输出的结构化 JSON 数据,但不需要网站的开发者或数据工程师。你计划将数据输入到你自己的 RAG 系统、搜索引擎或自定义应用程序中。

你要做的: 复制下方的现成提示,粘贴到任何有能力的 AI 代理(ChatGPT、Claude、Manus AI、Open Claw、Claude Cowork 等)中,并附上你的 PDF。AI 代理将执行完整流程并生成包含所有交付物的 PDF_PROJECT_OUTPUT/ 文件夹。

你获得的: 4 个关键 JSON 文件(page_chunks.jsonlglossary.jsonsections.jsonvisual_assets_index.json)加上评估问题、系统提示和视觉资产元数据——全部为任何编程语言都可读取的标准 JSON 格式。

此用例的复制粘贴提示: 请参阅 docs/PROMPT_PIPELINE_ONLY.md

2.3 使用 AI 代理运行流程并构建网站(端到端)

你是: 希望 AI 代理完成所有工作的开发者、创始人或技术用户——在单一会话中处理 PDF 并构建完整的可部署 AI 知识库网站。

你要做的: 复制下方的现成提示,粘贴到有能力的 AI 代理(Manus AI、Claude Cowork、Open Claw 等)中,并附上你的 PDF。AI 代理将执行完整流程、生成 JSON 数据,然后构建并部署带有 AI 聊天、词汇表、章节导航和视觉资产检索的交互式网站。

你获得的: 一个功能完整的 AI 知识库网站,准备好与你的团队、客户或受众分享。

此用例的复制粘贴提示: 请参阅 docs/PROMPT_PIPELINE_AND_WEBSITE.md

2.4 后端/数据工程师(仅使用流程,构建自己的前端)

你是: 已有前端或应用程序的 Python 开发者或数据工程师。你只需要一个可靠的 PDF 转结构化数据流程。

你要做的: 仅使用 pipeline/ 目录。在你的本地机器上运行脚本。输出的 JSON 文件可以集成到任何技术栈中——Python、PHP、Go、Java、Ruby 或任何能读取 JSON 的语言。

你获得的: 干净、结构化的 JSON 数据,包含页面级文字分块、词汇表、章节层次结构和视觉资产元数据——准备好插入到你的现有系统中。


第 3 类——商业与企业用户

3.1 企业培训/人力资源部门

你是: 拥有 PDF 格式员工手册、标准作业程序、合规手册或入职材料的人力资源经理或培训负责人。

你的目标: 让员工能够提问,如"请假政策是什么?"或"如何提交费用报告?",并获得带有页码参考的即时准确答案。

如何使用 DocOracle: 让你的 IT 团队运行流程(或使用第 2 类中的提示使用 AI 代理),然后在内部为你的员工部署网站。

3.2 作者与出版商

你是: 撰写了一本书或手册并希望为读者提供 AI 驱动伴侣的作者、技术写作者或出版商。

你的目标: 让读者能够提问,如"第 5 章涵盖什么内容?",并获得以你的书为依据的答案,附有页码引用。

如何使用 DocOracle: 通过流程处理你的书的 PDF,然后将网站部署为你出版物的伴侣。


第 4 类——研究人员与学者

4.1 研究人员、学者和研究生

你是: 处理冗长的政府报告、学术论文、政策文件或技术规范的研究人员。

你的目标: 快速找到埋藏在 500 页文档中的特定条款、数据点或论点。

如何使用 DocOracle: 在你的文档上运行流程,并在本地启动网站。使用 AI 聊天以完整引用支持查询你的文档。


第 5 类——教育工作者与培训机构

5.1 教师与教育机构

你是: 拥有教科书、讲义或学习材料的教师、教授或补习中心。

你的目标: 为学生提供 AI 学习助手,回答"牛顿第三定律是什么?"等问题,答案以实际教科书为依据——引用具体页面。

如何使用 DocOracle: 处理教科书 PDF,为你的学生部署网站。每个答案都包含页码,让学生可以在原始材料中验证并进一步阅读。


功能特色

DocOracle 接受 PDF 并分两个阶段生成完整的可部署 AI 知识库:

第一阶段:流程 — 一组在你的本地机器上处理 PDF 的 Python 脚本。流程从每一页提取文字,使用 Gemini Vision 分析图表和表格,对页面类型进行分类,建立词汇表,生成章节摘要,并创建检索优化的分块。

第二阶段:网站 — 一个提供已处理知识库的全栈 Web 应用程序(React + Express + tRPC)。用户可以与 AI 聊天、浏览词汇表、导航书籍结构,并在答案旁边看到相关图表。


功能列表

功能 描述
Gemini Vision 分析 每张图表、表格和图片都由 Gemini Vision 进行详细的空间描述分析
带引用的 AI 聊天 提问并获得以文档为依据的答案,附有页码引用
视觉资产检索 相关图表自动出现在聊天答案旁边
词汇表浏览器 带有类别标签和页码参考的字母词汇表
章节导航器 带有摘要和关键字标签的完整书籍结构
图片说明 "转换为图片说明"按钮为复杂答案生成 AI 视觉摘要
深色/浅色主题 在深色和浅色模式之间切换
PDF 上传演示 用于上传和处理新 PDF 的内置界面

快速开始

本节适用于开发者(用户类型 2.1 和 2.4)。如果你是非技术用户,请参阅上方的第 1 类

先决条件

需求 版本 用途
Python 3.9+ 流程脚本
Node.js 18+ 网站
pdftotext 任意 文字提取(sudo apt-get install poppler-utils
Gemini API 密钥 Vision 分析和聊天(获取免费密钥

步骤 1:克隆仓库

git clone https://github.com/dev-james0723/DocOracle.git
cd DocOracle

步骤 2:放置你的 PDF

cp /path/to/your/book.pdf input/

步骤 3:安装流程依赖项

pip install -r pipeline/requirements.txt

步骤 4:设置你的 API 密钥

export GEMINI_API_KEY="your-gemini-api-key"

步骤 5:运行流程

bash pipeline/run_all.sh

流程将通过 12 个步骤处理你的 PDF。处理时间取决于页数:

页数 预估时间
50 ~15 分钟
200 ~1 小时
500 ~3 小时

步骤 6:启动网站

# 将 4 个关键输出文件复制到网站
cp output/05_retrieval/page_chunks.jsonl website/server/data/
cp output/04_gold_master/glossary.json website/server/data/
cp output/04_gold_master/sections.json website/server/data/
cp output/10_visual_assets/visual_assets_index.json website/server/data/visual_assets.json

# 安装并启动网站
cd website
npm install
npm run dev

在浏览器中打开 http://localhost:3000。你的 AI 知识库已准备就绪。


流程步骤

流程由 12 个按顺序执行的 Python 脚本组成:

步骤 脚本 功能
1 01_build_inventory.py 将每一页分类为文字、图表、照片或混合
2 02_generate_page_records.py 使用 Gemini Vision 为每一页创建详细记录
3 03_merge_all_records.py 将文字提取和视觉分析合并为黄金主记录
4 04_build_visual_summary.py 为高风险视觉页面生成摘要
5 05_build_sections_glossary.py 建立章节/段落结构和词汇表
6 06_build_glossary_faq.py 从内容生成 FAQ 种子
7 07_build_retrieval.py 为 RAG 创建检索优化的分块
8 08_build_eval.py 生成 80+ 个评估问题用于测试
9 09_identify_visual_pages.py 识别所有带有图表、表格或图片的页面
10 10_build_visual_assets.py 将视觉资产提取为单独的图片
11 11_build_visual_metadata.py 将每个视觉资产与描述性元数据配对
12 12_build_url_map.py 建立用于网页显示的 URL 映射

许可证

本项目采用 MIT 许可证——详情请参阅 LICENSE 文件。

重要: DocOracle 是一个用于处理你有合法使用权的文档的工具。流程和网站代码是开源的;你处理的文档是你的责任。切勿上传你没有使用许可的受版权保护的材料。


DocOracle — 因为每份文档都值得被理解。