يسهل هذا التطبيق إنشاء روبوت الدردشة من خلال الاستفادة من Next.js كواجهة أمامية وFastAPI كواجهة خلفية، وذلك باستخدام قوة LangChain لتفاعلات الويب الديناميكية.
يدمج التطبيق خادم Python/FastAPI في تطبيق Next.js ضمن المسار /api/
. يتم تحقيق ذلك من خلال عمليات إعادة الكتابة next.config.js
.config.js، وتوجيه أي طلبات /api/:path*
إلى خادم FastAPI الموجود في المجلد /api
. محليًا، يعمل FastAPI على 127.0.0.1:8000
، بينما في الإنتاج، يعمل كوظائف بدون خادم على 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 (الجيل المعزز للاسترجاع) على تحسين نماذج اللغة مع السياق المسترجع من قاعدة معارف مخصصة. تتضمن العملية جلب مستندات HTML، وتقسيمها إلى أجزاء، وتوجيه هذه الأجزاء باستخدام نماذج التضمين مثل OpenAI. تشكل هذه البيانات الموجهة مخزنًا متجهًا، مما يتيح عمليات البحث الدلالية بناءً على استعلامات المستخدم. يتم بعد ذلك استخدام الأجزاء ذات الصلة التي تم استرجاعها كسياق لنموذج اللغة، مما يشكل استجابة شاملة لاستفسارات المستخدم.
تقوم وظيفة get_vectorstore_from_url
باستخراج النص ومعالجته من عنوان URL محدد، بينما تشكل get_context_retriever_chain
سلسلة تسترد السياق ذي الصلة بسجل المحادثة بالكامل. ويضمن نهج خط الأنابيب هذا أن تكون الاستجابات دقيقة واعية بالسياق.