14. LlamaParser

LlamaParser

LlamaParse adalah layanan penguraian dokumen yang dikembangkan oleh LlamaIndex, yang secara khusus dirancang untuk model bahasa besar (LLM). Fitur utamanya meliputi:

  • Mendukung berbagai format dokumen, termasuk PDF, Word, PowerPoint, Excel, dll.

  • Format keluaran yang dapat disesuaikan melalui instruksi bahasa alami

  • Kemampuan untuk mengekstrak tabel dan gambar yang kompleks

  • Dukungan mode JSON

  • Dukungan bahasa asing

LlamaParse tersedia sebagai API mandiri dan sebagai bagian dari platform LlamaCloud. Layanan ini bertujuan untuk meningkatkan performa aplikasi berbasis LLM, seperti search augmented generation (RAG), dengan mengurai dan menyempurnakan dokumen.

Pengguna dapat memproses 1.000 halaman per hari secara gratis, dengan kapasitas tambahan yang tersedia melalui paket berbayar. LlamaParse saat ini tersedia dalam versi beta publik dan fitur-fiturnya terus dikembangkan.

Atur API Key - Atur API Key ke LLAMA_CLOUD_API_KEY di file .env setelah menerbitkannya.

# Install
# !pip install llama-index-core llama-parse llama-index-readers-file python-dotenv
import os
import nest_asyncio
from dotenv import load_dotenv

load_dotenv()
nest_asyncio.apply()

Terapkan default parser

from llama_parse import LlamaParse
from llama_index.core import SimpleDirectoryReader

# mengatur parser
parser = LlamaParse(
    result_type="markdown",  # “markdown” dan “text” tersedia
    num_workers=8,  # Jumlah worker (default: 4)
    verbose=True,
    language="ko",
)

# Mengurai file menggunakan SimpleDirectoryReader
file_extractor = {".pdf": parser}

# Mengurai file dengan LlamaParse
documents = SimpleDirectoryReader(
    input_files=["data/SPRI_AI_Brief_2023년12월호_F.pdf"],
    file_extractor=file_extractor,
).load_data()
# Periksa jumlah halaman
len(documents)

LlamaIndex -> LangChain Document

# Konversi ke dokumen LangChain
docs = [doc.to_langchain_format() for doc in documents]
# output metadata
docs[0].metadata

Penguraian dengan Model MultiModal


Parameter kunci

  • use_vendor_multimodal_model: Menentukan apakah akan menggunakan model multimodal. Jika diatur ke True (Benar), gunakan model multimodal vendor eksternal.

  • vendor_multimodal_model_name: Menentukan nama model multimodal yang akan digunakan. Di sini kami menggunakan “openai-gpt4o”.

  • vendor_multimodal_api_key: Tentukan kunci API model multimodal. Dapatkan kunci API OpenAI dari variabel lingkungan.

  • result_type: Menentukan format hasil penguraian. Ini diatur ke “markdown”, yang berarti bahwa hasilnya dikembalikan dalam format markdown.

  • language: Menentukan bahasa dokumen yang akan diurai. Setel ke “en” untuk memproses dalam bahasa Korea.

  • skip_diagonal_text: Menentukan apakah teks diagonal harus dilewati.

  • page_separator: Anda dapat menentukan pemisah halaman.

documents = LlamaParse(
    use_vendor_multimodal_model=True,
    vendor_multimodal_model_name="openai-gpt4o",
    vendor_multimodal_api_key=os.environ["OPENAI_API_KEY"],
    result_type="markdown",
    language="ko",
    # skip_diagonal_text=True,
    # page_separator="\n=================\n"
)
# hasil yang di parser
parsed_docs = documents.load_data(file_path="data/SPRI_AI_Brief_2023년12월호_F.pdf")
# Konversi ke dokumen langchain
docs = [doc.to_langchain_format() for doc in parsed_docs]

Anda juga dapat menentukan instruksi khusus seperti yang ditunjukkan di bawah ini.

# Menentukan instruksi penguraian.
parsing_instruction = (
    "You are parsing a brief of AI Report. Please extract tables in markdown format."
)

# Menyiapkan LlamaParse
parser = LlamaParse(
    use_vendor_multimodal_model=True,
    vendor_multimodal_model_name="openai-gpt4o",
    vendor_multimodal_api_key=os.environ["OPENAI_API_KEY"],
    result_type="markdown",
    language="ko",
    parsing_instruction=parsing_instruction,
)

# hasil yang diuraikan
parsed_docs = parser.load_data(file_path="data/SPRI_AI_Brief_2023년12월호_F.pdf")

# Konversi ke dokumen langchain
docs = [doc.to_langchain_format() for doc in parsed_docs]
# Periksa tabel yang diekstrak dalam format markdown
print(docs[-2].page_content)

Last updated