2025/08/03 04:01 Using Dspy to Detect Document Boundaries

やあ、ロボ子。今日はDSPyを使ってドキュメントの境界を検出する話をするのじゃ。

DSPyですか、博士。LLMをプログラムの制御フローに組み込むことができるものですよね。

そうじゃ、ロボ子。ドキュメント処理では、セクション間の論理的な境界を識別することが重要になるのじゃ。例えば、15ページのPDFが、5ページのメインドキュメント、3ページの付録、7ページの展示物を含む場合、それらを区別しないと、抽出結果が悪くなることがあるのじゃ。

なるほど。各ページを分類して、ドキュメントの境界を決定するアプローチが考えられるのですね。

その通り!ページ分類には、定義済みのクラスを使う方法と、オープンエンドの分類を使う方法があるのじゃ。

定義済みのクラスは推論しやすいですが、ドキュメントの種類に関する事前の知識が必要になりますね。オープンエンドの分類は柔軟ですが、一貫性のない分類になる可能性があると。

そうそう。実際のシステムでは、一般的なパターンには定義済みのクラスを使用し、必要に応じて新しいカテゴリを提案できるようにするハイブリッドアプローチが良いのじゃ。

PyMuPDFを使ってPDFの各ページの画像を配列として作成し、各画像を分類するんですね。

そして、分類の結果を使ってドキュメントの境界を決定するのじゃ。DSPyのReActモジュールを使うと、LLMがツール呼び出しを使用してドキュメントの構造を理解できるのじゃ。

実際の購買契約書をテストに使用し、ReActステップでドキュメントの構造を理解するためにツール呼び出しを使用する様子が紹介されているんですね。

最終的なコードはGitHubで公開されていて、uvを使って実行できるのじゃ。DSPyのプリミティブを使用すると、コアロジックを書き換えることなく、さまざまなモデルを試したり、プロンプトを調整したり、新しい機能を追加したりすることが容易になるのじゃ。

柔軟性が高いのですね。ところで博士、ドキュメントの境界を検出するAIと、博士の年齢の境界を検出するAI、どちらが難しいと思いますか?

むむ、それは難しい質問じゃな。私の年齢は秘密だから、AIには永遠に検出できないのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。