College Q & A Chatbot
โครงการนี้เป็นคำถามและคำตอบที่ออกแบบมาเพื่อตอบคำถามที่เกี่ยวข้องกับ Global Academy of Technology (GAT) โดยใช้การผสมผสานระหว่างรูปแบบภาษาขนาดใหญ่ (LLMS), embeddings text-embedings, Retrieval-Augmented Generation (RAG) และเทคนิควิศวกรรมที่รวดเร็ว chatbot สามารถประมวลผลทั้งอินพุตข้อความและเสียงให้คำตอบที่เกี่ยวข้องตามประวัติการสนทนาและเอกสารที่โหลดไว้ล่วงหน้า
คุณสมบัติ
- อินพุตข้อความและเสียง : ยอมรับการสืบค้นผู้ใช้ผ่านการป้อนข้อความหรือการบันทึกเสียง
- Retrieval-Augmented Generation (RAG) : เพิ่มการตอบสนองโดยใช้ข้อมูลที่เกี่ยวข้องที่ดึงมาจากเอกสารที่โหลดไว้ล่วงหน้า
- การตอบสนองที่ตระหนักถึงบริบท : ใช้ประวัติการสนทนาเพื่อให้คำตอบที่สอดคล้องกันและเหมาะสมกับบริบท
- อินเทอร์เฟซ StreamLit : อินเทอร์เฟซที่ใช้งานง่ายที่สร้างขึ้นด้วย StreamLit ซึ่งมีตัวเลือกสำหรับโหมดติดตามผลและการปรับแต่งความลึกของการค้นหา
การติดตั้ง
โคลนที่เก็บ
git clone https://github.com/mahadev0811/CollegeChatbot.git
cd CollegeChatbot
สร้างสภาพแวดล้อมเสมือนจริง
python -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`
ติดตั้งการพึ่งพา
pip install -r requirements.txt
กำหนดค่าคีย์ API
- สร้างไฟล์
config.json ในไดเรกทอรีรูทด้วยคีย์ Google API ของคุณ:
{
"google_api_key" : " YOUR_GOOGLE_API_KEY "
}
การใช้งาน
เรียกใช้แอปพลิเคชัน
โต้ตอบกับ chatbot
- ใช้กล่องป้อนข้อความหรือเครื่องบันทึกเสียงเพื่อส่งแบบสอบถามของคุณ
- ปรับการตั้งค่าโดยใช้ตัวเลือกแถบด้านข้าง:
- โหมดคำถามติดตาม : สลับเพื่อใช้ประวัติการสนทนาสำหรับการตอบกลับ
- ค้นหาความลึก : ปรับจำนวนย่อหน้าเพื่อค้นหาในเอกสารสำหรับข้อมูลที่เกี่ยวข้อง
โครงสร้างโครงการ
- st_app.py : สคริปต์แอปพลิเคชันหลัก
- EMBEDDING_GENERATOR.PY : สคริปต์สำหรับการสร้าง EMBEDDING จากไฟล์ข้อมูล
- WebScrapper.ipynb : สมุดบันทึก Jupyter สำหรับการขูดข้อมูลข้อความจาก URL เพื่อสร้างไฟล์ข้อมูลดิบ
- config.json : ไฟล์กำหนดค่าสำหรับคีย์ API
- ข้อกำหนด. txt : รายการแพ็คเกจ Python ที่จำเป็น
- data_generation/gat_raw.txt : ข้อมูลดิบที่มีข้อมูลเกี่ยวกับ GAT
- data_generation/gat_refined.txt : ข้อมูลดิบที่ดูแลมนุษย์และแก้ไขของมนุษย์
- gat_embeddings.pkl : embeddings ที่คำนวณล่วงหน้าสำหรับเอกสารที่โหลดไว้ล่วงหน้า
การสร้างข้อมูล
ในการสร้างไฟล์ข้อมูลดิบเริ่มต้น ( gat_raw.txt ) ให้ใช้โน้ตบุ๊ก webscrapper.ipynb โน้ตบุ๊กนี้จะขูดเนื้อหาข้อความจาก URL และรูปแบบที่กำหนดไว้อย่างเหมาะสม
สร้างการฝังตัว
ในการสร้าง EMBEDDINGS จากไฟล์ข้อมูลของคุณให้ใช้สคริปต์ EMBEDDING_GENERATOR.PY สคริปต์นี้อ่านไฟล์ข้อความที่มีข้อมูลสร้าง EMBEDDING โดยใช้ โมเดล Flagembedding และบันทึกการฝังตัวเป็นไฟล์ดอง
เรียกใช้เครื่องกำเนิดไฟฟ้าฝัง
เตรียมไฟล์ข้อมูลของคุณ
- ตรวจสอบให้แน่ใจว่าไฟล์ข้อมูลของคุณ (เช่น data_generation/gat_refined.txt) อยู่ในรูปแบบที่ถูกต้องโดยมีย่อหน้าคั่นด้วย double newLines ( n n)
เรียกใช้สคริปต์
ภาพหน้าจอ
- วิดีโอนี้แสดงให้เห็นถึง chatbot ในการดำเนินการตอบคำถามเกี่ยวกับ GAT:
recordings.mp4
การให้เครดิต
- Flagembedding: โมเดลการฝังที่กำหนดเองที่ใช้สำหรับการเข้ารหัสแบบสอบถาม
- Streamlit: Framework แอพโอเพนซอร์ซสำหรับ ML และโครงการวิทยาศาสตร์ข้อมูล
- Hugging Face Transformers: ห้องสมุดสำหรับรุ่น NLP ที่ทันสมัย
- Google Cloud Speech-text ข้อความ API: บริการสำหรับการแปลงคำพูดเป็นข้อความ
- Google Generative AI: ใช้สำหรับสร้างคำตอบ
ใบอนุญาต
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT - ดูไฟล์ใบอนุญาตสำหรับรายละเอียด