スキャン本をデジタルPDFに変換
会話はシンプルに
ユーザーは「このPDFを読みやすいデジタル本にしてください。手順は https://github.com/MuhtajinMukhtar/scan-book-to-digital-pdf に従ってください」とだけ言えばよく、PDFを添付しても構いません。OCR、PP-StructureV3、SHA-256、コマンドラインといった用語を知っている必要はありません。
- PDFが添付されていない場合は、PDFを依頼してください。
- デフォルトでは、元のレイアウトに忠実で、原本に近いフォントと段落開始を採用します。必要に応じて、一度に一つの親しみやすい質問を、日常的な言葉で行います:「文字は原本のようにしますか、それともモダンなスタイルにしますか?」「文字の大きさは原本通り、それとも大きくしますか?」「段落の最初は字下げしますか、それとも左揃えにしますか?」「原本のまま」という選択肢を用意してください。デフォルトで十分な場合は、すべての質問をする必要はありません。
- 進捗状況は平易な言葉で報告します:確認済みページ数、不確かなページ、レビュー用PDF。技術的なログはワークファイル内に保持し、ユーザーのチャットには表示しないでください。
- ユーザーにOCRエンジンを手動で選択させる必要はありません。互換性のあるMacでは、以下の両方のエンジンを使用します。
原本の保護と設定
ページ数、原本のSHA-256、ファイルメタデータ、出力先を記録します。原本または承認済みの以前のバージョンを上書きしないでください。ユーザーが明示的にページ再構成を要求しない限り、デフォルトで原本のページマッピングを正確に保持します。明示的な設定を尊重します:本文セリフ(Georgiaがインストール済みでライセンスがある場合はそれ、それ以外はオープンセリフ)またはサンセリフ;原本推定または指定されたフォントサイズ;行頭字下げ(原本通り / あり / なし)。原本の見出し、イタリック、写真、図、表、ロゴ、引用、フォーム、フッター、読み取り順序を保持します。著作権で保護されたスキャンやフォントファイルを再配布しないでください。
Mac優先デュアルOCRパイプライン(フル実行時に必須)
references/mac-setup.mdに従って、隔離されたMac Python環境をセットアップします。処理前に、実際のApple VisionとPaddleOCR PP-StructureV3がインストールされていることを確認します。本番システムやグローバルなパッケージ変更は使用しません。python scripts/mac_hybrid_ocr.py BOOK.pdf --work-dir ./workを実行します。これにより、同じキャッシュされたページ画像に対して、まずApple Vision、次にPP-StructureV3でscripts/ocr_book.pyが呼び出され、生のPaddle JSONとMarkdownが保存され、work/fusion/にページごとの比較レポートが生成されます。- Paddle JSONから生の
overall_ocr_res.rec_textsを読み取ります。Markdownレンダリングだけではありません。成功したプロトタイプでは、5ページのパイロットでPaddle Markdownが省略した7行を回復しました。Markdownが完全であると決して想定しないでください。paddle_raw_not_in_markdown、paddle_not_in_apple、apple_not_in_paddle、およびスペル/表現のバリアント警告を確認します。これらはすべてレビュー候補であり、自動承認された修正ではありません。 - 修正を適用する前に、欠落テキストや一致しない名称を原本のページ画像と照合して確認します。両方のエンジンを1行ずつ比較します。どちらかのエンジン単独では権威的ではありません。不確実性はページ固有の問題台帳に記録します。文脈だけでテキストを創作しないでください。
- すべてのページを分類し、検証済みの読み取り順序から、選択されたサイズ、フォント、段落インデント、両端揃えの本文でデジタルタイプセットされたテキストを構成します。原本のトリミングされた写真/イラストを使用します。
references/page-archetypes.mdを参照してください。安全に再構築できないページについては、選択可能なOCRレイヤー付きの原本画像を保持し、そのページを検索可能スキャンのフォールバックとして明示的にマークします。 - 原本の各ページに対して1つのマニフェストエントリを作成します:ソース/出力ページ、タイプ、OCRエンジン、承認された修正、画像チェック、デジタルまたは検索可能スキャンステータス、例外、視覚的レビューステータス。
scripts/pdf_audit.pyを使用して、ソース単語のカバレッジ、ページマッピング、埋め込みフォント、空白/クリップされたページや画像がないこと、ソース/出力の視覚的比較を検証します。references/qa-and-handoff.mdを読んでください。成功を報告するために失敗を抑制しないでください。- レビュー用PDFと簡潔な未完了ページサマリーを提供します。ユーザーが編集結果を承認した後にのみ、最終版としてマークします。
scripts/lossless_optimize.pyはコピーに対してのみ実行し、レンダリングとテキストの一致を検証します。
運用上の制約
- これはワンクリックで使える万能リタイプセッターではありません:AIエージェントは複雑なページの編集的な再構築を実行する必要があります。
mac_hybrid_ocr.pyはソース比較を準備しますが、最終的な本を単独で生成するわけではありません。 - MacでPaddleが実行できない場合、黙ってAppleのみで続行し、出力がデュアルOCRを通過したふりをしないでください。インストールの問題を報告し、安全な次のステップをユーザーに提案してください。
- 現在のChatGPT WorkやCodex環境がMacソフトウェアを実行できない場合は、簡潔にその旨を伝えてください。OCR出力を捏造する代わりに、許可されたMac実行環境を入手してください。
- キャッシュ/ソースの同一性を保持してください。他のソースからの既存のOCR結果を自動的に上書きしないでください。プライベートファイルをリポジトリに公開しないでください。
--compare-onlyを使用して、OCRを再実行せずに既存のキャッシュを再評価します。