ホームページ > テクノロジー周辺機器 > AI > Llamaindexを使用したマルチモーダル財務報告の生成

Llamaindexを使用したマルチモーダル財務報告の生成

尊渡假赌尊渡假赌尊渡假赌
リリース: 2025-03-09 12:45:12
オリジナル
149 人が閲覧しました

多くの現実世界のアプリケーションでは、データは純粋にテキストではありません。物語を強化するのに役立つ画像、表、チャートが含まれる場合があります。マルチモーダルレポートジェネレーターを使用すると、テキストと画像の両方を最終出力に組み込むことができ、レポートをより動的で視覚的にリッチにします。 この記事では、次のようなパイプラインを構築する方法の概要を説明します。

llamaindex
    ドキュメントの解析とクエリエンジンを調整するには、
  • Openai
  • テキスト分析の言語モデル、
  • llamaparse
  • PDFドキュメントからテキストと画像の両方を抽出するには、
  • ロギングとデバッグのためにArize Phoenixを使用した観測可能性のセットアップ(llamatrace経由)
  • 最終結果は、テキストとビジュアルの両方でPDFスライドデッキ全体を処理し、テキストと画像の両方を含む構造化されたレポートを生成できるパイプラインです。
  • 学習目標

マルチモーダルパイプラインを使用して、効果的な財務レポート生成のためにテキストとビジュアルを統合する方法を理解してください。

構造化された出力で財務報告の強化のためにLlamaindexとLlamaparseを利用することを学ぶ。

PDFドキュメントからテキストと画像の両方を効果的に抽出するためのLlamaparseを探索してください。 複雑なパイプラインのロギングとデバッグのために、Arize Phoenix(Lamatrace経由)を使用して観測可能性を設定します。
    構造化されたクエリエンジンを作成して、視覚的要素を含むテキストの要約をインターリーブするレポートを生成します。
  • この記事は、
  • データサイエンスブログの一部として公開されました。
  • 目次

プロセスの概要ステップバイステップの実装ステップ1:依存関係のインストールとインポートステップ2:観察可能性を設定します

ステップ3:データのロード
    ステップ6:関連テキストと画像
  • プロセスの概要
    • マルチモーダルレポートジェネレーターの構築には、PDFSなどの複雑なドキュメントからテキストと視覚要素をシームレスに統合するパイプラインを作成することが含まれます。このプロセスは、ドキュメントの解析やクエリオーケストレーションにllamaindexなど、テキストと画像の両方を抽出するためのllamaparseなどの必要なライブラリのインストールから始まります。 Arize Phoenix(Lamatraceを介して)を使用して、パイプラインを監視およびデバッグして観測性が確立されます。

      セットアップが完了したら、パイプラインはPDFドキュメントを処理し、そのコンテンツを構造化されたテキストに解析し、テーブルやチャートなどの視覚要素をレンダリングします。これらの解析された要素が関連付けられ、統一されたデータセットが作成されます。 summaryindexは、高レベルの洞察を有効にするために構築されており、関連するビジュアルとテキスト分析をブレンドするレポートを生成するために構造化されたクエリエンジンが開発されています。その結果、静的ドキュメントをユーザークエリに合わせて調整されたリッチなマルチモーダル出力に変換する動的でインタラクティブなレポートジェネレーター。

      ステップバイステップの実装

      この詳細なガイドに従って、依存関係のセットアップから統合されたテキストと画像を使用して構造化された出力の生成まで、マルチモーダルレポートジェネレーターを構築します。各ステップにより、効率的で動的なパイプラインのために、Llamaindex、Llamaparse、およびArize Phoenixのシームレスな統合が保証されます。

      ステップ1:依存関係をインストールしてインポート

      python 3.9.9:

      で実行されている次のライブラリが必要です。

      llama-index
      • llama-parse
      • (テキスト画像の解析の場合)
      • llama-index-callbacks-arize-phoenix
      • (観測可能性/ロギング用)
      • nest_asyncio
      • (ノートブックでの非同期イベントループを処理するため)
      • ステップ2:観測可能性を設定します
      !pip install -U llama-index-callbacks-arize-phoenix
      
      import nest_asyncio
      
      nest_asyncio.apply()
      ログイン後にコピー
      ログイン後にコピー
      llamatrace - llamacloud API(Arize Phoenix)と統合します。まず、llamatrace.comからAPIキーを取得してから、環境変数を設定してフェニックスにトレースを送信します。

      Phoenix APIキーは、こちらからLamatraceにサインアップしてから取得し、左下のパネルに移動し、APIキーを見つける「キー」をクリックします。

      たとえば、

      ステップ3:データを読み込む - スライドデッキを取得 デモンストレーションでは、コノコフィリップスの2023年の投資家会議スライドデッキを使用しています。 PDF:

      をダウンロードします
      PHOENIX_API_KEY = "<PHOENIX_API_KEY>"
      os.environ["OTEL_EXPORTER_OTLP_HEADERS"] = f"api_key={PHOENIX_API_KEY}"
      llama_index.core.set_global_handler(
          "arize_phoenix", endpoint="https://llamatrace.com/v1/traces"
      )
      ログイン後にコピー
      ログイン後にコピー

      PDFスライドデッキがデータフォルダーにあるかどうかを確認します。データフォルダーに配置して、必要に応じて名前を付けてください。

      ステップ4:モデルのセットアップ

      埋め込みモデルとLLMが必要です。この例では、
      import os
      import requests
      
      # Create the directories (ignore errors if they already exist)
      os.makedirs("data", exist_ok=True)
      os.makedirs("data_images", exist_ok=True)
      
      # URL of the PDF
      url = "https://static.conocophillips.com/files/2023-conocophillips-aim-presentation.pdf"
      
      # Download and save to data/conocophillips.pdf
      response = requests.get(url)
      with open("data/conocophillips.pdf", "wb") as f:
          f.write(response.content)
      
      print("PDF downloaded to data/conocophillips.pdf")
      ログイン後にコピー
      ログイン後にコピー

      次に、これらをllamaindex:

      のデフォルトとして登録します

      ステップ5:llamaparse

      でドキュメントを解析します
      from llama_index.llms.openai import OpenAI
      from llama_index.embeddings.openai import OpenAIEmbedding
      embed_model = OpenAIEmbedding(model="text-embedding-3-large")
      llm = OpenAI(model="gpt-4o")
      ログイン後にコピー
      ログイン後にコピー
      llamaparseはテキストと画像を抽出できます(マルチモーダルの大規模モデルを介して)。各PDFページについて、それは返されます:

      from llama_index.core import Settings
      Settings.embed_model = embed_model
      Settings.llm = llm
      ログイン後にコピー

      Markdown Text

      (テーブル、見出し、弾丸ポイントなど)

        レンダリングされた画像
      • (ローカルで保存)
      print(f"Parsing slide deck...")
      md_json_objs = parser.get_json_result("data/conocophillips.pdf")
      md_json_list = md_json_objs[0]["pages"]
      ログイン後にコピー

      Llamaindexを使用したマルチモーダル財務報告の生成

      print(md_json_list[10]["md"])
      ログイン後にコピー

      !pip install -U llama-index-callbacks-arize-phoenix
      
      import nest_asyncio
      
      nest_asyncio.apply()
      ログイン後にコピー
      ログイン後にコピー

      Llamaindexを使用したマルチモーダル財務報告の生成

      ステップ6:アソシエイトテキストと画像

      各ページのtextnode オブジェクト(llamaindexのデータ構造)のリストを作成します。各ノードには、ページ番号と対応する画像ファイルパスに関するメタデータがあります。

      PHOENIX_API_KEY = "<PHOENIX_API_KEY>"
      os.environ["OTEL_EXPORTER_OTLP_HEADERS"] = f"api_key={PHOENIX_API_KEY}"
      llama_index.core.set_global_handler(
          "arize_phoenix", endpoint="https://llamatrace.com/v1/traces"
      )
      ログイン後にコピー
      ログイン後にコピー

      Llamaindexを使用したマルチモーダル財務報告の生成

      ステップ7:概要インデックスを作成します

      これらのテキストノードを手にすると、summaryindexを作成できます。

      summaryIndexは、ドキュメント全体で高レベルの要約を簡単に取得または生成できるようにします。

      ステップ8:構造化された出力スキーマを定義します
      import os
      import requests
      
      # Create the directories (ignore errors if they already exist)
      os.makedirs("data", exist_ok=True)
      os.makedirs("data_images", exist_ok=True)
      
      # URL of the PDF
      url = "https://static.conocophillips.com/files/2023-conocophillips-aim-presentation.pdf"
      
      # Download and save to data/conocophillips.pdf
      response = requests.get(url)
      with open("data/conocophillips.pdf", "wb") as f:
          f.write(response.content)
      
      print("PDF downloaded to data/conocophillips.pdf")
      ログイン後にコピー
      ログイン後にコピー

      パイプラインは、インターリーブテキストブロックと画像ブロックを備えた最終出力を生成することを目的としています。そのために、2つのブロックタイプのカスタムPydanticモデル(Pydantic V2または互換性を確保する)を作成します。

      ReportOutput

      は、少なくとも1つの画像ブロックを必要とし、最終的な答えがマルチモーダルであることを確認してください。 ステップ9:構造化されたクエリエンジンを作成 llamaindexを使用すると、「構造化されたLLM」(つまり、出力が特定のスキーマに自動的に解析されるLLM)を使用できます。方法は次のとおりです

      from llama_index.llms.openai import OpenAI
      from llama_index.embeddings.openai import OpenAIEmbedding
      embed_model = OpenAIEmbedding(model="text-embedding-3-large")
      llm = OpenAI(model="gpt-4o")
      ログイン後にコピー
      ログイン後にコピー

      結論

      Llamaindex、Llamaparse、およびOpenaIを組み合わせることにより、PDF(テキスト、テーブル、画像を使用)を処理するマルチモーダルレポートジェネレーターを構造化された出力に組み込むことができます。このアプローチは、より豊かで視覚的に有益な結果をもたらします。これは、複雑な企業または技術文書から批判的な洞察を収集するために利害関係者が必要とするものを標準的に提供します。

      このパイプラインを独自のドキュメントに自由に調整したり、大規模なアーカイブの検索ステップを追加したり、基礎となる画像を分析するためのドメイン固有のモデルを統合してください。ここに設立された基盤を使用すると、単純なテキストベースのクエリをはるかに超えるダイナミックでインタラクティブで視覚的に豊富なレポートを作成できます。 この素晴らしいパイプラインを開発してくれたLlamaindexのJerry Liuに感謝します。

      キーテイクアウト

      • llamaparseとllamaindexを使用して元のコンテンツの整合性を維持しながら、テキストとビジュアルを使用してPDFを構造化された形式に変換します。
      • テキストの概要と画像を織り交ぜて、より良い文脈的理解を得るという視覚的に濃縮されたレポートを生成します。
      • 財務報告書の生成は、より洞察力のある動的な出力のためにテキストと視覚要素の両方を統合することで強化できます。
      • llamaindexとllamaparseのレバレッジは、財務報告の生成のプロセスを合理化し、正確で構造化された結果を確保します。 大規模なアーカイブのレポート生成を最適化するために、処理する前に関連するドキュメントを取得します。
      • 視覚的解析を改善し、チャート固有の分析を組み込み、より深い洞察のためにテキストと画像処理のモデルを組み合わせます。
      • よくある質問
      • q1。 「マルチモーダルレポートジェネレーター」とは?マルチモーダルレポートジェネレーターは、1つのまとまりのある出力で複数のタイプのコンテンツ(主にテキストと画像)を含むレポートを生成するシステムです。このパイプラインでは、PDFをテキスト要素と視覚要素の両方に解析し、それらを単一の最終レポートに結合します。なぜLlama-Index-Callbacks-Arize-Phoenixをインストールし、観察可能性をセットアップする必要があるのですか? Arize Phoenix(Lamatraceを介して)などの観測可能性ツールでは、モデルの動作を監視およびデバッグし、クエリと応答を追跡し、リアルタイムで問題を特定できます。大規模または複雑なドキュメントと複数のLLMベースの手順を扱う場合に特に便利です。なぜ標準のPDFテキスト抽出器の代わりにllamaparseを使用するのですか? ほとんどのPDFテキスト抽出器は、生のテキストのみを処理し、しばしばフォーマット、画像、テーブルを失います。 Llamaparseは、テキストと画像の両方(レンダリングされたページ画像)を抽出することができます。これは、テーブル、チャート、またはその他のビジュアルを参照する必要があるマルチモーダルパイプラインを構築するために重要です。 summaryindexを使用することの利点は何ですか? summaryIndexは、コンテンツ(PDFのページなど)を整理するLlamainDexの抽象化であるため、包括的な要約をすばやく生成できます。それは、手動でそれらをチャンクしたり、データの各部分の検索クエリを実行することなく、長いドキュメントから高レベルの洞察を収集するのに役立ちます。最終レポートに少なくとも1つの画像ブロックが含まれるようにするにはどうすればよいですか? ReportOutput Pydanticモデルでは、ブロックリストに少なくとも1つのImageBlockが必要であることを強制します。これは、システムプロンプトとスキーマに記載されています。 LLMはこれらのルールに従う必要があります。そうしないと、有効な構造化された出力が生成されません。
      • この記事に示されているメディアは、Analytics Vidhyaが所有しておらず、著者の裁量で使用されています。

以上がLlamaindexを使用したマルチモーダル財務報告の生成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート