Membina Sistem Pengambilan Laporan Kewangan
Mar 21, 2025 am 10:08 AMLaporan kewangan adalah penting untuk menilai kesihatan syarikat. Mereka merangkumi beratus -ratus halaman, menjadikannya sukar untuk mengekstrak pandangan tertentu dengan cekap. Penganalisis dan pelabur menghabiskan berjam -jam menyaring melalui kunci kira -kira, penyata pendapatan dan nota kaki hanya untuk menjawab soalan mudah seperti - apakah pendapatan syarikat pada tahun 2024? Dengan kemajuan baru -baru ini dalam model LLM dan teknologi carian vektor, kami boleh mengautomasikan analisis laporan kewangan menggunakan llamaindex dan rangka kerja yang berkaitan. Pos blog ini meneroka bagaimana kita boleh menggunakan Llamaindex, Chromadb, Gemini2.0, dan Ollama untuk membina sistem rag kewangan yang mantap yang menjawab pertanyaan dari laporan yang panjang dengan ketepatan.
Objektif pembelajaran
- Memahami keperluan sistem pengambilan laporan kewangan untuk analisis yang cekap.
- Ketahui cara untuk memproses dan vektor laporan kewangan menggunakan llamaindex.
- Terokai Chromadb untuk membina pangkalan data vektor yang mantap untuk mendapatkan semula dokumen.
- Melaksanakan enjin pertanyaan menggunakan Gemini 2.0 dan Llama 3.2 untuk analisis data kewangan.
- Temui teknik penghalaan pertanyaan lanjutan menggunakan LlamAindex untuk meningkatkan pandangan.
Artikel ini diterbitkan sebagai sebahagian daripada Blogathon Sains Data.
Jadual Kandungan
- Mengapa kita memerlukan sistem pengambilan laporan kewangan?
- Pelaksanaan projek
- Dokumen pemprosesan dengan llamaindex
- Membina Pangkalan Data Vektor dengan Chromadb
- Data Kewangan Pertanyaan dengan Gemini 2.0
- Pertanyaan Tempatan Menggunakan Llama 3.2
- Routing pertanyaan lanjutan dengan llamaindex
- Kesimpulan
- Soalan yang sering ditanya
Mengapa kita memerlukan sistem pengambilan laporan kewangan?
Laporan kewangan mengandungi pandangan kritikal mengenai prestasi syarikat, termasuk pendapatan, perbelanjaan, liabiliti, dan keuntungan. Walau bagaimanapun, laporan ini adalah besar, panjang, dan penuh dengan jargon teknikal, menjadikannya sangat memakan masa untuk penganalisis, pelabur, dan eksekutif untuk mengekstrak maklumat yang relevan secara manual.
Sistem pengambilan laporan kewangan boleh mengautomasikan proses ini dengan membolehkan pertanyaan bahasa semulajadi. Daripada mencari melalui PDF, pengguna hanya boleh bertanya seperti, " Apakah hasilnya pada tahun 2023? " Atau " meringkaskan kebimbangan kecairan untuk 2023. " Sistem ini dengan cepat mengambil semula dan meringkaskan bahagian yang relevan, menjimatkan jam usaha manual.
Pelaksanaan projek
Untuk pelaksanaan projek, kami perlu terlebih dahulu menubuhkan persekitaran dan memasang perpustakaan yang diperlukan:
Langkah 1: Menyediakan persekitaran
Kami akan bermula dengan membuat dan Conda Env untuk kerja pembangunan kami.
1 2 3 |
|
Langkah 2: Pasang perpustakaan python penting
Memasang Libraires adalah langkah penting untuk sebarang pelaksanaan projek:
1 2 3 4 |
|
Langkah 3: Membuat Direktori Projek
Sekarang buat direktori projek dan buat fail yang dinamakan .Env dan pada fail itu meletakkan semua kekunci API anda untuk pengurusan kunci API yang selamat.
1 2 3 |
|
Kami memuatkan pembolehubah persekitaran dari fail .env untuk menyimpan kunci API sensitif dengan selamat. Ini memastikan bahawa API Gemini atau API Google kami masih dilindungi.
Kami akan melakukan projek kami menggunakan buku nota Jupyter.
Buat fail notebook Jupyter dan mula melaksanakan langkah demi langkah.
Langkah 4: Memuatkan kekunci API
Sekarang kita akan memuatkan kunci API di bawah:
1 2 3 4 5 6 7 8 9 |
|
Sekarang, enviroment kami siap supaya kami dapat pergi ke fasa paling penting seterusnya.
Dokumen pemprosesan dengan llamaindex
Mengumpul Laporan Kewangan Motorsport Games Inc. dari Laman Web Tahunan Perubatan.
Muat turun pautan di sini.
Halaman pertama kelihatan seperti:
Laporan ini mempunyai sejumlah 123 halaman, tetapi saya hanya mengambil penyata kewangan laporan dan membuat PDF baru untuk projek kami.
Bagaimana saya melakukannya? Ia sangat mudah dengan perpustakaan PYPDF.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
Fail laporan baru hanya mempunyai 38 muka surat, yang akan membantu kami membenamkan dokumen dengan cepat.
Memuat dan Memisahkan Laporan Kewangan
Dalam direktori data projek anda, letakkan fail yang baru dicipta oleh anda
Laporan kewangan biasanya dalam format PDF, yang mengandungi data tabular yang luas, nota kaki, dan penyata undang -undang. Kami menggunakan SimpleDirectoryReader Llamaindex untuk memuatkan dokumen -dokumen ini dan menukarnya ke dokumen.
1 2 3 |
|
Oleh kerana laporan sangat besar untuk diproses sebagai satu dokumen, kami mencairkannya ke dalam bahagian kecil atau nod. Setiap bahagian sepadan dengan halaman atau bahagian, ia membantu mendapatkan semula dengan lebih cekap.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Untuk memahami proses pengambilan dokumen lihat di bawah rajah.
Sekarang data kewangan kami siap untuk vektor dan menyimpan untuk mendapatkan semula.
Membina Pangkalan Data Vektor dengan Chromadb
Kami akan menggunakan ChromAdb untuk pangkalan data vektor yang cepat, tepat, dan tempatan. Perwakilan tertanam teks kewangan kami akan disimpan ke dalam Chromadb.
Kami memulakan pangkalan data vektor dan mengkonfigurasi model teks-teks nomik menggunakan Ollama untuk generasi penyembuhan tempatan.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Akhirnya, kami membuat indeks vektor menggunakan VectorStoreIndex Llamaindex. Indeks ini menghubungkan pangkalan data vektor kami ke enjin pertanyaan Llamaindex.
1 2 3 4 |
|
Kod di atas akan membuat indeks vektor menggunakan teks-teks nomik dari dokumen teks kewangan. Ia akan mengambil masa, bergantung kepada spesifikasi sistem tempatan anda.
Apabila pengindeksan anda selesai, maka anda boleh menggunakan kod untuk digunakan semula yang tertanam apabila perlu tanpa mengindeks semula.
1 2 3 |
|
Ini akan membolehkan anda menggunakan fail penyembuhan Chromadb dari storan.
Sekarang pemuatan berat kami telah selesai, masa untuk menanyakan laporan dan berehat.
Data Kewangan Pertanyaan dengan Gemini 2.0
Sebaik sahaja data kewangan kami diindeks, kami boleh bertanya soalan bahasa semulajadi dan menerima jawapan yang tepat. Untuk pertanyaan, kami akan menggunakan model Flash Gemini-2.0 yang berinteraksi dengan pangkalan data vektor kami untuk mengambil bahagian yang relevan dan menghasilkan respons pandangan.
Menetapkan Gemini-2.0
1 2 3 |
|
Memulakan enjin pertanyaan menggunakan Gemini 2.0 dengan indeks vektor
1 |
|
Pertanyaan dan tindak balas exa mple
Di bawah ini kami mempunyai banyak pertanyaan dengan respons yang berbeza:
Pertanyaan-1
1 2 3 |
|
Respons
Imej yang sepadan dari laporan:
Pertanyaan-2
1 2 3 4 5 |
|
Respons
Imej yang sepadan dari laporan:
Pertanyaan-3
1 2 3 4 5 |
|
Respons
Pertanyaan-4
1 2 3 4 5 |
|
Respons
Corresonding Image dari Laporan:
Pertanyaan-5
1 2 3 4 5 |
|
Respons
Corresonding Image dari Laporan:
Pertanyaan-6
1 2 3 4 5 |
|
Respons
Imej yang sepadan dari laporan:
Pertanyaan-7
1 2 3 4 5 |
|
Respons
Pertanyaan-8
1 2 3 4 5 |
|
Respons
Imej yang sepadan dari laporan:
Pertanyaan Tempatan Menggunakan Llama 3.2
Leverage Llama 3.2 Secara tempatan untuk menanyakan laporan kewangan tanpa bergantung pada model berasaskan awan.
Menetapkan Llama 3.2: 1b
1 2 |
|
Pertanyaan-9
1 2 3 4 5 |
|
Respons
Corresonding Image dari Laporan:
Routing pertanyaan lanjutan dengan llamaindex
Kadang -kadang, kita memerlukan pengambilan terperinci dan meringkaskan pandangan. Kita boleh melakukan ini dengan menggabungkan kedua -dua indeks vektor dan indeks ringkasan.
- Indeks vektor untuk pengambilan dokumen yang tepat
- Indeks ringkasan untuk ringkasan kewangan ringkas
Kami telah membina indeks vektor, kini kami akan membuat indeks ringkasan yang menggunakan pendekatan hierarki untuk meringkaskan penyata kewangan.
1 2 3 |
|
Kemudian mengintegrasikan routerQueryEngine, yang secara kondusif memutuskan sama ada untuk mendapatkan data dari indeks ringkasan atau indeks vektor berdasarkan jenis pertanyaan.
1 2 3 |
|
Sekarang buat enjin pertanyaan ringkasan
1 2 3 |
|
Enjin pertanyaan ringkasan ini masuk ke dalam alat ringkasan. dan enjin pertanyaan vektor ke dalam alat vektor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Kedua -dua alat itu dilakukan sekarang kami menyambungkan alat ini melalui penghala supaya apabila pertanyaan pantat melalui penghala ia akan menentukan alat mana yang hendak digunakan dengan menganalisis pertanyaan pengguna.
1 2 3 4 5 6 7 8 |
|
Sistem pertanyaan lanjutan kami telah disediakan sepenuhnya, kini menanyakan enjin pertanyaan maju kami yang baru disukai.
Pertanyaan-10
1 2 3 4 |
|
Respons
Anda dapat melihat bahawa penghala pintar kami akan memutuskan untuk menggunakan alat ringkasan kerana dalam pengguna pertanyaan meminta ringkasan.
Pertanyaan-11
1 2 |
|
Respons
Dan di sini penghala memilih alat vektor kerana pengguna meminta maklumat khusus, bukan ringkasan.
Semua kod yang digunakan dalam artikel ini ada di sini
Kesimpulan
Kami dapat menganalisis laporan kewangan dengan cekap dengan Llamaindex, ChromAdb dan LLM Lanjutan. Sistem ini membolehkan wawasan kewangan automatik, pertanyaan masa nyata, dan ringkasan yang kuat. Sistem jenis ini menjadikan analisis kewangan lebih mudah dan cekap untuk mengambil keputusan yang lebih baik semasa melabur, berdagang, dan menjalankan perniagaan.
Takeaways utama
- Sistem pengambilan dokumen berkuasa LLM secara drastik dapat mengurangkan masa yang dihabiskan untuk menganalisis laporan kewangan yang kompleks.
- Pendekatan hibrid menggunakan awan dan LLM tempatan memastikan cara yang berkesan, privasi, dan fleksibel untuk mereka bentuk sistem.
- Rangka Kerja Modular Llamaindex membolehkan cara mudah untuk mengautomasikan aliran kerja RAG laporan kewangan
- Sistem jenis ini boleh disesuaikan untuk domain yang berbeza seperti dokumen undang -undang, laporan perubatan dan pemfailan peraturan, yang menjadikannya penyelesaian kain serba boleh.
Soalan yang sering ditanya
Q 1. Bagaimanakah sistem mengendalikan laporan kewangan yang berbeza?A. Sistem ini direka untuk memproses mana -mana dokumen kewangan berstruktur dengan memecahkannya ke dalam ketulan teks, membenamkannya dan menyimpannya di Chromadb. Laporan baru boleh ditambah secara dinamik tanpa memerlukan pengindeksan semula lengkap.
Q 2. Bolehkah ini diperluaskan untuk menjana carta kewangan dan visualisasi?A. Ya, dengan mengintegrasikan matplotlib, panda dan streamlit, anda boleh memvisualisasikan trend seperti pertumbuhan pendapatan, analisis kerugian bersih, atau pengedaran aset.
Q3. Bagaimanakah sistem penghalaan pertanyaan meningkatkan ketepatan?A. RouterQueryEngine secara automatik mengesan sama ada pertanyaan memerlukan tindak balas yang diringkaskan atau pengambilan data kewangan tertentu. Ini mengurangkan output yang tidak relevan dan memastikan ketepatan respons.
Q 4. Dalam sistem ini sesuai untuk analisis kewangan masa nyata?A. Ia boleh, tetapi ia bergantung kepada berapa kerap kedai vektor dikemas kini. Anda boleh menggunakan API Embedding OpenAI untuk saluran paip pengambilan berterusan untuk pertanyaan laporan kewangan masa nyata secara dinamik.
Media yang ditunjukkan dalam artikel ini tidak dimiliki oleh Analytics Vidhya dan digunakan atas budi bicara penulis.
Atas ialah kandungan terperinci Membina Sistem Pengambilan Laporan Kewangan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Membina ejen penglihatan tempatan menggunakan omniparser v2 dan omnitool

Ejen replit: panduan dengan contoh praktikal

Panduan Runway Act-One: Saya memfilmkan diri untuk mengujinya

DeepSeek melepaskan rangka 3FS & Smallpond

Elon Musk & Sam Altman bertembung lebih daripada $ 500 bilion projek Stargate

5 grok 3 arahan yang dapat memudahkan kerja anda

Saya cuba pengekodan getaran dengan kursor AI dan ia menakjubkan!
