Sistem Penjawab Pertanyaan PDF Menggunakan Retrieval-Agusted Generation (RAG)
Proyek ini adalah sistem jawaban pertanyaan yang canggih yang dirancang untuk mengekstrak dan memberikan jawaban yang sadar konteks dari dokumen PDF. Dengan mengintegrasikan teknik generasi pengambilan canggih (RAG) dan model AI canggih, sistem ini memungkinkan pengguna untuk berinteraksi dengan dokumen mereka dengan cara yang lebih efisien dan cerdas.
Menggunakan kasus
- Penelitian Akademik : Dengan cepat mengekstrak wawasan dari makalah penelitian, laporan, atau studi.
- Analisis Profesional : Navigasi kontrak panjang, whitepaper, atau manual dengan mudah.
- Penggunaan sehari -hari : Sederhanakan interaksi dengan dokumen PDF yang padat atau kompleks.
Fitur utama
- Pemrosesan PDF : Unggah dan proses dokumen PDF untuk analisis.
- T&J interaktif : Masukkan pertanyaan bahasa alami dan terima jawaban yang tepat berdasarkan konten dokumen.
- Pengambilan Lanjutan : Menggunakan pengindeksan berbasis vektor dan penilaian kesamaan untuk pengambilan konten yang akurat.
- Antarmuka yang ramah pengguna : Aplikasi web yang dibangun dengan streamLit memastikan kemudahan penggunaan dan aksesibilitas.
Teknologi digunakan
Frontend: Streamlit Backend: Python Machine Learning: Huggingface Transformers untuk pembuatan teks VectorStoreIndex untuk pengindeksan dokumen Retriever dan postprocessor untuk akurasi yang lebih baik
Instalasi dan Pengaturan
- Klon Repositori :
git clone https://github.com/your-repo-name.git
cd your-repo-name
- Jalankan Aplikasi: Mulai Aplikasi StreamLit:
Unggah PDF dan mulai menanyakan
- Unggah file PDF yang Anda inginkan melalui antarmuka aplikasi.

- Masukkan pertanyaan dan ambil respons yang akurat secara kontekstual.

Cara kerjanya
Pemrosesan PDF :
- Sistem membaca dan memproses PDF yang diunggah, membaginya menjadi potongan yang dapat dikelola untuk pengindeksan.
Pengambilan Informasi :
- Konten yang diindeks diambil menggunakan embeddings canggih dan penilaian kesamaan.
Generasi Jawaban :
- Model bahasa pra-terlatih menghasilkan tanggapan yang sadar-konteks dan ringkas berdasarkan konten yang diambil.
Tumpukan Teknologi
- Frontend : Streamlit untuk pengalaman pengguna yang interaktif dan intuitif.
- Backend :
- Transformator Huggingface untuk Pemahaman dan Generasi Bahasa Alami.
- Pengambilan berbasis vektor menggunakan embeddings khusus.
- Bahasa Pemrograman : Python.
Tinjauan Kode
app.py
- Aplikasi StreamLit yang menyediakan antarmuka pengguna.
- Menangani unggahan PDF, pertanyaan input, dan menampilkan jawaban.
rag.py
- Mengimplementasikan logika rag inti:
- Pemrosesan PDF : Membaca dan membagi PDF menjadi potongan yang dapat dikelola.
- Pengindeksan : Membuat indeks vektor untuk pengambilan konten yang efisien.
- Query Engine : Menggunakan retriever dan postprocessor untuk menjawab pertanyaan.
- Generasi Respons : Menghasilkan respons terperinci menggunakan model transformator.
Instruksi penggunaan
- Unggah file PDF.
- Tunggu sistem untuk memproses dokumen.
- Ketik pertanyaan Anda dan klik "Dapatkan jawaban".
- Lihat jawaban yang dihasilkan oleh sistem.
Peningkatan di masa depan
- Dukungan Multi-Dokumen : Mengaktifkan permintaan di beberapa file PDF.
- Dukungan multi-bahasa : Tambahkan dukungan untuk pemrosesan dokumen dalam berbagai bahasa.
- Dukungan GPU : Menerapkan akselerasi GPU untuk waktu pemrosesan dan respons yang lebih cepat.
- Format tambahan : Perluas dukungan ke format dokumen lain seperti DOCX dan TXT.
- Enhanced UI : Tingkatkan antarmuka pengguna dengan fitur analitik dan visualisasi canggih.
Berkontribusi
Kami menyambut kontribusi dari komunitas. Untuk berkontribusi:
- Garpu repositori.
- Buat cabang fitur.
- Kirim permintaan tarik yang merinci kontribusi Anda.
Untuk masalah atau saran apa pun, buka diskusi atau masalah di repositori.
Lisensi
Proyek ini dilisensikan di bawah lisensi MIT. Jangan ragu untuk menggunakan, memodifikasi, dan mendistribusikannya sesuai dengan ketentuan lisensi.
Kontak
Untuk pertanyaan atau informasi lebih lanjut, silakan hubungi melalui pelacak atau email Repositori atau email (jika berlaku).