อาชีพผู้ช่วยเศษผ้าขี้ริ้ว
ระบบ Generation-Augmented Retrieval-Augmented (RAG) ที่ช่วยให้การสืบค้นภาษาธรรมชาติของข้อมูลพอร์ตโฟลิโออาชีพที่เก็บไว้ในฐานข้อมูลความคิด ระบบใช้บริการ Llamaidex และ OpenAI ของบริการ Embedding/LLM ของ OpenAI เพื่อให้คำตอบที่ชาญฉลาดเกี่ยวกับประสบการณ์การทำงานโครงการและทักษะ
ภาพรวม
ระบบนี้ประกอบด้วยสององค์ประกอบหลัก:
ETL Pipeline : แยกข้อมูลจากฐานข้อมูลความคิดประมวลผลเป็น embeddings และเก็บไว้ในฐานข้อมูลเวกเตอร์
อินเทอร์เฟซแบบสอบถาม : เว็บแอปพลิเคชันแบบสตรีมที่เปิดใช้งานการโต้ตอบภาษาธรรมชาติกับข้อมูลพอร์ตโฟลิโอ
คุณสมบัติที่สำคัญ
- การสอบถามภาษาธรรมชาติอัจฉริยะของข้อมูลพอร์ตโฟลิโอ
- สถาปัตยกรรม Dual-Index (ข้อความและคำหลัก) สำหรับการดึงที่ดีขึ้น
- การสตรีมการตอบกลับแบบเรียลไทม์
- แผงดีบักเพื่อความโปร่งใสในกระบวนการ RAG
- ตัวอย่างแบบสอบถามเพื่อแสดงความสามารถ
- กำหนดค่าได้ผ่านตัวแปรสภาพแวดล้อม
โครงสร้างโครงการ
ไฟล์หลัก
notion_data_etl.ipynb : Jupyter Notebook สำหรับการแยกและประมวลผลข้อมูลความคิด
- จัดการการรับรองความถูกต้องและการเชื่อมต่อฐานข้อมูล
- ประมวลผลเอกสารลงในข้อความข้อความและคีย์เวิร์ดโหนด
- สร้างดัชนีเวกเตอร์เพื่อการดึงที่มีประสิทธิภาพ
streamlit_app_rag.py : อินเตอร์เฟสแอปพลิเคชันเว็บหลัก
- ใช้ UI ผู้ช่วยเศษผ้า
- จัดการประวัติการแชทและการดีบัก
- จัดการสตรีมการตอบกลับแบบเรียลไทม์
prompts.py : มีระบบแจ้งเตือนสำหรับ:
- การตั้งค่าบริบทสำหรับ LLM
- การสกัดคำหลัก
ส่วนประกอบสำคัญ
คลาส NotionProcessor
คลาสการประมวลผลข้อมูลที่ครอบคลุมซึ่ง:
- แยกข้อมูลจากฐานข้อมูลแนวคิด
- จัดการโครงสร้างเนื้อหาที่ซ้อนกัน
- ประมวลผลข้อความและข้อมูลเมตา
- รองรับโหมดการสกัดหลายโหมด (ส่วนหัว, ทั้งหมด, เม็ด)
คลาส ragapp
คลาสแอปพลิเคชันหลักที่:
- จัดการอินเทอร์เฟซ Streamlit
- จัดการปฏิสัมพันธ์การแชท
- ให้ความสามารถในการดีบัก
- รักษาสถานะเซสชัน
ข้อกำหนดการตั้งค่า
ตัวแปรสภาพแวดล้อม
NOTION_TOKEN=your_notion_api_token
NOTION_PROJECTS_DATABASE_ID=notion_database_id_for_projects
NOTION_EXPERIENCE_DATABASE_ID=notion_database_id_for_experiences
QDRANT_URL=your_qdrant_url
QDRANT_API_KEY=your_qdrant_api_key
OPENAI_API_KEY=your_openai_api_key
การพึ่งพาอาศัยกัน
- Python 3.10+
- llamainedex
- Openai
- มีแสงสว่าง
- qdrant
- ไคลเอนต์ความคิด API
การใช้งาน
- ตั้งค่าตัวแปรสภาพแวดล้อม
- เรียกใช้สมุดบันทึก ETL เพื่อประมวลผลข้อมูลแนวคิด
- เรียกใช้แอพ Streamlit เพื่อโต้ตอบกับข้อมูล
streamlit run streamlit_app_rag.py
สถาปัตยกรรม
ระบบใช้สถาปัตยกรรมดัชนีคู่:
- ดัชนีข้อความ : เก็บเนื้อหาเต็มสำหรับการดึงรายละเอียด
- ดัชนีคำหลัก : เก็บคำหลักที่แยกออกมาเพื่อปรับปรุงการจับคู่ความหมาย
แบบสอบถามจะถูกประมวลผลผ่านดัชนีทั้งสองเพื่อให้การตอบสนองที่ครอบคลุมและแม่นยำ
คุณสมบัติการดีบัก
ระบบประกอบด้วยแผงดีบั๊กที่ครอบคลุมซึ่งแสดง:
- ขั้นตอนการประมวลผลแบบสอบถาม
- รายละเอียดกระบวนการดึงข้อมูล
- การสร้างการตอบสนอง
- ข้อผิดพลาดหรือคำเตือนใด ๆ