オープンソース抽出サービス:非構造化テキストから構造化データを抽出
LangChain は、PDF、HTML、テキストファイルから構造化データを抽出するオープンソース抽出サービスのホスト版をリリースしました。このサービスは無料で使用できますが、本番環境や機密データには適していません。ユーザーは抽出スキーマを定義し、少数ショットの例を追加し、異なる LLM モデルを切り替えることができます。シンプルなフロントエンドにより、開発者は迅速に実験し、独自の LangChain ワークフローに統合できます。
2024年3月26日、LangChain は最新の OSS ユースケースアクセラレーターとして、テキストや PDF 文書などの非構造化ソースから構造化データを抽出するサービスのホスト版を発表しました。本日、このサービスはシンプルなフロントエンドとともに公開されました。アプリケーションは無料で使用できますが、本番環境のワークロードや機密データを意図したものではありません。その目的は、2024 年にこのカテゴリで何が可能かを示し、開発者が独自のアプリケーション開発を迅速に開始できるようにすることです。
なぜ今なのか? 構造化データ抽出は、大規模言語モデルの貴重なユースケースとして浮上しています。モデルは非構造化テキストの曖昧さを推論し、情報を所望のスキーマに強制することができます。モデルプロバイダーは、長いコンテキストウィンドウと関数呼び出し機能をますますサポートしており、これらは両方ともデータ抽出の重要な機能です。LangChain は最近、データ抽出のサポートを改善し、開発者がさまざまなファイルタイプ、スキーマ形式、モデル、少数ショット例、抽出方法(ツール呼び出し、JSON モード、パースなど)を簡単に扱えるようにしました。リファレンスアプリケーションをホストすることで、ユーザーは自身のユースケースに最新のツールを試し、見たものを基盤となる OSS 実装に結び付けることができます。
主な機能:PDF、HTML、テキストのサポート;カスタム指示とスキーマを持つ抽出器の定義と永続化;コンテキスト学習のための少数ショット例の追加;ユーザー間での抽出器の共有;LLM モデルの切り替え;コア抽出ロジックの LangServe エンドポイントにより、独自の LangChain ワークフローにプラグイン可能;自然言語で抽出スキーマを定義し、他のユーザーと共有し、テキストやファイルでテストできるフロントエンド(ただし少数ショット例は未サポート)。
ブログ記事では、Uber の 2023 年第 4 四半期決算電話会議から財務データを抽出する例を通じて、サービスの使用方法を詳しく説明しています。サンプルコードでは、Pydantic スキーマの定義、抽出器の作成、PDF ファイルの送信、結果の解析方法を示しています。また、少数ショット例を追加して出力形式を改善する方法や、LangServe インターフェースを介して抽出ロジックをより大きな検索チェーンに統合する方法も紹介しています。このプロセス全体を通じて、サービスの使いやすさと柔軟性が強調され、開発者からのフィードバックと貢献を歓迎しています。
具体的には、まず PDF ファイルを取得し、一意のユーザー ID を生成します。この ID は抽出器やその他のアーティファクトへのアクセスを制御します。次に、Pydantic を使用して財務データのスキーマを定義します。スキーマには名前、値、規模、期間の開始日、期間の長さ、証拠テキストが含まれます。このスキーマをサーバーに POST して抽出器を作成し、PDF を送信して抽出を実行します。初期結果では規模の表記がスキーマと異なることがありますが、少数ショット例を追加することで、期待する形式(例:「MM」や「B」)に調整できます。さらに、抽出ロジックは LangServe を介して RemoteRunnable として利用可能で、より大きなチェーンやエージェントに組み込むことができます。例えば、ベクトルストアでドキュメントを検索し、その結果に対して抽出を実行する RAG シナリオが示されています。
このサービスは、LangChain のデータ抽出機能の最新の進歩を示すものであり、開発者が迅速に抽出ワークフローを構築し実験できるようにします。LangChain はコミュニティからのフィードバックと貢献を歓迎しています。