Einführung

LlamaParse ist eine von Llama Index entwickelte Dokumentanalysebibliothek zum effizienten und effektiven Parsen von Dokumenten wie PDFs, PPTs usw.

Das Erstellen von RAG-Anwendungen auf der Grundlage von PDF-Dokumenten stellt für viele von uns eine große Herausforderung dar, insbesondere im Hinblick auf die komplexe Aufgabe der Analyse eingebetteter Objekte wie Tabellen, Abbildungen usw. Aufgrund der Beschaffenheit dieser Objekte haben herkömmliche Analysetechniken häufig Schwierigkeiten, die in ihnen kodierten Informationen richtig zu interpretieren und zu extrahieren.

Als Reaktion auf dieses weit verbreitete Downside hat die Softwareentwicklungs-Neighborhood verschiedene Bibliotheken und Frameworks eingeführt. Beispiele für diese Lösungen sind LLMSherpa und unstructured.io. Diese Instruments bieten robuste und versatile Lösungen für einige der hartnäckigsten Probleme beim Parsen komplexer PDFs.

LamaParse

Die neueste Ergänzung dieser Liste wertvoller Instruments ist LlamaParse. LlamaParse wurde von Llama Index entwickelt, einem der derzeit angesehensten LLM-Frameworks. Aus diesem Grund kann LlamaParse direkt in Llama Index integriert werden. Diese nahtlose Integration stellt einen erheblichen Vorteil dar, da sie den Implementierungsprozess vereinfacht und ein höheres Maß an Kompatibilität zwischen den beiden Instruments gewährleistet. Zusammenfassend lässt sich sagen, dass LlamaParse ein vielversprechendes neues Instrument ist, das das Parsen komplexer PDFs weniger entmutigend und effizienter macht.

Lernziele

  1. Erkennen Sie Herausforderungen beim Dokument-Parsing: Verstehen Sie die Schwierigkeiten beim Parsen komplexer PDFs mit eingebetteten Objekten.
  2. Einführung in LlamaParse: Erfahren Sie, was LlamaParse ist und wie die nahtlose Integration in Llama Index funktioniert.
  3. Setup und Initialisierung: Erstellen Sie ein LlamaCloud-Konto, erhalten Sie einen API-Schlüssel und installieren Sie die erforderlichen Bibliotheken.
  4. Implementierung von LlamaParse: Befolgen Sie die Schritte zum Initialisieren des LLM und zum Laden und Analysieren von Dokumenten.
  5. Erstellen eines Vektorindexes und Abfragen von Daten: Erfahren Sie, wie Sie einen Vektorspeicherindex erstellen, eine Abfrage-Engine einrichten und spezifische Informationen aus analysierten Dokumenten extrahieren.

Dieser Artikel erschien im Rahmen der Knowledge Science-Blogathon.

Schritte zum Erstellen einer RAG-Anwendung auf PDF-Foundation mit LlamaParse

Schritt 1: API-Schlüssel abrufen

LlamaParse ist Teil der LlamaCloud-Plattform, daher benötigen Sie ein LlamaCloud-Konto, um einen API-Schlüssel zu erhalten.

Zuerst müssen Sie ein Konto erstellen auf LamaCloud und melden Sie sich an, um einen API-Schlüssel zu erstellen.

LamaParse

Schritt 2: Installieren Sie die erforderlichen Bibliotheken

Öffnen Sie nun Ihr Jupyter Pocket book/Colab und installieren Sie die benötigten Bibliotheken. Hier müssen wir nur zwei Bibliotheken installieren: llama-index und Lama-Analyse. Wir werden das Modell von OpenAI zum Abfragen und Einbetten verwenden.

!pip set up llama-index
!pip set up llama-parse

Schritt 3: Umgebungsvariablen festlegen

import os

os.environ('OPENAI_API_KEY') = 'sk-proj-****'

os.environ("LLAMA_CLOUD_API_KEY") = 'llx-****'

Schritt 4: Initialisieren Sie das LLM und das Einbettungsmodell

Hier verwende ich gpt-3.5-turbo-0125 als LLM und OpenAIs text-embedding-3-small als Einbettungsmodell. Wir werden das Einstellungsmodul verwenden, um das Normal-LLM und das Einbettungsmodell zu ersetzen.

from llama_index.llms.openai import OpenAI
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.core import Settings

embed_model = OpenAIEmbedding(mannequin="text-embedding-3-small")
llm = OpenAI(mannequin="gpt-3.5-turbo-0125")

Settings.llm = llm
Settings.embed_model = embed_model

Schritt 5: Analysieren Sie das Dokument

Jetzt laden wir unser Dokument und konvertieren es in den Markdown-Typ. Anschließend wird es mit MarkdownElementNodeParser analysiert.

Die von mir verwendete Tabelle stammt aus ncrb.gov.in und ist hier zu finden: https://ncrb.gov.in/accidental-deaths-suicides-in-india-adsi. Es sind Daten auf verschiedenen Ebenen eingebettet.

Unten ist der Schnappschuss der Tabelle, die ich zu analysieren versuche.

LamaParse
from llama_parse import LlamaParse
from llama_index.core.node_parser import MarkdownElementNodeParser


paperwork = LlamaParse(result_type="markdown").load_data("./Table_2021.pdf")

node_parser = MarkdownElementNodeParser(
    llm=llm, num_workers=8
)

nodes = node_parser.get_nodes_from_documents(paperwork)

base_nodes, objects = node_parser.get_nodes_and_objects(nodes)

Schritt 6: Erstellen des Vektorindex und der Abfrage-Engine

Jetzt erstellen wir einen Vektorspeicherindex unter Verwendung der integrierten Implementierung des Lama-Index, um darauf eine Abfrage-Engine zu erstellen. Wir können hierfür auch Vektorspeicher wie Chromadb oder Pinecone verwenden.

from llama_index.core import VectorStoreIndex

recursive_index = VectorStoreIndex(nodes=base_nodes + objects)

recursive_query_engine = recursive_index.as_query_engine(
    similarity_top_k=5
)

Schritt 7: Abfragen des Index

question = 'Extract the desk as a dict and exclude any details about 2020. Additionally embrace % var'
response = recursive_query_engine.question(question)
print(response)

Die obige Benutzerabfrage fragt den zugrunde liegenden Vektorindex ab und gibt die eingebetteten Inhalte im PDF-Dokument im JSON-Format zurück, wie in der Abbildung unten gezeigt.

LamaParse

Wie Sie im Screenshot sehen können, wurde die Tabelle in einem sauberen JSON-Format extrahiert.

Schritt 8: Alles zusammenfügen

from llama_index.llms.openai import OpenAI
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.core import Settings
from llama_parse import LlamaParse
from llama_index.core.node_parser import MarkdownElementNodeParser
from llama_index.core import VectorStoreIndex

embed_model = OpenAIEmbedding(mannequin="text-embedding-3-small")
llm = OpenAI(mannequin="gpt-3.5-turbo-0125")

Settings.llm = llm
Settings.embed_model = embed_model

paperwork = LlamaParse(result_type="markdown").load_data("./Table_2021.pdf")

node_parser = MarkdownElementNodeParser(
    llm=llm, num_workers=8
)

nodes = node_parser.get_nodes_from_documents(paperwork)

base_nodes, objects = node_parser.get_nodes_and_objects(nodes)

recursive_index = VectorStoreIndex(nodes=base_nodes + objects)

recursive_query_engine = recursive_index.as_query_engine(
    similarity_top_k=5
)

question = 'Extract the desk as a dict and exclude any details about 2020. Additionally embrace % var'
response = recursive_query_engine.question(question)
print(response)

Abschluss

LlamaParse ist ein effizientes Instrument zum Extrahieren komplexer Objekte aus verschiedenen Dokumenttypen, wie z. B. PDF-Dateien, mit wenigen Codezeilen. Es ist jedoch wichtig zu beachten, dass ein gewisses Maß an Fachwissen im Umgang mit LLM-Frameworks, wie z. B. dem Llama-Index, erforderlich ist, um dieses Instrument vollständig nutzen zu können.

LlamaParse erweist sich bei der Bewältigung von Aufgaben unterschiedlicher Komplexität als wertvoll. Wie jedes andere Instrument im technischen Bereich ist es jedoch nicht völlig fehlerfrei. Daher wird dringend empfohlen, eine gründliche Anwendungsbewertung unabhängig durchzuführen oder verfügbare Bewertungstools zu nutzen. Bewertungsbibliotheken wie Ragas, Truera usw. bieten Metriken zur Bewertung der Genauigkeit und Zuverlässigkeit Ihrer Ergebnisse. Dieser Schritt stellt sicher, dass potenzielle Probleme identifiziert und behoben werden, bevor die Anwendung in eine Produktionsumgebung übertragen wird.

Die zentralen Thesen

  • LlamaParse ist ein vom Llama Index-Staff entwickeltes Instrument. Es extrahiert mit nur wenigen Codezeilen komplexe eingebettete Objekte aus Dokumenten wie PDFs.
  • LlamaParse bietet sowohl kostenlose als auch kostenpflichtige Pläne an. Mit dem kostenlosen Plan können Sie bis zu 1000 Seiten professional Tag analysieren.
  • LlamaParse unterstützt derzeit mehr als 10 Dateitypen (.pdf, .pptx, .docx, .html, .xml und mehr).
  • LlamaParse ist Teil der LlamaCloud-Plattform, Sie benötigen daher ein LlamaCloud-Konto, um einen API-Schlüssel zu erhalten.
  • Mit LlamaParse können Sie Anweisungen zur Formatierung der Ausgabe in natürlicher Sprache bereitstellen. Es unterstützt sogar die Bildextraktion.

Die in diesem Artikel gezeigten Medien sind nicht Eigentum von Analytics Vidhya und werden nach Ermessen des Autors verwendet.

Häufig gestellte Fragen (FAQ)

F1. Was ist der Lama-Index?

A. LlamaIndex ist neben LangChain das führende LLM-Framework zum Erstellen von LLM-Anwendungen. Es hilft beim Verbinden benutzerdefinierter Datenquellen mit großen Sprachmodellen (LLMs) und ist ein weit verbreitetes Instrument zum Erstellen von RAG-Anwendungen.

Frage 2. Was ist LlamaParse?

A. LlamaParse ist ein Angebot von Llama Index, das komplexe Tabellen und Abbildungen aus Dokumenten wie PDF, PPT usw. extrahieren kann. Aus diesem Grund kann LlamaParse direkt in den Llama Index integriert werden, sodass wir es zusammen mit der großen Vielfalt an Agenten und Instruments verwenden können, die der Llama Index bietet.

F3. Wie unterscheidet sich LlamaParse von Llama Index?

A. Llama Index ist ein LLM-Framework zum Erstellen benutzerdefinierter LLM-Anwendungen und bietet verschiedene Instruments und Agenten. LlamaParse ist speziell auf das Extrahieren komplexer eingebetteter Objekte aus Dokumenten wie PDF, PPT usw. ausgerichtet.

F4. Welche Bedeutung hat LlamaParse?

A. Die Bedeutung von LlamaParse liegt in seiner Fähigkeit, komplexe unstrukturierte Daten in Tabellen, Bilder usw. in ein strukturiertes Format umzuwandeln, was in der modernen Welt, in der die meisten wertvollen Informationen in unstrukturierter Type verfügbar sind, von entscheidender Bedeutung ist. Diese Umwandlung ist für Analysezwecke unerlässlich. Beispielsweise wäre es ohne ein solches Instrument eine Herausforderung, die Finanzdaten eines Unternehmens anhand seiner SEC-Anmeldungen zu untersuchen, die etwa 100 bis 200 Seiten umfassen können. LlamaParse bietet eine effiziente Möglichkeit, diese enorme Menge unstrukturierter Daten zu verarbeiten und zu strukturieren, wodurch sie zugänglicher und für Analysen nützlicher werden.

Frage 5. Gibt es Alternativen zu LlamaParse?

A. Ja, LLMSherpa und unstructured.io sind die verfügbaren Alternativen zu LlamaParse.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert