مشروع تطبيق مفتوح المصدر وقابل للنشر دون اتصال بالإنترنت RAG و Agent يعتمد على نماذج لغوية كبيرة مثل ChatGLM و Qwen و Llama وإطار عمل Langchain.
نظرة عامة على مشروع Langchain-Chatchat
Langchain-Chatchat (الاسم الأصلي Langchain-ChatGLM) هو مشروع مفتوح المصدر وقابل للنشر دون اتصال بالإنترنت يعتمد على نماذج لغوية كبيرة وأطر تطبيق مثل Langchain، ويقوم بتنفيذ تطبيقات RAG (جيل معزز بالاسترجاع) و Agent. يهدف هذا المشروع إلى إنشاء مجموعة من حلول الإجابة على الأسئلة المستندة إلى قاعدة المعرفة الصديقة للسيناريوهات الصينية والنماذج مفتوحة المصدر، والقابلة للتشغيل دون اتصال بالإنترنت.
- عنوان GitHub: https://github.com/chatchat-space/Langchain-Chatchat
الميزات الأساسية
1. دعم نماذج متعددة
يدعم المشروع النماذج اللغوية الكبيرة مفتوحة المصدر السائدة في السوق:
- سلسلة GLM: GLM-4-Chat, ChatGLM، إلخ.
- سلسلة Qwen: Qwen2-Instruct, Qwen-VL-Chat، إلخ.
- سلسلة Llama: Llama3، إلخ.
- واجهات برمجة تطبيقات (API) عبر الإنترنت: يدعم استدعاء OpenAI GPT API
2. أطر نشر متعددة
يدعم أطر نشر نماذج متعددة، مما يوفر طرق وصول مرنة:
الإطار | Xinference | LocalAI | Ollama | FastChat |
---|---|---|---|---|
توافق واجهة OpenAI API | ✅ | ✅ | ✅ | ✅ |
محرك الاستدلال المتسارع | GPTQ, GGML, vLLM, TensorRT, mlx | GPTQ, GGML, vLLM, TensorRT | GGUF, GGML | vLLM |
أنواع النماذج المدعومة | LLM, Embedding, Rerank, Text-to-Image, Vision, Audio | LLM, Embedding, Rerank, Text-to-Image, Vision, Audio | LLM, Text-to-Image, Vision | LLM, Vision |
3. وظائف حوار غنية
يوفر الإصدار 0.3.x أوضاع حوار متعددة:
الوظيفة | 0.2.x | 0.3.x |
---|---|---|
حوار LLM | ✅ | ✅ |
حوار قاعدة المعرفة | ✅ | ✅ |
حوار محرك البحث | ✅ | ✅ |
حوار الملفات | ✅ استرجاع متجهي فقط | ✅ موحد كوظيفة File RAG، يدعم طرق استرجاع متعددة مثل BM25+KNN |
حوار قاعدة البيانات | ❌ | ✅ |
حوار الصور متعدد الوسائط | ❌ | ✅ يوصى باستخدام qwen-vl-chat |
حوار وثائق ARXIV | ❌ | ✅ |
حوار Wolfram | ❌ | ✅ |
توليد الصور من النص | ❌ | ✅ |
Agent | ❌ غير مستقر | ✅ مُحسَّن لـ ChatGLM3 و Qwen |
البنية التقنية
مبدأ تنفيذ RAG
تعتمد التقنية الأساسية للمشروع على بنية RAG (جيل معزز بالاسترجاع):
تحميل المستند ← قراءة النص ← تقسيم النص ← تحويل النص إلى متجه ← تحويل سؤال إلى متجه ←
مطابقة التشابه (Top-K) ← بناء السياق ← LLM توليد الإجابة
وظيفة Agent
يتم تنفيذ الوظائف الأساسية للإصدار 0.3.x بواسطة Agent، مما يوفر ثلاثة أوضاع تشغيل:
طريقة التشغيل | وظيفة التنفيذ | السيناريو المناسب |
---|---|---|
تمكين Agent + أدوات متعددة | استدعاء أداة LLM تلقائيًا | نماذج ChatGLM3/Qwen وما إلى ذلك التي لديها قدرات Agent |
تمكين Agent + أداة واحدة | LLM يحلل معلمات الأداة فقط | نماذج ذات قدرة Agent عامة، اختيار الوظيفة يدويًا |
عدم تمكين Agent + أداة واحدة | إدخال المعلمات يدويًا | نماذج لا تملك قدرات Agent |
التثبيت والنشر
1. تثبيت مكتبة Python
pip install langchain-chatchat -U
pip install "langchain-chatchat[xinference]" -U
2. متطلبات البيئة
- إصدار Python: 3.8-3.11
- نظام التشغيل: Windows, macOS, Linux
- دعم الأجهزة: CPU, GPU, NPU, MPS
3. خطوات التكوين
تعيين الدليل الجذر (اختياري)
# Linux/macOS
export CHATCHAT_ROOT=/path/to/chatchat_data
# Windows
set CHATCHAT_ROOT=/path/to/chatchat_data
تهيئة المشروع
chatchat init
تعديل ملف التكوين
تشمل ملفات التكوين الرئيسية:
model_settings.yaml
: تكوين النموذجbasic_settings.yaml
: تكوين المسار الأساسيkb_settings.yaml
: تكوين قاعدة المعرفة
تهيئة قاعدة المعرفة
chatchat kb -r
بدء الخدمة
chatchat start -a
4. نشر Docker
docker pull chatimage/chatchat:0.3.1.3-93e2c87-20240829
docker pull ccr.ccs.tencentyun.com/langchain-chatchat/chatchat:0.3.1.3-93e2c87-20240829
سيناريوهات الاستخدام
1. الإجابة على أسئلة قاعدة المعرفة المؤسسية
- إدارة المستندات واسترجاعها
- مشاركة المعرفة الداخلية
- أتمتة خدمة العملاء
2. البحث الأكاديمي
- استرجاع وتحليل الأدبيات
- حوار الأوراق الأكاديمية
- تنظيم مواد البحث
3. إدارة المعرفة الشخصية
- تنظيم المستندات الشخصية
- استرجاع الملاحظات الدراسية
- إدارة أرشفة المواد
الميزات والمزايا
- مفتوح المصدر بالكامل: يتبع بروتوكول Apache-2.0، الكود مفتوح بالكامل
- نشر دون اتصال بالإنترنت: يدعم التشغيل الكامل دون اتصال بالإنترنت، وحماية خصوصية البيانات
- صديق للغة الصينية: مُحسَّن للسيناريوهات الصينية، ويدعم النماذج الصينية
- إطار عمل مرن: يدعم أطر نشر نماذج متعددة
- وظائف غنية: يوفر RAG و Agent والوسائط المتعددة ووظائف أخرى
- سهولة النشر: يوفر تثبيت pip وطرق نشر Docker
المكدس التقني
- الإطار الأساسي: Langchain
- إطار عمل الويب: FastAPI, Streamlit
- قاعدة بيانات المتجهات: FAISS، إلخ.
- الاستدلال النموذجي: Xinference, Ollama, LocalAI, FastChat
- الوصول إلى واجهة برمجة التطبيقات (API): One API يدعم واجهات برمجة تطبيقات متعددة عبر الإنترنت
يوفر هذا المشروع حلاً كاملاً للمستخدمين الذين يحتاجون إلى بناء نظام إجابة على الأسئلة لقاعدة المعرفة المحلية، وهو مناسب بشكل خاص للمؤسسات والمستخدمين الأفراد الذين لديهم متطلبات صارمة لخصوصية البيانات.