แอปพลิเคชันนี้อำนวยความสะดวกให้กับแชทบอทโดยใช้ประโยชน์จาก Next.js เป็นส่วนหน้าและ FastAPI เป็นแบ็คเอนด์ โดยใช้พลังของ LangChain สำหรับการโต้ตอบบนเว็บแบบไดนามิก
แอปพลิเคชันจะรวมเซิร์ฟเวอร์ Python/FastAPI เข้ากับแอป Next.js ภายใต้เส้นทาง /api/
ซึ่งสามารถทำได้โดยการเขียน next.config.js
ใหม่ โดยกำหนดทิศทางคำขอ /api/:path*
ใดๆ ไปยังเซิร์ฟเวอร์ FastAPI ที่อยู่ในโฟลเดอร์ /api
ภายในเครื่อง FastAPI ทำงานบน 127.0.0.1:8000
ในขณะที่ใช้งานจริง FastAPI ทำงานเป็นฟังก์ชันไร้เซิร์ฟเวอร์บน Vercel
npm install
.env
ด้วยคีย์ OpenAI API ของคุณ: OPENAI_API_KEY=[your-openai-api-key]
npm run dev
สำหรับการทดสอบแบ็กเอนด์เท่านั้น:
conda create --name nextjs-fastapi-your-chat python=3.10
conda activate nextjs-fastapi-your-chat
pip install -r requirements.txt
uvicorn api.index:app --reload
ตัวเลือกสำหรับการเก็บประวัติการแชทได้แก่:
RAG (Retrieval Augmented Generation) ปรับปรุงโมเดลภาษาด้วยบริบทที่ดึงมาจากฐานความรู้ที่กำหนดเอง กระบวนการนี้เกี่ยวข้องกับการดึงเอกสาร HTML แบ่งออกเป็นส่วนๆ และทำเวกเตอร์ส่วนต่างๆ เหล่านี้โดยใช้โมเดลการฝังเช่น OpenAI ข้อมูลเวกเตอร์นี้สร้างที่เก็บเวกเตอร์ ซึ่งช่วยให้สามารถค้นหาความหมายตามคำค้นหาของผู้ใช้ จากนั้นส่วนที่เกี่ยวข้องที่ดึงข้อมูลมาจะถูกใช้เป็นบริบทสำหรับโมเดลภาษา เพื่อสร้างคำตอบที่ครอบคลุมต่อการสอบถามของผู้ใช้
ฟังก์ชัน get_vectorstore_from_url
แยกและประมวลผลข้อความจาก URL ที่กำหนด ในขณะที่ get_context_retriever_chain
จะสร้างสายโซ่ที่ดึงบริบทที่เกี่ยวข้องกับประวัติการสนทนาทั้งหมด วิธีการไปป์ไลน์นี้ช่วยให้แน่ใจว่าการตอบสนองมีการรับรู้ตามบริบทและถูกต้องแม่นยำ