19:20Chase AI
Log in to leave a comment
No posts yet
数百枚のPDFや複雑な表をローカル環境で分析するのは苦行です。単にツールをインストールしただけでは解決しません。煩雑なデータを、AIが即座に処理できる高純度なコンテキストへと精製してこそ、実質的な業務自動化が始まります。
Claude Codeを使っていると、プロジェクトAに関する質問に対してプロジェクトBの数値を回答してしまうことがあります。これはベクトルデータベースやナレッジグラフが混ざり合うことで発生する現象です。これを防ぐには、プロジェクトルート内に標準化されたフォルダ構造を設計し、パスを固定する必要があります。
最も整理された構造は、元ファイルを docs/raw/ に、MinerUによる変換結果を docs/output/ に、RAG-Anythingのナレッジグラフインデックスを docs/context_db/ に配置する方式です。このように分離することで、kv_store_doc_status.json のようなステータスファイルの競合を避けることができます。
Claude Codeにこのパスだけを参照させるには、.claudecode/config.json の設定が必要です。
.claudecode ディレクトリを作成します。config.json 内の mcpServers 項目に rag-anything を追加します。env 設定で RAG_STORAGE_DIR の値を ./docs/context_db に指定します。この設定を終えると、AIは指定されたパスのデータのみを活用します。回答の精度が向上し、他のクライアントデータと混ざるリスクがなくなります。
スキャンされたPDFや多段レイアウトは、OCRの認識率を低下させます。表がページの端に密着していると、YOLOレイアウト検出モデルがそれを枠線と誤認し、丸ごと削除してしまうこともあります。解決策は単純です。画像の外周に約40ピクセルの白い余白を追加すればよいのです。
実際に、端に密着した表は余白がない状態では認識率が3%程度に留まりますが、40pxの余白を追加すると98%まで向上します。不鮮明なスキャンデータは、OpenCVを使ってコントラストを調整してください。次の数式を適用して (コントラスト)値を1.0から3.0の間で調整すると、文字の境界が鮮明になります。
Pythonスクリプトで CLAHE 技法を適用した後にMinerUに入力すれば、表データの抽出量は数十倍以上に増加します。目で見ても不鮮明な文書をAIにそのまま読ませようとするのは、時間の無駄です。
ローカルで大量の文書を処理する際の最大の壁はGPUメモリです。MinerU 2.5バージョンは高速化されましたが、VRAMが24GB未満の環境では、巨大なPDFを処理中にシステムがフリーズすることがよくあります。安定性のために、num_batch パラメータをデフォルトの512から32や64に下げる必要があります。
num_batch を32に、gpu_memory_utilization を0.7に修正します。/etc/sysctl.conf でメモリのオーバーコミットを制限してください。バッチサイズを小さくすると処理速度は多少落ちるかもしれませんが、作業途中でプロセスが強制終了される事態を防ぐことができます。速度よりも、安定して完走させることの方が重要です。
データのインデックス作成が終われば、いよいよ成果物を作成する番です。RAG-Anythingは表と数式の関係を構造化するため、Claude Codeで複雑な問い合わせが可能です。「第3四半期の売上表と現在の技術仕様書を照合して」といった指示が可能になります。
毎週繰り返されるレポート作成時間を短縮するには、明確なテンプレートを使用してください。
<context> タグに入れ、出力形式は <format> タグで区別します。このワークフローに乗れば、分析担当者はAIが作成した下書きの検討だけに集中できます。一次データをいちいち照合して時間を浪費する必要はありません。