ยินดีต้อนรับสู่ Reddit Post Summarizer Chat Interface แอปพลิเคชั่นที่ใช้ความคล่องตัวนี้ช่วยให้ผู้ใช้สามารถแยกและสรุปเนื้อหาจาก URL reddit ได้อย่างราบรื่นและถือเซสชัน QA นี่เป็นความพยายามครั้งแรกของฉันในการใช้ LLMS กับเวกเตอร์ DBS สำหรับ QA การสรุปวัตถุประสงค์ในการปรับแต่ง

แอปพลิเคชันเริ่มต้นด้วยอินเทอร์เฟซแชทที่ใช้งานง่าย ผู้ใช้สามารถป้อน url reddit ลงในช่องค้นหาและระบบดำเนินการตามขั้นตอนต่อไปนี้:
การตรวจสอบ URL : แอปพลิเคชันตรวจสอบว่า URL ที่ป้อนเป็นของ Reddit หรือไม่
การรวมตัวของ PRAW : เมื่อมีการตรวจสอบ URL ที่ประสบความสำเร็จ Wrapper Python Reddit API (PRAW) จะถูกนำมาใช้เพื่อแยกเนื้อหาของโพสต์ Reddit ซึ่งรวมถึงข้อความตัวเองและความคิดเห็นที่เกี่ยวข้องกับโพสต์
การถ่ายภาพและการฝังข้อมูล : ข้อความและความคิดเห็นที่ดึงมาได้นั้นถูกแบ่งออกเป็นส่วนเล็ก ๆ ที่ย่อยได้ (ชิ้น) แต่ละก้อนจะถูกฝังและ embeddings จะถูกเก็บไว้ในฐานข้อมูลเวกเตอร์ pinecone ขั้นตอนนี้เป็นสิ่งจำเป็นสำหรับการดึงข้อมูลที่มีประสิทธิภาพและรวดเร็ว
หลังจากกระบวนการสกัดและการฝังแอปพลิเคชันจะสร้างบทสรุปของโพสต์ reddit โดยใช้รูปแบบภาษา (LLM) เช่น OpenAI GPT-3.5 กระบวนการสรุปสามารถแบ่งออกเป็นขั้นตอนต่อไปนี้:
การสร้างก้อน : ข้อความที่มีขนาดที่เหมาะสมถูกสร้างขึ้นโดยการสรุปชิ้นส่วนซ้ำจนกว่าจะพอดีกับขีด จำกัด โทเค็นของ LLM
การโต้ตอบแบบจำลอง LLM : พรอมต์สรุปจะถูกส่งไปยังโมเดล LLM ซึ่งต่อมาจะส่งคืนสรุปสรุปของโพสต์ สรุปนี้รวบรวมสาระสำคัญของเนื้อหา reddit
แอปพลิเคชันมีอินเทอร์เฟซแชทที่ผู้ใช้สามารถโต้ตอบกับระบบและถามคำถามเกี่ยวกับโพสต์ Reddit อินเทอร์เฟซแชทมีคุณสมบัติที่แตกต่างกัน:
การประมวลผลคำถามตามบริบท : เมื่อผู้ใช้ถามคำถามระบบจะฝังคำถามและค้นหาฐานข้อมูลเวกเตอร์สำหรับความคล้ายคลึงกันในบริบท มันดึงบริบทที่เกี่ยวข้องและต่อท้ายคำถามของผู้ใช้ซึ่งเป็นส่วนหนึ่งของพรอมต์
การสร้างคำตอบ : พรอมต์ขยายนี้จะถูกส่งไปยังโมเดล LLM ซึ่งสร้างคำตอบโดยละเอียดและรับรู้ตามบริบท
การปรับแต่งแบบจำลอง : เพื่อให้แน่ใจว่าคำตอบนั้นมีสไตล์ Reddit โมเดล LLM สามารถปรับแต่งได้อย่างละเอียดด้วยคู่ตอบคำถาม Reddit ส่งคำตอบที่สอดคล้องกับภาษาชุมชนของ Reddit
หนึ่งในคุณสมบัติที่เป็นเอกลักษณ์ของแอปพลิเคชันคือความสามารถสำหรับผู้ใช้ในการเลือกรูปแบบภาษาที่ต้องการใช้ ความยืดหยุ่นนี้ได้รับการอำนวยความสะดวกโดย Langchain เครื่องมือที่ช่วยให้แอปพลิเคชันสามารถสลับระหว่างรุ่น LLM ที่แตกต่างกันได้อย่างราบรื่นตามการตั้งค่าของผู้ใช้
cp .env.example .env
docker build -t reddit-gpt .
docker run -d --env-file .env -p 8501:8501 reddit-gpt