Retrieval-Augmented Generation (RAG) เป็นกรอบที่รวมการดึงข้อมูลเข้ากับ AI Generative ช่วยให้โมเดลสามารถดึงข้อมูลที่เกี่ยวข้องจากแหล่งข้อมูลภายนอกหรือฐานข้อมูลและใช้ข้อมูลนั้นเพื่อสร้างการตอบสนองที่แม่นยำและเกี่ยวข้องกับบริบทมากขึ้น ด้วยการใช้ประโยชน์จากทั้งการดึงและการสร้าง RAG ปรับปรุงความแม่นยำและความน่าเชื่อถือของโมเดล AI โดยเฉพาะอย่างยิ่งในการให้ข้อมูลที่ทันสมัยหรือจัดการคำถามที่ซับซ้อน
โครงการนี้ให้ผู้ช่วยผู้สนทนาที่ใช้ AI ซึ่งใช้ประโยชน์จาก Generation Retrieval-Augmented Generation (RAG) เพื่อแยกความรู้จากเอกสาร PDF ระบบรวมการฝังข้อความการค้นหาเวกเตอร์และ LLM เพื่อให้คำตอบสำหรับคำถามผู้ใช้ ด้านล่างนี้เป็นเวิร์กโฟลว์แบบทีละขั้นตอนโดยละเอียดของวิธีการทำงานของแอปพลิเคชัน:
pdfplumber ซึ่งเป็นไลบรารี Python สำหรับการแยกข้อความจาก PDFSpdfplumber เพื่อแยกข้อความดิบออกจาก PDF ที่อัปโหลด แต่ละหน้าของเอกสารจะถูกแยกวิเคราะห์และข้อความผลลัพธ์ถูกเตรียมไว้สำหรับการประมวลผลเพิ่มเติมRecursiveCharacterTextSplitter สิ่งนี้ทำให้มั่นใจได้ว่าเนื้อหาสามารถจัดการได้สำหรับการฝังและการดึงข้อมูลโดยทั่วไปจะมีขนาดก้อน 500 อักขระและทับซ้อน 50 อักขระSpacyEmbeddings การฝังตัวเหล่านี้แสดงถึงความหมายเชิงความหมายของชิ้นส่วนทำให้การค้นหามีประสิทธิภาพ 
Chroma ซึ่งจัดเก็บ embeddings ฐานข้อมูลเวกเตอร์อนุญาตให้ดึงข้อมูลที่เกี่ยวข้องอย่างรวดเร็วและมีประสิทธิภาพตามแบบสอบถามผู้ใช้ConversationalRetrievalChain ถูกสร้างขึ้นโดยใช้ LangChain ซึ่งรวมการฝังตัวที่เก็บไว้ใน Chroma กับบัฟเฟอร์หน่วยความจำสนทนาเพื่อติดตามประวัติการแชทและบริบทChatGoogleGenerativeAI (Gemini LLM ของ Google) เพื่อสร้างการตอบสนองที่เกี่ยวข้องและอัจฉริยะต่อคำถามของผู้ใช้ตามข้อความที่ดึงมาจากร้านค้าเวกเตอร์
การดึงความรู้ที่มีประสิทธิภาพ : ด้วยการใช้ประโยชน์จากพลังของ RAG ระบบจะรวมการดึงและการสร้างเพื่อตอบคำถามเฉพาะอย่างแม่นยำตามเนื้อหาของเอกสาร PDF ที่อัปโหลด
ความสามารถในการปรับขนาดและความยืดหยุ่น : ด้วยการใช้ข้อความและการฝังตัวแอปสามารถจัดการเอกสารขนาดใหญ่ในขณะที่มั่นใจได้ว่าการดึงข้อมูลที่รวดเร็วและแม่นยำ
AI การสนทนา : หน่วยความจำประวัติการสนทนาทำให้ระบบมีการโต้ตอบมากขึ้นเนื่องจากติดตามคำถามและคำตอบก่อนหน้านี้รักษาบริบทไว้ในการสนทนาที่ยาวนาน
การรวมเครื่องมือ AI ที่ทันสมัย : โครงการนี้แสดงให้เห็นถึงการใช้เครื่องมือขั้นสูงเช่น Chroma สำหรับการจัดเก็บเวกเตอร์, LangChain สำหรับการจัดการการสนทนาและ Gemini LLM ของ Google สำหรับการสร้างคำตอบที่เหมือนมนุษย์