Rumah > Peranti teknologi > AI > Penjanaan laporan kewangan multimodal menggunakan llamaindex

Penjanaan laporan kewangan multimodal menggunakan llamaindex

尊渡假赌尊渡假赌尊渡假赌
Lepaskan: 2025-03-09 12:45:12
asal
150 orang telah melayarinya

Dalam banyak aplikasi dunia nyata, data tidak semata-mata tekstual-ia mungkin termasuk imej, jadual, dan carta yang membantu memperkuat naratif. Penjana laporan multimodal membolehkan anda memasukkan kedua -dua teks dan imej ke dalam output akhir, menjadikan laporan anda lebih dinamik dan kaya dengan visual.

Artikel ini menggariskan bagaimana untuk membina saluran paip itu menggunakan:

  • llamaindex untuk penguraian dokumen dan enjin pertanyaan,
  • Model bahasa terbuka untuk analisis teks,
  • llamaparse untuk mengekstrak kedua -dua teks dan imej dari dokumen PDF,
  • persediaan pemerhatian menggunakan
  • arize phoenix (melalui lbatrace) untuk pembalakan dan debugging.
Hasil akhir adalah saluran paip yang boleh memproses keseluruhan dek slaid PDF -kedua -dua teks dan visual -dan menghasilkan laporan berstruktur yang mengandungi teks dan imej.

Objektif Pembelajaran

    memahami cara mengintegrasikan teks dan visual untuk penjanaan laporan kewangan yang berkesan menggunakan saluran paip multimodal.
  • belajar menggunakan llamaindex dan llamaparse untuk generasi laporan kewangan yang dipertingkatkan dengan output berstruktur.
  • meneroka llamaparse untuk mengekstrak kedua -dua teks dan imej dari dokumen PDF dengan berkesan.
  • Sediakan pemerhatian menggunakan Arize Phoenix (melalui lbatrace) untuk pembalakan dan debugging saluran paip kompleks.
  • Buat enjin pertanyaan berstruktur untuk menjana laporan bahawa ringkasan teks interleave dengan elemen visual.
  • Artikel ini diterbitkan sebagai sebahagian daripada Blogathon Sains Data

Jadual Kandungan Model Langkah 5: Mengurangkan dokumen dengan llamaparse Langkah 6: Teks dan Imej Bersekutu

Langkah 7: Bina Indeks Ringkasan

Ditanya soalan
  • Gambaran keseluruhan proses
  • Membina penjana laporan multimodal melibatkan membuat saluran paip yang mengintegrasikan elemen teks dan visual dengan lancar dari dokumen kompleks seperti PDF. Proses ini bermula dengan memasang perpustakaan yang diperlukan, seperti llamaindex untuk menghuraikan dokumen dan pertanyaan orkestra, dan llamaparse untuk mengekstrak kedua -dua teks dan imej. Observability ditubuhkan menggunakan Arize Phoenix (melalui Lbatrace) untuk memantau dan debug saluran paip.

      Setelah persediaan selesai, saluran paip memproses dokumen PDF, menguraikan kandungannya ke dalam teks berstruktur dan menjadikan elemen visual seperti jadual dan carta. Unsur -unsur parsed ini kemudiannya dikaitkan, mewujudkan dataset bersatu. SummaryIndex dibina untuk membolehkan pandangan peringkat tinggi, dan enjin pertanyaan berstruktur dibangunkan untuk menghasilkan laporan yang menggabungkan analisis teks dengan visual yang relevan. Hasilnya adalah penjana laporan dinamik dan interaktif yang mengubah dokumen statik menjadi output yang kaya dan multimodal yang disesuaikan untuk pertanyaan pengguna.

      Pelaksanaan langkah demi langkah

      Ikuti panduan terperinci ini untuk membina penjana laporan multimodal, dari menubuhkan kebergantungan untuk menghasilkan output berstruktur dengan teks dan imej bersepadu. Setiap langkah memastikan integrasi lullamaindex, llamaparse, dan arize Phoenix untuk saluran paip yang cekap dan dinamik.

      Langkah 1: Pasang dan Import Ketergantungan

      anda memerlukan perpustakaan berikut yang berjalan di Python 3.9.9:

      • llama-index
      • llama-sarse (untuk penguraian imej teks)
      • llama-index-callbacks-verize-phoenix (untuk pemerhatian/pembalakan)
      • nest_asyncio (untuk mengendalikan gelung acara async dalam buku nota)
    !pip install -U llama-index-callbacks-arize-phoenix
    
    import nest_asyncio
    
    nest_asyncio.apply()
    Salin selepas log masuk
    Salin selepas log masuk
    Langkah 2: Sediakan pemerhatian

    Kami mengintegrasikan dengan llamatrace - Llamacloud API (Arize Phoenix). Pertama, dapatkan kunci API dari lbatrace.com, kemudian sediakan pembolehubah persekitaran untuk menghantar jejak ke Phoenix.

    Kunci API Phoenix Phoenix boleh didapati dengan mendaftar untuk lbatrace di sini, kemudian navigasi ke panel kiri bawah dan klik pada 'Kekunci' di mana anda perlu mencari kunci API anda.

    Sebagai contoh:

    Langkah 3: Muatkan data - Dapatkan dek slaid anda
    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"
    )
    Salin selepas log masuk
    Salin selepas log masuk

    Untuk demonstrasi, kami menggunakan dek slaid pertemuan ConocoPhillips '2023. Kami memuat turun pdf:

    periksa sama ada dek slaid PDF berada dalam folder data, jika tidak letakkan dalam folder data dan namakannya seperti yang anda mahukan.
    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")
    Salin selepas log masuk
    Salin selepas log masuk

    Langkah 4: Sediakan Model

    Anda memerlukan model penyembuhan dan LLM. Dalam contoh ini:

    Seterusnya, anda mendaftarkannya sebagai lalai untuk llamaindex:
    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")
    Salin selepas log masuk
    Salin selepas log masuk

    Langkah 5: Mengurangkan dokumen dengan llamaparse
    from llama_index.core import Settings
    Settings.embed_model = embed_model
    Settings.llm = llm
    Salin selepas log masuk
    Salin selepas log masuk

    llamaparse boleh mengekstrak teks dan imej (melalui model besar multimodal). Untuk setiap halaman PDF, ia kembali:

      teks markdown
    • (dengan jadual, tajuk, titik peluru, dll.)
    • imej yang diberikan
    • (disimpan secara tempatan)
    print(f"Parsing slide deck...")
    md_json_objs = parser.get_json_result("data/conocophillips.pdf")
    md_json_list = md_json_objs[0]["pages"]
    Salin selepas log masuk
    Salin selepas log masuk

    Penjanaan laporan kewangan multimodal menggunakan llamaindex

    print(md_json_list[10]["md"])
    Salin selepas log masuk
    Salin selepas log masuk

    Penjanaan laporan kewangan multimodal menggunakan llamaindex

    !pip install -U llama-index-callbacks-arize-phoenix
    
    import nest_asyncio
    
    nest_asyncio.apply()
    Salin selepas log masuk
    Salin selepas log masuk

    Penjanaan laporan kewangan multimodal menggunakan llamaindex

    Langkah 6: Teks dan Imej Bersekutu

    Kami membuat senarai

    textNode objek (struktur data Llamaindex) untuk setiap halaman. Setiap nod mempunyai metadata mengenai nombor halaman dan laluan fail imej yang sepadan:

    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"
    )
    Salin selepas log masuk
    Salin selepas log masuk

    Penjanaan laporan kewangan multimodal menggunakan llamaindex Langkah 7: Membina Indeks Ringkasan

    dengan nod teks ini, anda boleh membuat summaryindex:

    SummaryIndex memastikan anda dapat dengan mudah mengambil atau menghasilkan ringkasan peringkat tinggi ke seluruh dokumen.
    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")
    Salin selepas log masuk
    Salin selepas log masuk

    Langkah 8: Tentukan skema output berstruktur

    saluran paip kami bertujuan untuk menghasilkan output akhir dengan blok teks interleaved dan blok imej. Untuk itu, kami membuat model Pydantic tersuai (menggunakan pydantic v2 atau memastikan keserasian) dengan dua jenis blok-

    textblock dan Titik utama: ReportOutput memerlukan sekurang -kurangnya satu blok imej, memastikan jawapan terakhir adalah multimodal. Langkah 9: Buat enjin pertanyaan berstruktur

    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")
    Salin selepas log masuk
    Salin selepas log masuk
    llamaindex membolehkan anda menggunakan "LLM berstruktur" (iaitu, llm yang outputnya secara automatik dihuraikan ke dalam skema tertentu). Inilah caranya:

    from llama_index.core import Settings
    Settings.embed_model = embed_model
    Settings.llm = llm
    Salin selepas log masuk
    Salin selepas log masuk

    Penjanaan laporan kewangan multimodal menggunakan llamaindex Kesimpulan

    print(f"Parsing slide deck...")
    md_json_objs = parser.get_json_result("data/conocophillips.pdf")
    md_json_list = md_json_objs[0]["pages"]
    Salin selepas log masuk
    Salin selepas log masuk
    Dengan menggabungkan llamaindex, llamaparse, dan openai, anda boleh membina penjana laporan multimodal yang memproses keseluruhan PDF (dengan teks, jadual, dan imej) ke dalam output berstruktur. Pendekatan ini memberikan hasil yang lebih kaya dan lebih bermaklumat -betul -betul apa yang dikehendaki oleh pihak berkepentingan untuk mendapatkan pandangan kritikal dari dokumen korporat atau teknikal yang kompleks.

    Penjanaan laporan kewangan multimodal menggunakan llamaindex Jangan ragu untuk menyesuaikan saluran paip ini ke dokumen anda sendiri, tambahkan langkah pengambilan untuk arkib besar, atau mengintegrasikan model khusus domain untuk menganalisis imej yang mendasari. Dengan asas-asas yang dibentangkan di sini, anda boleh membuat laporan dinamik, interaktif, dan visual yang jauh melebihi pertanyaan berasaskan teks yang mudah. ​​

    print(md_json_list[10]["md"])
    Salin selepas log masuk
    Salin selepas log masuk
    Terima kasih banyak kepada Jerry Liu dari Llamaindex untuk membangunkan saluran paip yang menakjubkan ini.

    Takeaways Key

    • Transformasi PDF dengan teks dan visual ke dalam format berstruktur sambil mengekalkan integriti kandungan asal menggunakan llamaparse dan llamaindex.
    • menghasilkan laporan yang diperkaya secara visual bahawa ringkasan dan imej tekstual yang sama untuk pemahaman kontekstual yang lebih baik.
    • Generasi laporan kewangan dapat dipertingkatkan dengan mengintegrasikan kedua -dua teks dan elemen visual untuk output yang lebih mendalam dan dinamik.
    • Memanfaatkan Llamaindex dan Llamaparse menyelaraskan proses penjanaan laporan kewangan, memastikan hasil yang tepat dan berstruktur.
    • Dapatkan dokumen yang relevan sebelum memproses untuk mengoptimumkan generasi laporan untuk arkib besar.
    • Meningkatkan parsing visual, menggabungkan analisis spesifik carta, dan menggabungkan model untuk pemprosesan teks dan imej untuk pandangan yang lebih mendalam.

    Soalan Lazim

    Q1. Apakah "Generator Laporan Multimodal"?

    a. Penjana laporan multimodal adalah sistem yang menghasilkan laporan yang mengandungi pelbagai jenis kandungan -terutamanya teks dan imej -dalam satu output kohesif. Dalam saluran paip ini, anda menghuraikan PDF ke dalam kedua -dua elemen teks dan visual, kemudian menggabungkannya ke dalam satu laporan akhir.

    Q2. Kenapa saya perlu memasang llama-index-callbacks-verize-phoenix dan menubuhkan pemerhatian? a. Alat pemerhatian seperti Arize Phoenix (melalui Lbatrace) membolehkan anda memantau dan menghilangkan tingkah laku model, pertanyaan trek dan tindak balas, dan mengenal pasti isu -isu dalam masa nyata. Ia amat berguna apabila berurusan dengan dokumen besar atau kompleks dan beberapa langkah berasaskan LLM.

    Q3. Mengapa menggunakan llamaparse dan bukannya pengekstrak teks pdf standard?

    a. Kebanyakan pengekstrak teks PDF hanya mengendalikan teks mentah, sering kehilangan pemformatan, imej, dan jadual. Llamaparse mampu mengekstrak kedua -dua teks dan imej (imej halaman yang diberikan), yang penting untuk membina saluran paip multimodal di mana anda perlu merujuk kembali ke jadual, carta, atau visual lain. Apakah kelebihan menggunakan SummaryIndex?

    a. SummaryIndex adalah abstraksi llamaindex yang menganjurkan kandungan anda (mis., Halaman PDF) supaya ia dapat dengan cepat menghasilkan ringkasan yang komprehensif. Ia membantu mengumpulkan pandangan peringkat tinggi dari dokumen panjang tanpa perlu memotong mereka secara manual atau menjalankan pertanyaan pengambilan untuk setiap data.

    Q5. Bagaimanakah saya memastikan laporan akhir termasuk sekurang -kurangnya satu blok imej? a. Dalam model Pydantic ReportOutput, menguatkuasakan bahawa senarai blok memerlukan sekurang -kurangnya satu ImageBlock. Ini dinyatakan dalam sistem dan skema sistem anda. LLM mesti mematuhi peraturan ini, atau ia tidak akan menghasilkan output berstruktur yang sah.

    Media yang ditunjukkan dalam artikel ini tidak dimiliki oleh Analytics Vidhya dan digunakan pada budi bicara penulis.

Atas ialah kandungan terperinci Penjanaan laporan kewangan multimodal menggunakan llamaindex. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan