واجهة مستخدم RAG نظيفة ومفتوحة المصدر وقابلة للتخصيص للدردشة مع مستنداتك. تم تصميمه مع وضع المستخدمين النهائيين والمطورين في الاعتبار.
العرض المباشر | التثبيت عبر الإنترنت | دليل المستخدم | دليل المطور | ردود الفعل | اتصال
يعمل هذا المشروع بمثابة واجهة مستخدم RAG وظيفية لكل من المستخدمين النهائيين الذين يرغبون في إجراء ضمان الجودة على مستنداتهم والمطورين الذين يرغبون في إنشاء خط أنابيب RAG الخاص بهم.
+------------------------------------------------- ---------------------------+| المستخدمون النهائيون: أولئك الذين يستخدمون التطبيقات المبنية باستخدام "kotaemon". || (يمكنك استخدام تطبيق مثل التطبيق الموجود في العرض التوضيحي أعلاه) || +------------------------------------------------- ---------------+ || | المطورون: أولئك الذين بنوا باستخدام "kotaemon". | || | (لديك `import kotaemon` في مكان ما في مشروعك) | || | +------------------------------------------------- ---+ | || | | المساهمين: أولئك الذين يجعلون "kotaemon" أفضل. | | || | | (يمكنك إجراء العلاقات العامة لهذا الريبو) | | || | +------------------------------------------------- ---+ | || +------------------------------------------------- ---------------+ |+-------------------------------- --------------------------------------------+
واجهة مستخدم نظيفة وبسيطة : واجهة سهلة الاستخدام لضمان الجودة المستندة إلى RAG.
دعم LLMs المختلفة : متوافق مع موفري LLM API (OpenAI وAzureOpenAI وCohere وما إلى ذلك) وLLMs المحليين (عبر ollama
و llama-cpp-python
).
سهولة التثبيت : نصوص برمجية بسيطة تساعدك على البدء بسرعة.
إطار عمل لخطوط أنابيب RAG : أدوات لإنشاء خط أنابيب ضمان الجودة المستند إلى RAG الخاص بك.
واجهة مستخدم قابلة للتخصيص : شاهد مسار RAG الخاص بك أثناء العمل باستخدام واجهة المستخدم المتوفرة، والتي تم إنشاؤها باستخدام Gradio.
موضوع Gradio : إذا كنت تستخدم Gradio للتطوير، فاطلع على موضوعنا هنا: kotaemon-gradio-theme.
قم باستضافة واجهة المستخدم الخاصة بك على الويب QA (RAG) للمستند الخاص بك : دعم تسجيل الدخول لعدة مستخدمين، وتنظيم ملفاتك في مجموعات خاصة/عامة، والتعاون ومشاركة الدردشة المفضلة لديك مع الآخرين.
تنظيم نماذج LLM والتضمين الخاصة بك : دعم كل من LLMs المحليين وموفري واجهة برمجة التطبيقات المشهورين (OpenAI وAzure وOllama وGroq).
خط أنابيب RAG الهجين : خط أنابيب RAG الافتراضي السليم مع مسترد هجين (نص كامل ومتجه) وإعادة ترتيب لضمان أفضل جودة استرجاع.
دعم ضمان الجودة متعدد الوسائط : قم بإجراء الإجابة على الأسئلة على مستندات متعددة باستخدام دعم الأشكال والجداول. دعم تحليل المستندات متعدد الوسائط (خيارات قابلة للتحديد في واجهة المستخدم).
الاستشهادات المتقدمة مع معاينة المستند : افتراضيًا، سيوفر النظام استشهادات مفصلة لضمان صحة إجابات ماجستير إدارة الأعمال. عرض الاستشهادات الخاصة بك (بما في ذلك النتيجة ذات الصلة) مباشرة في عارض PDF الموجود في المتصفح مع المميزات. تحذير عند قيام خط الاسترجاع بإرجاع مقالات ذات صلة منخفضة.
دعم أساليب التفكير المعقدة : استخدم تحليل الأسئلة للإجابة على سؤالك المعقد/متعدد القفزات. دعم المنطق القائم على الوكيل باستخدام ReAct
و ReWOO
والوكلاء الآخرين.
واجهة مستخدم الإعدادات القابلة للتكوين : يمكنك ضبط أهم جوانب عملية الاسترداد والإنشاء على واجهة المستخدم (بما في ذلك المطالبات).
قابل للتوسيع : كونه مبنيًا على Gradio، فأنت حر في تخصيص أو إضافة أي عناصر واجهة مستخدم كما تريد. كما نهدف أيضًا إلى دعم استراتيجيات متعددة لفهرسة المستندات واسترجاعها. يتم توفير خط أنابيب فهرسة GraphRAG
كمثال.
إذا لم تكن مطورًا وتريد فقط استخدام التطبيق، فيرجى مراجعة دليل المستخدم سهل المتابعة. قم بتنزيل ملف
.zip
من الإصدار الأحدث للحصول على أحدث الميزات وإصلاحات الأخطاء.
بايثون >= 3.10
Docker: اختياري، إذا قمت بالتثبيت باستخدام Docker
غير منظم إذا كنت تريد معالجة ملفات بخلاف مستندات .pdf
و .html
و .mhtml
و .xlsx
. تختلف خطوات التثبيت حسب نظام التشغيل الخاص بك. يرجى زيارة الرابط واتباع التعليمات المحددة المقدمة هناك.
نحن ندعم كلا من الإصدار lite
full
من صور Docker. مع full
، سيتم تثبيت الحزم الإضافية unstructured
أيضًا، ويمكنها دعم أنواع ملفات إضافية ( .doc
، .docx
، ...) ولكن التكلفة تكون أكبر في حجم صورة عامل الإرساء. بالنسبة لمعظم المستخدمين، يجب أن تعمل الصورة lite
بشكل جيد في معظم الحالات.
لاستخدام النسخة lite
.
تشغيل عامل الميناء -e GRADIO_SERVER_NAME=0.0.0.0 -e GRADIO_SERVER_PORT=7860 -ص 7860:7860 -it --rm ghcr.io/cinnamon/kotaemon:main-lite
لاستخدام النسخة full
.
تشغيل عامل الميناء -e GRADIO_SERVER_NAME=0.0.0.0 -e GRADIO_SERVER_PORT=7860 -ص 7860:7860 -it --rm ghcr.io/cinnamon/kotaemon:main-full
نحن حاليًا ندعم ونختبر نظامين أساسيين: linux/amd64
و linux/arm64
(لأجهزة Mac الأحدث). يمكنك تحديد النظام الأساسي عن طريق تمرير --platform
في أمر docker run
. على سبيل المثال:
# لتشغيل عامل الإرساء باستخدام النظام الأساسي linux/arm64docker run -e GRADIO_SERVER_NAME=0.0.0.0 -e GRADIO_SERVER_PORT=7860 -ص 7860:7860 -it --rm --منصة لينكس/arm64 ghcr.io/cinnamon/kotaemon:main-lite
بمجرد إعداد كل شيء بشكل صحيح، يمكنك الانتقال إلى http://localhost:7860/
للوصول إلى WebUI.
نحن نستخدم GHCR لتخزين صور عامل الإرساء، ويمكن العثور على جميع الصور هنا.
استنساخ الحزم المطلوبة وتثبيتها على بيئة بايثون جديدة.
# اختياري (بيئة الإعداد)conda create -n kotaemon python=3.10 كوندا تنشيط kotaemon # استنساخ استنساخ repogit هذا https://github.com/Cinnamon/kotaemoncd kotaemon تثبيت النقطة -e "libs/kotaemon[all]"تثبيت النقطة -e "libs/ktem"
قم بإنشاء ملف .env
في جذر هذا المشروع. استخدم .env.example
كقالب
يوجد ملف .env
لخدمة حالات الاستخدام حيث يرغب المستخدمون في تكوين النماذج مسبقًا قبل بدء تشغيل التطبيق (على سبيل المثال، نشر التطبيق على مركز HF). سيتم استخدام الملف لملء قاعدة البيانات مرة واحدة فقط عند التشغيل الأول، ولن يتم استخدامه بعد ذلك في عمليات التشغيل اللاحقة.
(اختياري) لتمكين عارض PDF_JS
داخل المتصفح، قم بتنزيل PDF_JS_DIST ثم استخرجه إلى libs/ktem/ktem/assets/prebuilt
بدء تشغيل خادم الويب:
بيثون app.py
سيتم تشغيل التطبيق تلقائيًا في متصفحك.
اسم المستخدم وكلمة المرور الافتراضيان هما admin
. يمكنك إعداد مستخدمين إضافيين مباشرة من خلال واجهة المستخدم.
تحقق من علامة التبويب Resources
و LLMs and Embeddings
وتأكد من تعيين قيمة api_key
بشكل صحيح من ملف .env
الخاص بك. إذا لم يتم تعيينه، يمكنك تعيينه هناك.
ملحوظة
تعمل فهرسة MS GraphRAG الرسمية فقط مع OpenAI أو Ollama API. نوصي معظم المستخدمين باستخدام تطبيق NanoGraphRAG للتكامل المباشر مع Kotaemon.
تثبيت nano-GraphRAG: pip install nano-graphrag
قد يؤدي تثبيت nano-graphrag
إلى ظهور تعارضات في الإصدار، راجع هذه المشكلة
للإصلاح بسرعة: pip uninstall hnswlib chroma-hnswlib && pip install chroma-hnswlib
قم بتشغيل Kotaemon باستخدام USE_NANO_GRAPHRAG=true
.
قم بتعيين نماذج LLM والتضمين الافتراضية الخاصة بك في إعداد الموارد وسيتم التعرف عليها تلقائيًا من NanoGraphRAG.
تثبيت غير Docker : إذا كنت لا تستخدم Docker، فقم بتثبيت GraphRAG باستخدام الأمر التالي:
نقطة تثبيت graphrag المستقبل
إعداد API KEY : لاستخدام ميزة استرداد GraphRAG، تأكد من تعيين متغير البيئة GRAPHRAG_API_KEY
. يمكنك القيام بذلك مباشرة في بيئتك أو عن طريق إضافته إلى ملف .env
.
استخدام النماذج المحلية والإعدادات المخصصة : إذا كنت تريد استخدام GraphRAG مع النماذج المحلية (مثل Ollama
) أو تخصيص LLM الافتراضي والتكوينات الأخرى، فاضبط متغير البيئة USE_CUSTOMIZED_GRAPHRAG_SETTING
على true. ثم قم بضبط إعداداتك في ملف settings.yaml.example
.
راجع إعداد النموذج المحلي.
بشكل افتراضي، يتم تخزين جميع بيانات التطبيق في المجلد ./ktem_app_data
. يمكنك عمل نسخة احتياطية من هذا المجلد أو نسخه لنقل التثبيت إلى جهاز جديد.
بالنسبة للمستخدمين المتقدمين أو حالات الاستخدام المحددة، يمكنك تخصيص هذه الملفات:
flowsettings.py
.env
flowsettings.py
يحتوي هذا الملف على تكوين التطبيق الخاص بك. يمكنك استخدام المثال هنا كنقطة بداية.
# إعداد مخزن المستندات المفضل لديك (مع إمكانيات البحث عن النص الكامل)KH_DOCSTORE=(Elasticsearch | LanceDB | SimpleFileDocumentStore)# إعداد مخزن المتجهات المفضل لديك (للبحث القائم على المتجهات)KH_VECTORSTORE=(ChromaDB | LanceDB | InMemory | Qdrant)# تمكين / تعطيل متعدد الوسائط QAKH_REASONINGS_USE_MULTIMODAL=True# قم بإعداد مسار الاستدلال الجديد أو تعديل المسار الحالي.KH_REASONINGS = ["ktem.reasoning.simple.FullQAPipeline"، "ktem.reasoning.simple.FullDecomposeQAPipeline"، "ktem.reasoning.react.ReactAgentPipeline"، "ktem" .reasoning.rewoo.RewooAgentPipeline"، ]
.env
يوفر هذا الملف طريقة أخرى لتكوين النماذج وبيانات الاعتماد الخاصة بك.
وبدلاً من ذلك، يمكنك تكوين النماذج عبر ملف .env
بالمعلومات المطلوبة للاتصال بـ LLMs. هذا الملف موجود في مجلد التطبيق. إذا كنت لا ترى ذلك، يمكنك إنشاء واحد.
حاليًا، يتم دعم مقدمي الخدمات التاليين:
باستخدام خادم متوافق مع ollama
OpenAI:
استخدام GGUF
مع llama-cpp-python
يمكنك البحث عن LLM وتنزيله ليتم تشغيله محليًا من Hugging Face Hub. حاليًا، يتم دعم تنسيقات النماذج هذه:
قم بتثبيت ollama وابدأ التطبيق.
اسحب النموذج الخاص بك، على سبيل المثال:
أولاما سحب اللاما3.1:8ب ollama سحب النص nomic-embed
قم بتعيين أسماء النماذج على واجهة مستخدم الويب واجعلها افتراضية:
GGUF
يجب عليك اختيار موديل حجمه أقل من ذاكرة جهازك ويجب أن يترك حوالي 2 جيجا بايت. على سبيل المثال، إذا كان لديك إجمالي 16 جيجابايت من ذاكرة الوصول العشوائي، منها 12 جيجابايت متاحة، فيجب عليك اختيار طراز يستهلك 10 جيجابايت من ذاكرة الوصول العشوائي على الأكثر. تميل النماذج الأكبر حجمًا إلى توفير إنتاج أفضل ولكنها تستغرق أيضًا وقتًا أطول في المعالجة.
فيما يلي بعض التوصيات وحجمها في الذاكرة:
Qwen1.5-1.8B-Chat-GGUF: حوالي 2 جيجابايت
قم بإضافة نموذج LlamaCpp جديد باسم النموذج المقدم على واجهة مستخدم الويب.
OpenAI
في ملف .env
، قم بتعيين المتغير OPENAI_API_KEY
باستخدام مفتاح OpenAI API الخاص بك لتمكين الوصول إلى نماذج OpenAI. هناك متغيرات أخرى يمكن تعديلها، فلا تتردد في تعديلها لتناسب حالتك. وبخلاف ذلك، يجب أن تعمل المعلمة الافتراضية لمعظم الأشخاص.
OPENAI_API_BASE=https://api.openai.com/v1 OPENAI_API_KEY=<مفتاح OpenAI API الخاص بك هنا>OPENAI_CHAT_MODEL=gpt-3.5-turbo OPENAI_EMBEDDINGS_MODEL=text-embedding-ada-002
أزور أوبن إيه آي
بالنسبة لنماذج OpenAI عبر منصة Azure، يتعين عليك توفير نقطة نهاية Azure ومفتاح واجهة برمجة التطبيقات (API). قد تحتاج أيضًا إلى تقديم اسم التطويرات الخاصة بك لنموذج الدردشة ونموذج التضمين اعتمادًا على كيفية إعداد تطوير Azure.
AZURE_OPENAI_ENDPOINT= AZURE_OPENAI_API_KEY= OPENAI_API_VERSION=2024-02-15-معاينة AZURE_OPENAI_CHAT_DEPLOYMENT=gpt-35-turbo AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT=text-embedding-ada-002
النماذج المحلية
تحقق من تنفيذ خط الأنابيب الافتراضي هنا. يمكنك إجراء تعديل سريع على كيفية عمل مسار ضمان الجودة الافتراضي.
أضف تطبيق .py
جديد في libs/ktem/ktem/reasoning/
وأدرجه لاحقًا في flowssettings
لتمكينه على واجهة المستخدم.
تحقق من تنفيذ العينة في libs/ktem/ktem/index/file/graph
(مزيد من التعليمات WIP).
وبما أن مشروعنا قيد التطوير بشكل نشط، فإننا نقدر بشدة تعليقاتك ومساهماتك. يرجى الاطلاع على دليل المساهمة الخاص بنا للبدء. شكرا لجميع المساهمين لدينا!