แชทด้วย LLM เป็นเว็บแอปที่ให้ผู้ใช้สามารถแชทกับโมเดลภาษาขนาดใหญ่ (LLM) ต่างๆ จากผู้ให้บริการ AI ชั้นนำ ช่วยให้ผู้ใช้สามารถสลับโมเดลระหว่างการสนทนาได้โดยไม่สูญเสียบริบทการแชท
โปรเจ็กต์นี้รวมการสร้างข้อความที่ขับเคลื่อนด้วย API โดยใช้ Large Language Models (LLM) ต่างๆ เฟรมเวิร์กที่ใช้ในการประสานการโต้ตอบเหล่านี้คือ LangChain ซึ่งช่วยให้สามารถบูรณาการได้อย่างราบรื่นและการเลือกโมเดลแบบไดนามิกระหว่างผู้ให้บริการต่างๆ
ปัจจุบัน แพลตฟอร์มดังกล่าวรองรับผู้ให้บริการ LLM ที่แตกต่างกันหกราย โดยแต่ละรายเสนอรูปแบบการแชทที่หลากหลาย:
นั่นคือ
การรับรองความถูกต้อง : เว็บแอปพลิเคชันใช้ Google OAuth 2.0 เพื่อการตรวจสอบผู้ใช้และการเข้าสู่ระบบที่ปลอดภัย
เซิร์ฟเวอร์แบ็กเอนด์ : ข้อความผู้ใช้ได้รับการประมวลผล และการตอบกลับจาก LLM ถูกสร้างขึ้นโดยใช้เฟรมเวิร์ก FastAPI ของ Python แบ็กเอนด์ยังรวมเฟรมเวิร์ก LangChain ซึ่งรับผิดชอบในการสร้างและจัดการการเรียก API ไปยังผู้ให้บริการ LLM ต่างๆ
การสตรีมเหตุการณ์ : เหตุการณ์ที่เซิร์ฟเวอร์ส่ง (SSE) เป็นมาตรฐานสำหรับการสื่อสารแบบเรียลไทม์แบบทางเดียวจากเซิร์ฟเวอร์ไปยังไคลเอนต์ผ่าน HTTP เมื่อใช้ SSE เซิร์ฟเวอร์สามารถพุชโทเค็นข้อมูลที่สร้างขึ้นด้วยโทเค็นไปยังไคลเอ็นต์โดยที่ไคลเอ็นต์ไม่ต้องร้องขอซ้ำๆ
ฐานข้อมูล Firestore : ข้อมูลผู้ใช้ รายละเอียดการแชท และประวัติการแชทจะถูกจัดเก็บไว้ในฐานข้อมูล Firestore ของ Google Firestore ได้รับเลือกเนื่องจากมีรุ่นฟรี ประสิทธิภาพสูง และความสามารถในการปรับขนาดอัตโนมัติ ทำให้เหมาะสำหรับแอปพลิเคชันแบบไดนามิกที่กำลังเติบโต
ReactJS Frontend : ส่วนหน้าถูกสร้างขึ้นด้วย ReactJS ซึ่งให้อินเทอร์เฟซผู้ใช้แบบโต้ตอบและตอบสนองเพื่อการโต้ตอบกับแอปพลิเคชันแชทได้อย่างราบรื่น
ทำสำเนาของไฟล์ .env.example
และเปลี่ยนชื่อเป็น .env
:
cp .env.example .env # For Unix/Linux
copy .env.example .env # For Windows
เปิดไฟล์ .env
ในโปรแกรมแก้ไขข้อความและป้อนตัวแปรที่จำเป็นพร้อมค่าที่เกี่ยวข้อง โดยทั่วไปแล้วตัวแปรเหล่านี้จะเป็นคีย์ API และการกำหนดค่าเฉพาะสภาพแวดล้อมอื่นๆ
docker-compose up
บริการทั้งหมดจะเปิดใช้งานและทำงานบนพอร์ตต่อไปนี้:
Backend FastAPI : localhost:8080
ReactJS Frontend : localhost:3000
pip install pipenv
pipenv install
nodemon
or
uvicorn app:app --port 5000
cd web
npm install
npm start
เข้าถึงเอกสารผยองโดยใช้ลิงก์ด้านล่าง
http://localhost:8080/docs