TL;DR

AI Reads Books (echohive42/AI-reads-books-page-by-page) là một Python script open-source (MIT) tự động đọc PDF trang theo trang, dùng OpenAI API để trích knowledge points, rồi sinh Markdown summary theo từng chặng và summary tổng cuối cùng. Toàn bộ dependencies gói gọn trong 4 package: pydantic, openai, pymupdf, termcolor. Chạy local, trả phí theo OpenAI token, resume được nếu ngắt giữa chừng.

Điểm mới lạ

Không phải một SaaS "upload PDF rồi chờ tóm tắt". Đây là một file script bạn clone về chạy bằng chính API key của mình. Điểm thú vị nằm ở cách xử lý từng trang thay vì nhồi cả cuốn sách vào một prompt: script lật từng page, hỏi LLM "trang này có nội dung đáng học không?", nếu có thì extract knowledge points, nếu không (TOC, index, trang trắng, copyright...) thì skip. Cứ mỗi ANALYSIS_INTERVAL trang (mặc định 20), script sinh một summary trung gian — giống như ghi chú tiến trình khi đọc sách thật.

Vì sao đáng chú ý

Hầu hết công cụ tóm tắt PDF hoặc là bị chặn bởi context window khi sách dày, hoặc là phụ thuộc nhà cung cấp SaaS với giới hạn upload và privacy không minh bạch. Script này đại diện cho một trend quan trọng: thin orchestration layer quanh LLM API — nhỏ, code ngắn, dễ sửa, chạy đâu cũng được. Bạn muốn đổi từ gpt-4o-mini sang Claude hay local Llama? Sửa vài dòng. Muốn thêm OCR cho PDF scan? Fork và nối tesseract vào. Đây là hình mẫu cho những ai muốn tự chủ workflow thay vì phụ thuộc app đóng hộp.

Chi tiết kỹ thuật

  • Ngôn ngữ: Python 100%.
  • AI backend: OpenAI API, hai model tách vai trò — MODEL = "gpt-4o-mini" xử lý từng trang (phân loại skip/valid + extract knowledge points), ANALYSIS_MODEL = "o1-mini" sinh deep analysis và final summary.
  • Dependencies (requirements.txt, không pin version):
    • pydantic — schema validation (BaseModel cho output has_content + knowledge_points).
    • openai — API client.
    • pymupdf (import dưới tên fitz) — extract text PDF.
    • termcolor — log màu trên terminal.
  • Config constants ngay trong file: PDF_NAME, ANALYSIS_INTERVAL (mặc định 20, set None để bỏ interval summary), TEST_PAGES (mặc định 60 khi test, None cho full book).
  • Skip filter: LLM tự set has_content=false cho Table of Contents, Index, trang trắng, copyright, publishing info, references/bibliography, acknowledgments.
  • Resume: đọc lại knowledge base JSON đã lưu để tiếp tục từ nơi bỏ dở — khi OpenAI ngắt giữa chừng hoặc bạn tắt máy.

Output tạo ra gì

Sau khi chạy, thư mục book_analysis/ có cấu trúc:

  • pdfs/ — bản copy PDF gốc.
  • knowledge_bases/ — JSON tích luỹ knowledge points theo tiến trình.
  • summaries/ — các file Markdown: một bản mỗi interval (ví dụ summary_page_20.md, summary_page_40.md...) và một bản final tổng hợp.

Markdown dễ đọc, dễ paste vào Obsidian / Notion / Logseq để làm note lâu dài. JSON cho phép bạn build tool riêng trên top (ví dụ search across knowledge base, generate flashcard, quiz...).

So với các tool khác

ToolKiểuĐiểm mạnhĐiểm yếu
AI Reads BooksScript localControl tuyệt đối, resume, interval digestCần OpenAI API key, không OCR sẵn
NotebookLM / Claude ProjectsSaaSUI đẹp, multi-doc, citationsGiới hạn upload, privacy phụ thuộc nhà cung cấp
One-shot prompt (paste PDF vào ChatGPT)Thủ côngZero setupVỡ context với sách dày, không có progress summary

Ai nên dùng

  • Researcher / sinh viên cao học: digest paper hoặc sách giáo trình dày thành bullet knowledge points để ôn tập.
  • Non-fiction reader: đọc sách nghiệp vụ nhưng thiếu thời gian, cần note theo chapter.
  • Content creator: trích fact từ sách tham khảo để viết bài / nghiên cứu thị trường.
  • Developer tò mò: xem template "thin wrapper quanh LLM" để fork thêm OCR, đổi model, hoặc nối vào pipeline riêng.

Giới hạn & chi phí

  • Phụ thuộc OpenAI API: tốn token, không offline. Đổi provider cần sửa code, không có CLI flag.
  • Không OCR sẵn: PDF scan thuần ảnh không có text layer → fitz extract rỗng. Cần nối thêm tesseract hoặc dùng PDF đã có text.
  • Skip heuristic bằng LLM: có thể bỏ sót preface quan trọng nếu model phân loại sai — nên review lại skip list khi xử lý sách học thuật.
  • Chi phí: gpt-4o-mini + o1-mini tương đối rẻ nhưng với sách 300 trang + interval summaries, hoá đơn có thể vài đô. Tính trước với TEST_PAGES.
  • License: MIT — miễn phí, fork thoải mái. Creator echohive vận hành Patreon 400+ AI projects nếu bạn thích theo dõi thêm.

Nếu bạn muốn thử

Ba dòng lệnh để chạy:

git clone https://github.com/echohive42/AI-reads-books-page-by-page
cd AI-reads-books-page-by-page
pip install -r requirements.txt && python read_books.py

Trước khi chạy full book, set TEST_PAGES = 20 trong read_books.py để thử nghiệm chi phí và chất lượng summary cho sách của bạn. Khi ưng thì đổi về None.

Nguồn: GitHub repo, echohive.ai, tweet gốc.