Docchat: ระบบดึงข้อมูล Langchain
แอปพลิเคชัน Streamlit นี้ใช้ระบบดึงข้อมูลที่ใช้ Langchain สำหรับการประมวลผลเอกสาร PDF และดำเนินการดึงการสนทนาโดยใช้ความสามารถของ Langchain
สถาปัตยกรรมผ้าขี้ริ้ว

streamlit ui

ภาพรวม
แอปพลิเคชันช่วยให้ผู้ใช้สามารถอัปโหลดไฟล์ PDF แยกข้อความแยกเป็นชิ้นสร้างการฝังตัวโดยใช้ Google Embeddings และสร้างห่วงโซ่การดึงข้อมูลการสนทนา จากนั้นผู้ใช้สามารถถามคำถามที่เกี่ยวข้องกับเนื้อหา PDF ที่ประมวลผลและรับคำตอบตามการตั้งค่าห่วงโซ่การสนทนา
เทคโนโลยีสำคัญที่ใช้
- Langchain : ห้องสมุดสำหรับงานการประมวลผลภาษาธรรมชาติรวมถึงการแยกข้อความและการดึงการสนทนา
- Google Palm Embeddings : Embeddings ที่ใช้สำหรับความคล้ายคลึงกันทางความหมายและการแสดงข้อความ
- FAISS (การค้นหาความคล้ายคลึงกันของ Facebook AI) : ไลบรารีที่มีประสิทธิภาพสำหรับการค้นหาความคล้ายคลึงกันและการจัดกลุ่มของเวกเตอร์หนาแน่น
การตั้งค่าโครงการ
ข้อกำหนดเบื้องต้น
สภาพแวดล้อม Python : ตรวจสอบให้แน่ใจว่าคุณติดตั้ง Python 3.x แล้ว
ตัวแปรสภาพแวดล้อม : สร้างไฟล์ .env ในไดเรกทอรีรูทโครงการด้วยเนื้อหาต่อไปนี้: google_api_key = your_google_api_key_here แทนที่ your_google_api_key_here ด้วยคีย์ Google API จริงของคุณ
การติดตั้ง
- โคลนที่เก็บ : โคลนที่เก็บนี้ไปยังเครื่องในพื้นที่ของคุณ:
git clone https://github.com/Varunv003/langchain-palm2-rag_application
- ตั้งค่าสภาพแวดล้อมเสมือนจริง : ขอแนะนำให้ใช้สภาพแวดล้อมเสมือนจริงเพื่อจัดการการพึ่งพา:
python -m venv venv
# On Windows: .venvScriptsactivate
# On macOS/Linux: source venv/bin/activate
- ติดตั้งการพึ่งพา : ติดตั้งแพ็คเกจ Python ที่ต้องการโดยใช้ PIP:
pip install -r requirements.txt
- โครงสร้างเทมเพลต : ในการตั้งค่าโครงสร้างโฟลเดอร์เริ่มต้นของโครงการ Run:
python template.py
# This command will create necessary directories and files based on your project needs.
- เรียกใช้แอปพลิเคชัน เพื่อเรียกใช้แอปพลิเคชัน Streamlit:
streamlit run app.py
# The application will start, and you can access it in your web browser at http://localhost:8501.
โครงสร้างไฟล์
- App.py : รหัสแอปพลิเคชัน Main Streamlit สำหรับการอัปโหลด PDFs ประมวลผลและการจัดการการโต้ตอบของผู้ใช้
- Helper.py : มีฟังก์ชั่นผู้ช่วยสำหรับการแยกข้อความ PDF, การสร้างข้อความ, การสร้างร้านค้าเวกเตอร์ FAISS และการตั้งค่าโซ่การสนทนา
- template.py : สคริปต์เพื่อเริ่มต้นโครงสร้างโฟลเดอร์และสร้างไดเรกทอรี/ไฟล์ที่จำเป็นสำหรับโครงการ .ENV: ไฟล์ตัวแปรสภาพแวดล้อมสำหรับการจัดเก็บข้อมูลที่ละเอียดอ่อนเช่นปุ่ม API
การใช้งาน
- อัปโหลดไฟล์ PDF: ใช้แถบด้านข้าง "อัปโหลดข้อมูลของคุณ" เพื่ออัปโหลดไฟล์ PDF หนึ่งไฟล์ขึ้นไป
- กระบวนการ PDFS: คลิก "ส่งและประมวลผล" เพื่อแยกข้อความสร้างการฝังและตั้งค่าห่วงโซ่การดึงการสนทนา
- ถามคำถาม: ป้อนคำถามที่เกี่ยวข้องกับเนื้อหา PDF ที่อัปโหลดในฟิลด์อินพุตข้อความ
- มุมมองการตอบกลับ: การตอบสนองที่สร้างขึ้นโดยรูปแบบการสนทนา Langchain จะแสดงในอินเทอร์เฟซหลัก
- การบันทึก: การบันทึกถูกนำไปใช้เพื่อจับขั้นตอนและการกำหนดเวลาที่สำคัญในระหว่างการสกัดข้อความ PDF การสร้างข้อความการสร้างร้านค้าเวกเตอร์และการตั้งค่าโซ่การสนทนา บันทึกจะปรากฏขึ้นในคอนโซลหรือเทอร์มินัลที่แอปพลิเคชันทำงาน
การปรับปรุงในอนาคต
- ปรับปรุงการจัดการข้อผิดพลาดและความคิดเห็นของผู้ใช้ในระหว่างการอัปโหลดและประมวลผลไฟล์
- ปรับปรุงความสามารถในการปรับขนาดและการเพิ่มประสิทธิภาพประสิทธิภาพสำหรับการจัดการเอกสาร PDF ขนาดใหญ่
- รวมโมเดล AI เพิ่มเติมหรือปรับแต่งโมเดลที่มีอยู่เพื่อการตอบสนองการสนทนาที่ดีขึ้น