多くの現実世界のアプリケーションでは、データは純粋にテキストではありません。物語を強化するのに役立つ画像、表、チャートが含まれる場合があります。マルチモーダルレポートジェネレーターを使用すると、テキストと画像の両方を最終出力に組み込むことができ、レポートをより動的で視覚的にリッチにします。 この記事では、次のようなパイプラインを構築する方法の概要を説明します。
llamaindexマルチモーダルパイプラインを使用して、効果的な財務レポート生成のためにテキストとビジュアルを統合する方法を理解してください。
プロセスの概要ステップバイステップの実装ステップ1:依存関係のインストールとインポートステップ2:観察可能性を設定します
セットアップが完了したら、パイプラインはPDFドキュメントを処理し、そのコンテンツを構造化されたテキストに解析し、テーブルやチャートなどの視覚要素をレンダリングします。これらの解析された要素が関連付けられ、統一されたデータセットが作成されます。 summaryindexは、高レベルの洞察を有効にするために構築されており、関連するビジュアルとテキスト分析をブレンドするレポートを生成するために構造化されたクエリエンジンが開発されています。その結果、静的ドキュメントをユーザークエリに合わせて調整されたリッチなマルチモーダル出力に変換する動的でインタラクティブなレポートジェネレーター。
ステップバイステップの実装python 3.9.9:
!pip install -U llama-index-callbacks-arize-phoenix import nest_asyncio nest_asyncio.apply()
ステップ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" )
埋め込みモデルと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")
from llama_index.core import Settings Settings.embed_model = embed_model Settings.llm = llm
print(f"Parsing slide deck...") md_json_objs = parser.get_json_result("data/conocophillips.pdf") md_json_list = md_json_objs[0]["pages"]
print(md_json_list[10]["md"])
!pip install -U llama-index-callbacks-arize-phoenix import nest_asyncio nest_asyncio.apply()
各ページの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" )
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または互換性を確保する)を作成します。
は、少なくとも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を使用したマルチモーダル財務報告の生成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。