ระบบตอบคำถาม PDF โดยใช้ Generation-Augmented Retrieval-Augmented (RAG)
โครงการนี้เป็นระบบการตอบคำถามที่ซับซ้อนที่ออกแบบมาเพื่อแยกและให้คำตอบที่ตระหนักถึงบริบทจากเอกสาร PDF ด้วยการบูรณาการเทคนิค การดึงข้อมูลการเรียกคืนขั้นสูง (RAG) และโมเดล AI ที่ล้ำสมัยระบบช่วยให้ผู้ใช้สามารถโต้ตอบกับเอกสารของพวกเขาในลักษณะที่มีประสิทธิภาพและชาญฉลาดมากขึ้น
ใช้เคส
- การวิจัยเชิงวิชาการ : แยกข้อมูลเชิงลึกอย่างรวดเร็วจากงานวิจัยรายงานหรือการศึกษา
- การวิเคราะห์ระดับมืออาชีพ : นำทางสัญญาที่ยาวนาน, Whitepapers หรือคู่มือได้อย่างง่ายดาย
- การใช้งานประจำวัน : ทำให้การโต้ตอบง่ายขึ้นกับเอกสาร PDF ที่หนาแน่นหรือซับซ้อน
คุณสมบัติที่สำคัญ
- การประมวลผล PDF : อัปโหลดและประมวลผลเอกสาร PDF สำหรับการวิเคราะห์
- คำถามและคำตอบแบบโต้ตอบ : ป้อนคำถามภาษาธรรมชาติและรับคำตอบที่แม่นยำตามเนื้อหาเอกสาร
- การดึงข้อมูลขั้นสูง : ใช้การจัดทำดัชนีแบบเวกเตอร์และการให้คะแนนความคล้ายคลึงกันสำหรับการดึงเนื้อหาที่แม่นยำ
- อินเทอร์เฟซที่ใช้งานง่าย : เว็บแอปพลิเคชันที่สร้างด้วย Streamlit ช่วยให้มั่นใจได้ว่าการใช้งานและการเข้าถึงได้ง่าย
เทคโนโลยีที่ใช้
Frontend: Streamlit Backend: Python Machine Learning: HuggingFace Transformers สำหรับการสร้างข้อความ VectorStoreIndex สำหรับการจัดทำดัชนีเอกสาร Retriever ที่กำหนดเองและ postprocessor เพื่อการปรับปรุงความแม่นยำ
การติดตั้งและการตั้งค่า
- โคลนที่เก็บ :
git clone https://github.com/your-repo-name.git
cd your-repo-name
- เรียกใช้แอปพลิเคชัน: เริ่มแอปพลิเคชัน Streamlit:
อัปโหลด PDF และเริ่มสอบถาม
- อัปโหลดไฟล์ PDF ที่คุณต้องการผ่านอินเตอร์เฟสแอปพลิเคชัน

- ป้อนคำถามและดึงคำตอบที่แม่นยำตามบริบท

มันทำงานอย่างไร
การประมวลผล PDF :
- ระบบอ่านและประมวลผล PDF ที่อัปโหลดโดยแยกออกเป็นชิ้นที่จัดการได้สำหรับการจัดทำดัชนี
การดึงข้อมูล :
- เนื้อหาที่จัดทำดัชนีจะถูกเรียกคืนโดยใช้การฝังขั้นสูงและการให้คะแนนความคล้ายคลึงกัน
การสร้างคำตอบ :
- รูปแบบภาษาที่ผ่านการฝึกอบรมมาก่อนสร้างการตอบสนองที่ตระหนักถึงบริบทและกระชับตามเนื้อหาที่ดึงมา
สแต็คเทคโนโลยี
- Frontend : Streamlit สำหรับประสบการณ์การใช้งานแบบโต้ตอบและใช้งานง่าย
- แบ็กเอนด์ :
- HuggingFace Transformers สำหรับการทำความเข้าใจภาษาธรรมชาติและการสร้าง
- การดึงข้อมูลแบบเวกเตอร์โดยใช้การฝังที่กำหนดเอง
- ภาษาการเขียนโปรแกรม : Python
ภาพรวมรหัส
app.py
- แอปพลิเคชัน Streamlit ที่ให้ส่วนต่อประสานผู้ใช้
- จัดการการอัปโหลด PDF, อินพุตคำถามและแสดงคำตอบ
rag.py
- ใช้ตรรกะ RAG หลัก:
- การประมวลผล PDF : อ่านและแยก PDF ออกเป็นชิ้นที่จัดการได้
- การจัดทำดัชนี : สร้างดัชนีเวกเตอร์สำหรับการดึงเนื้อหาที่มีประสิทธิภาพ
- เครื่องมือค้นหา : ใช้รีทรีฟเวอร์และโพสต์โปรเซสเซอร์เพื่อตอบคำถาม
- การสร้างการตอบสนอง : สร้างการตอบสนองโดยละเอียดโดยใช้โมเดลหม้อแปลง
คำแนะนำการใช้งาน
- อัปโหลดไฟล์ PDF
- รอให้ระบบประมวลผลเอกสาร
- พิมพ์คำถามของคุณและคลิก "รับคำตอบ"
- ดูคำตอบที่สร้างโดยระบบ
การปรับปรุงในอนาคต
- การสนับสนุนหลายเอกสาร : เปิดใช้งานการสืบค้นผ่านไฟล์ PDF หลายไฟล์
- การสนับสนุนหลายภาษา : เพิ่มการสนับสนุนสำหรับการประมวลผลเอกสารในหลายภาษา
- การสนับสนุน GPU : ใช้การเร่งความเร็ว GPU สำหรับการประมวลผลและเวลาตอบสนองที่เร็วขึ้น
- รูปแบบเพิ่มเติม : ขยายการสนับสนุนไปยังรูปแบบเอกสารอื่น ๆ เช่น DOCX และ TXT
- UI ที่ปรับปรุงแล้ว : ปรับปรุงส่วนต่อประสานผู้ใช้ด้วยการวิเคราะห์ขั้นสูงและคุณสมบัติการสร้างภาพข้อมูล
การบริจาค
เรายินดีต้อนรับการมีส่วนร่วมจากชุมชน มีส่วนร่วม:
- แยกที่เก็บ
- สร้างสาขาคุณสมบัติ
- ส่งคำขอดึงรายละเอียดการบริจาคของคุณ
สำหรับปัญหาหรือข้อเสนอแนะใด ๆ โปรดเปิดการสนทนาหรือปัญหาเกี่ยวกับที่เก็บ
ใบอนุญาต
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT อย่าลังเลที่จะใช้แก้ไขและแจกจ่ายให้เป็นไปตามข้อกำหนดของใบอนุญาต
ติดต่อ
สำหรับการสอบถามหรือข้อมูลเพิ่มเติมโปรดติดต่อผ่านตัวติดตามปัญหาที่เก็บหรืออีเมล (ถ้ามี)