Heim >Technologie-Peripheriegeräte >KI >Erzeugung multimodaler Finanzberichte unter Verwendung von Llamaindex

Erzeugung multimodaler Finanzberichte unter Verwendung von Llamaindex

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌Original
2025-03-09 12:45:12153Durchsuche

In vielen realen Anwendungen sind Daten nicht rein textuell-es kann Bilder, Tabellen und Diagramme enthalten, die dazu beitragen, die Erzählung zu verstärken. Mit einem multimodalen Berichtsgenerator können Sie sowohl Text als auch Bilder in eine endgültige Ausgabe einbeziehen, wodurch Ihre Berichte dynamischer und visuell reicher werden.

In diesem Artikel wird beschrieben, wie eine solche Pipeline mit:

erstellt wird
  • llamaindex zum Orchestrieren von Dokumenten Parsing- und Abfrage -Engines,
  • OpenAi Sprachmodelle für die Textanalyse,
  • llamaparse , um sowohl Text als auch Bilder aus PDF -Dokumenten zu extrahieren,
  • Ein Beobachtbarkeitsaufbau mit Arize Phoenix (über Lamatrace) zum Protokollieren und Debuggen.

Das Endergebnis ist eine Pipeline, die ein ganzes PDF -Diagrammdeck - sowohl Text als auch Visuals - verarbeiten und einen strukturierten Bericht erstellen kann, der sowohl Text als auch Bilder enthält.

Lernziele

  • Verstehen Sie, wie Sie Text und Visuals für die Erzeugung der effektiven Finanzberichte mit multimodalen Pipelines integrieren.
  • Lernen Sie, Lamaindex und Llamaparse für die Erzeugung der Finanzbericht mit strukturierten Ergebnissen zu verwenden.
  • Erforschen Sie Llamaparse, um sowohl Text als auch Bilder aus PDF -Dokumenten effektiv zu extrahieren.
  • Beobachtbarkeit unter Verwendung von Arize Phoenix (über Lamatrace) zum Protokollieren und Debuggen komplexer Pipelines.
  • Erstellen Sie eine strukturierte Abfrage -Engine, um Berichte zu generieren, die Textzusammenfassungen mit visuellen Elementen verschieben.

Dieser Artikel wurde als Teil des Data Science -Blogathon veröffentlicht.

Inhaltsverzeichnis

  • Überblick über den Prozess
  • Schritt-für-Schritt-Implementierung
    • Schritt 1: Installieren und Importieren von Abhängigkeiten
    • Schritt 2: Setzen Sie die Beobachtbarkeit
    • Schritt 3: STECE Die Daten. Parse the Document with LlamaParse
    • Step 6: Associate Text and Images
    • Step 7: Build a Summary Index
    • Step 8: Define a Structured Output Schema
    • Step 9: Create a Structured Query Engine
    • Conclusion
    Frequently Asked Questions
  • Überblick über den Prozess
  • Erstellen eines multimodalen Berichtsgenerators beinhaltet das Erstellen einer Pipeline, die nahtlos Text- und visuelle Elemente aus komplexen Dokumenten wie PDFs integriert. Der Prozess beginnt mit der Installation der erforderlichen Bibliotheken, wie Lamaindex für Dokumente Parsing und Abfrageorchestrierung sowie Lamaparse, um sowohl Text als auch Bilder zu extrahieren. Die Beobachtbarkeit wird unter Verwendung von Arize Phoenix (über Lamatrace) festgelegt, um die Pipeline zu überwachen und zu debuggen.

Sobald das Setup abgeschlossen ist, verarbeitet die Pipeline ein PDF -Dokument, das seinen Inhalt in strukturierten Text analysiert und visuelle Elemente wie Tabellen und Diagramme rendert. Diese analysierten Elemente werden dann zugeordnet und erstellen einen einheitlichen Datensatz. Ein Zusammenfassungsindex wurde entwickelt, um hochrangige Erkenntnisse zu ermöglichen, und eine strukturierte Abfrage-Engine wird entwickelt, um Berichte zu erstellen, die Textanalysen mit relevanten Visuals kombinieren. Das Ergebnis ist ein dynamischer und interaktiver Berichtsgenerator, der statische Dokumente in reichhaltige, multimodale Ausgänge umwandelt, die auf Benutzeranfragen zugeschnitten sind.

Schritt-für-Schritt-Implementierung

Befolgen Sie diese detaillierte Anleitung, um einen multimodalen Berichtsgenerator zu erstellen, vom Einrichten von Abhängigkeiten bis hin zum Generieren strukturierter Ausgänge mit integrierten Text und Bildern. Jeder Schritt sorgt für eine nahtlose Integration von Llamaindex, Llamaparse und Arize Phoenix für eine effiziente und dynamische Pipeline.

Schritt 1: Installieren und Importieren von Abhängigkeiten

Sie benötigen die folgenden Bibliotheken auf Python 3.9.9:

  • llama-Index
  • llama-parse (für Textbild-Parsen)
  • llama-Index-callbacks-arize-phoenix (zur Beobachtbarkeit/Protokollierung)
  • nest_asyncio (Um asynchrische Ereignisschleifen in Notizbüchern zu verarbeiten)
!pip install -U llama-index-callbacks-arize-phoenix

import nest_asyncio

nest_asyncio.apply()

Schritt 2: Beobachtbarkeit aufstellen

Wir integrieren in Lamatrace - Llamacloud API (Arize Phoenix). Erhalten Sie zuerst einen API -Schlüssel von llamatrace.com und richten Sie dann Umgebungsvariablen ein, um Spuren an Phoenix zu senden.

Phoenix -API -Schlüssel kann erhalten werden, indem Sie sich hier für Lamatrace anmelden, dann zum unteren linken Bereich navigieren und auf "Tasten" klicken, wo Sie Ihre API -Taste finden sollten.

Zum Beispiel:

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"
)

Schritt 3: Laden Sie die Daten - erhalten Sie Ihr Foliendeck

Zur Demonstration verwenden wir Conocophillips '2023 Investor Meeting Slide Deck. Wir laden das PDF herunter:

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")

Überprüfen Sie, ob sich das PDF -Diasdeck im Datenordner befindet. Wenn Sie es nicht im Datenordner platzieren, und so wie Sie möchten.

Schritt 4: Modelle

einrichten

Sie benötigen ein Einbettungsmodell und ein LLM. In diesem Beispiel:

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")

Als nächstes registrieren Sie diese als Standard für llamaindex:

from llama_index.core import Settings
Settings.embed_model = embed_model
Settings.llm = llm

Schritt 5: Analysieren Sie das Dokument mit Llamaparse

llamaparse kann Text und Bilder extrahieren (über ein multimodales großes Modell). Für jede PDF -Seite kehrt sie zurück:

  • Markdown -Text (mit Tabellen, Überschriften, Kugelpunkten usw.)
  • ein gerendertes Bild (lokal gespeichert)
print(f"Parsing slide deck...")
md_json_objs = parser.get_json_result("data/conocophillips.pdf")
md_json_list = md_json_objs[0]["pages"]

Erzeugung multimodaler Finanzberichte unter Verwendung von Llamaindex

print(md_json_list[10]["md"])

Erzeugung multimodaler Finanzberichte unter Verwendung von Llamaindex

print(md_json_list[1].keys())

Erzeugung multimodaler Finanzberichte unter Verwendung von Llamaindex

!pip install -U llama-index-callbacks-arize-phoenix

import nest_asyncio

nest_asyncio.apply()

Erzeugung multimodaler Finanzberichte unter Verwendung von Llamaindex

Schritt 6: Text und Bilder assoziieren

Wir erstellen für jede Seite eine Liste von Textnode Objekte (Lamaindex -Datenstruktur). Jeder Knoten hat Metadaten über die Seitenzahl und den entsprechenden Bilddateipfad:

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"
)

Erzeugung multimodaler Finanzberichte unter Verwendung von Llamaindex

Schritt 7: Erstellen Sie einen zusammenfassenden Index

Mit diesen Textknoten in der Hand können Sie einen zusammenfassendenIndex erstellen:

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")

Der SummaryIndex stellt sicher, dass Sie über das gesamte Dokument leicht abrufen oder hochrangige Zusammenfassungen erzeugen können.

Schritt 8: Definieren Sie ein strukturiertes Ausgangsschema

Unsere Pipeline zielt darauf ab, eine endgültige Ausgabe mit verschachtelten Textblöcken und Bildblöcken zu erzeugen. For that, we create a custom Pydantic model (using Pydantic v2 or ensuring compatibility) with two block types—TextBlock and ImageBlock—and a parent model ReportOutput:

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")

Der Schlüsselpunkt: reportOutput erfordert mindestens einen Bildblock, um sicherzustellen, dass die endgültige Antwort multimodal ist.

Schritt 9: Erstellen Sie eine strukturierte Abfrage -Engine

Mit

llamaindex können Sie ein „strukturiertes LLM“ verwenden (d. H. Ein LLM, dessen Ausgabe automatisch in ein bestimmtes Schema analysiert wird). So ist:

from llama_index.core import Settings
Settings.embed_model = embed_model
Settings.llm = llm

Erzeugung multimodaler Finanzberichte unter Verwendung von Llamaindex

print(f"Parsing slide deck...")
md_json_objs = parser.get_json_result("data/conocophillips.pdf")
md_json_list = md_json_objs[0]["pages"]

Erzeugung multimodaler Finanzberichte unter Verwendung von Llamaindex

print(md_json_list[10]["md"])

Erzeugung multimodaler Finanzberichte unter Verwendung von Llamaindex

Erzeugung multimodaler Finanzberichte unter Verwendung von Llamaindex

Schlussfolgerung

Durch Kombination von Llamaindex, Llamaparse und OpenAI können Sie einen multimodalen Berichtsgenerator erstellen, der einen gesamten PDF (mit Text, Tabellen und Bildern) in eine strukturierte Ausgabe verarbeitet. Dieser Ansatz liefert umfangreichere und visuell informative Ergebnisse - genau das, was die Stakeholder für kritische Erkenntnisse aus komplexen Unternehmens- oder technischen Dokumenten benötigen.

Sie können diese Pipeline gerne an Ihre eigenen Dokumente anpassen, einen Abrufschritt für große Archive hinzufügen oder domänenspezifische Modelle zur Analyse der zugrunde liegenden Bilder integrieren. Mit den hier festgelegten Grundlagen können Sie dynamische, interaktive und visuell reiche Berichte erstellen, die weit über einfache textbasierte Abfragen hinausgehen.

Ein großes Dankeschön an Jerry Liu von Llamaindex für die Entwicklung dieser erstaunlichen Pipeline.

Key Takeaways

  • PDFs mit Text und Visuals in strukturierte Formate verwandeln und gleichzeitig die Integrität des Originalinhalts mithilfe von Llamaparse und LlamaNdex erhalten.
  • generieren visuell angereicherte Berichte, die Textzusammenfassungen und Bilder für ein besseres kontextbezogenes Verständnis durcheinander bringen.
  • Erzeugung der Finanzberichte kann durch Integration von Text und visuellen Elementen für aufschlussreichere und dynamische Ausgaben verbessert werden.
  • Nutzung von Llamaindex und Llamaparse rationalisiert den Prozess der Erzeugung von Finanzberichten und sorgt für genaue und strukturierte Ergebnisse.
  • Relevante Dokumente vor der Verarbeitung abrufen, um die Berichterstattung für große Archive zu optimieren.
  • Verbesserung der visuellen Analyse, integrieren Sie die chart-spezifische Analysen und kombinieren Sie Modelle für die Text- und Bildverarbeitung für tiefere Erkenntnisse.

häufig gestellte Fragen

Q1. Was ist ein „multimodaler Berichtgenerator“?

a. Ein multimodaler Berichtsgenerator ist ein System, das Berichte erstellt, die mehrere Arten von Inhalten - vor allem Text und Bilder - in einer zusammenhängenden Ausgabe enthalten. In dieser Pipeline analysieren Sie ein PDF sowohl in Text- als auch in visuelle Elemente und kombinieren sie dann zu einem einzigen Abschlussbericht.

Q2. Warum muss ich Lama-Index-Callbacks-Arize-Phoenix installieren und die Beobachtbarkeit aufstellen?

a. Beobachtbarkeitsinstrumente wie Arize Phoenix (über Lamatrace) können Sie das Modellverhalten des Modells überwachen und debuggen, Abfragen und Antworten verfolgen und Probleme in Echtzeit identifizieren. Es ist besonders nützlich, wenn es um große oder komplexe Dokumente und mehrere LLM-basierte Schritte geht.

Q3. Warum Lamaparse anstelle eines Standard -PDF -Text -Extraktors verwenden?

a. Die meisten PDF -Text -Extraktoren verarbeiten nur Rohtext und verlieren häufig Formatierung, Bilder und Tabellen. Llamaparse kann sowohl Text als auch Bilder (gerenderte Seitenbilder) extrahieren, was für die Erstellung multimodaler Pipelines entscheidend ist, wo Sie sich auf Tabellen, Diagramme oder andere Visuals beziehen müssen.

Q4. Was ist der Vorteil der Verwendung eines summaryIndex?

a. SummaryIndex ist eine Lamaindex -Abstraktion, die Ihren Inhalt (z. B. Seiten eines PDF) organisiert, damit sie schnell umfassende Zusammenfassungen erzeugen kann. Es hilft, hochrangige Erkenntnisse aus langen Dokumenten zu sammeln, ohne sie manuell einteilen oder eine Abrufabfrage für jedes Datenstück ausführen zu müssen.

Q5. Wie stelle ich sicher, dass der Abschlussbericht mindestens einen Bildblock enthält?

a. Durch das pydantische Modell von Reportputs erfordern die Liste der Blöcke mindestens ein ImageBlock. Dies wird in Ihrer System -Eingabeaufforderung und Ihrem System angegeben. Das LLM muss diese Regeln befolgen, oder es erzeugt keine gültige strukturierte Ausgabe.

Die in diesem Artikel gezeigten Medien sind nicht im Besitz von Analytics Vidhya und wird nach Ermessen des Autors verwendet.

Das obige ist der detaillierte Inhalt vonErzeugung multimodaler Finanzberichte unter Verwendung von Llamaindex. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn