

استنساخ المستودع:
git clone https://github.com/open-kf/rag-gpt.git && cd rag-gptقبل بدء خدمة Rag-GPT ، تحتاج إلى تعديل التكوينات ذات الصلة للبرنامج لتهيئة بشكل صحيح.
cp env_of_openai .envالمتغيرات في .env
LLM_NAME= " OpenAI "
OPENAI_API_KEY= " xxxx "
GPT_MODEL_NAME= " gpt-4o-mini "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "
USE_GPT4O=0LLM_NAMEOPENAI_API_KEY مع المفتاح الخاص بك. يرجى تسجيل الدخول إلى موقع Openai لمشاهدة مفتاح API الخاص بك.GPT_MODEL_NAME ، واستبدال gpt-4o-mini باستخدام gpt-4-turbo أو gpt-4o إذا كنت تريد استخدام GPT-4.BOT_TOPIC لتعكس اسم الروبوت الخاص بك. هذا مهم للغاية ، حيث سيتم استخدامه في Prompt Construction . يرجى محاولة استخدام كلمة موجزة وواضحة ، مثل OpenIM ، LangChain .URL_PREFIX لمطابقة مجال موقع الويب الخاص بك. هذا أساسًا لإنشاء روابط URL التي يمكن الوصول إليها للملفات المحلية التي تم تحميلها. مثل http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE إلى 1 إذا كنت ترغب في استخدام LlamaParse .LLAMA_CLOUD_API_KEY مع المفتاح الخاص بك. يرجى تسجيل الدخول إلى موقع LlamaCloud لموقع مفتاح API الخاص بك.USE_GPT4O إلى 1 إذا كنت ترغب في استخدام وضع GPT-4o .server/constant . إذا لم تتمكن من استخدام خدمات API الخاصة بـ Openai ، ففكر في استخدام Zhipuai كبديل.
cp env_of_zhipuai .envالمتغيرات في .env
LLM_NAME= " ZhipuAI "
ZHIPUAI_API_KEY= " xxxx "
GLM_MODEL_NAME= " glm-4-air "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "LLM_NAMEZHIPUAI_API_KEY مع المفتاح الخاص بك. يرجى تسجيل الدخول إلى موقع zhipuai لعرض مفتاح API الخاص بك.GLM_MODEL_NAME ، قائمة النماذج هي ['glm-3-turbo', 'glm-4', 'glm-4-0520', 'glm-4-air', 'glm-4-airx', 'glm-4-flash'] .BOT_TOPIC لتعكس اسم الروبوت الخاص بك. هذا مهم للغاية ، حيث سيتم استخدامه في Prompt Construction . يرجى محاولة استخدام كلمة موجزة وواضحة ، مثل OpenIM ، LangChain .URL_PREFIX لمطابقة مجال موقع الويب الخاص بك. هذا أساسًا لإنشاء روابط URL التي يمكن الوصول إليها للملفات المحلية التي تم تحميلها. مثل http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE إلى 1 إذا كنت ترغب في استخدام LlamaParse .LLAMA_CLOUD_API_KEY مع المفتاح الخاص بك. يرجى تسجيل الدخول إلى موقع LlamaCloud لموقع مفتاح API الخاص بك.server/constant . إذا لم تتمكن من استخدام خدمات API الخاصة بـ Openai ، ففكر في استخدام Deepseek كبديل.
ملحوظة
لا توفر Deepseek Embedding API ، لذلك نستخدم هنا Embedding API Zhipuai.
cp env_of_deepseek .envالمتغيرات في .env
LLM_NAME= " DeepSeek "
ZHIPUAI_API_KEY= " xxxx "
DEEPSEEK_API_KEY= " xxxx "
DEEPSEEK_MODEL_NAME= " deepseek-chat "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "LLM_NAMEZHIPUAI_API_KEY مع المفتاح الخاص بك. يرجى تسجيل الدخول إلى موقع zhipuai لعرض مفتاح API الخاص بك.DEEPKSEEK_API_KEY مع المفتاح الخاص بك. يرجى تسجيل الدخول إلى موقع Deepseek لموقع API الخاص بك.DEEPSEEK_MODEL_NAME إذا كنت تريد استخدام نماذج أخرى من DeepSeek.BOT_TOPIC لتعكس اسم الروبوت الخاص بك. هذا مهم للغاية ، حيث سيتم استخدامه في Prompt Construction . يرجى محاولة استخدام كلمة موجزة وواضحة ، مثل OpenIM ، LangChain .URL_PREFIX لمطابقة مجال موقع الويب الخاص بك. هذا أساسًا لإنشاء روابط URL التي يمكن الوصول إليها للملفات المحلية التي تم تحميلها. مثل http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE إلى 1 إذا كنت ترغب في استخدام LlamaParse .LLAMA_CLOUD_API_KEY مع المفتاح الخاص بك. يرجى تسجيل الدخول إلى موقع LlamaCloud لموقع مفتاح API الخاص بك.server/constant . إذا لم تتمكن من استخدام خدمات API الخاصة بـ Openai ، ففكر في استخدام Moonshot كبديل.
ملحوظة
لا يوفر Moonshot Embedding API ، لذلك نستخدم هنا Embedding API Zhipuai.
cp env_of_moonshot .envالمتغيرات في .env
LLM_NAME= " Moonshot "
ZHIPUAI_API_KEY= " xxxx "
MOONSHOT_API_KEY= " xxxx "
MOONSHOT_MODEL_NAME= " moonshot-v1-8k "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "LLM_NAMEZHIPUAI_API_KEY مع المفتاح الخاص بك. يرجى تسجيل الدخول إلى موقع zhipuai لعرض مفتاح API الخاص بك.MOONSHOT_API_KEY مع المفتاح الخاص بك. يرجى تسجيل الدخول إلى موقع Moonshot على الويب لعرض مفتاح API الخاص بك.MOONSHOT_MODEL_NAME إذا كنت تريد استخدام نماذج أخرى من Moonshot.BOT_TOPIC لتعكس اسم الروبوت الخاص بك. هذا مهم للغاية ، حيث سيتم استخدامه في Prompt Construction . يرجى محاولة استخدام كلمة موجزة وواضحة ، مثل OpenIM ، LangChain .URL_PREFIX لمطابقة مجال موقع الويب الخاص بك. هذا أساسًا لإنشاء روابط URL التي يمكن الوصول إليها للملفات المحلية التي تم تحميلها. مثل http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE إلى 1 إذا كنت ترغب في استخدام LlamaParse .LLAMA_CLOUD_API_KEY مع المفتاح الخاص بك. يرجى تسجيل الدخول إلى موقع LlamaCloud لموقع مفتاح API الخاص بك.server/constant . إذا كانت قاعدة المعرفة الخاصة بك تتضمن معلومات حساسة وتفضل عدم استخدام LLMs المستندة إلى مجموعة النظراء ، ففكر في استخدام Ollama لنشر نماذج كبيرة محليًا.
ملحوظة
أولاً ، ارجع إلى Ollama لتثبيت Ollama ، وتنزيل نموذج التضمين mxbai-embed-large ونموذج LLM مثل llama3 .
cp env_of_ollama .envالمتغيرات في .env
LLM_NAME= " Ollama "
OLLAMA_MODEL_NAME= " xxxx "
OLLAMA_BASE_URL= " http://127.0.0.1:11434 "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "LLM_NAMEOLLAMA_MODEL_NAME ، حدد نموذجًا مناسبًا من مكتبة Ollama.IP:PORT عند بدء تشغيل Ollama ، فيرجى تحديث OLLAMA_BASE_URL . يرجى إيلاء اهتمام خاص ، فقط أدخل IP (المجال) والمنفذ هنا ، دون إلحاق URI.BOT_TOPIC لتعكس اسم الروبوت الخاص بك. هذا مهم للغاية ، حيث سيتم استخدامه في Prompt Construction . يرجى محاولة استخدام كلمة موجزة وواضحة ، مثل OpenIM ، LangChain .URL_PREFIX لمطابقة مجال موقع الويب الخاص بك. هذا أساسًا لإنشاء روابط URL التي يمكن الوصول إليها للملفات المحلية التي تم تحميلها. مثل http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf .USE_LLAMA_PARSE إلى 1 إذا كنت ترغب في استخدام LlamaParse .LLAMA_CLOUD_API_KEY مع المفتاح الخاص بك. يرجى تسجيل الدخول إلى موقع LlamaCloud لموقع مفتاح API الخاص بك.server/constant .ملحوظة
عند الانتشار مع Docker ، انتبه بشكل خاص إلى مضيف url_prefix في ملف .env . في حالة استخدام Ollama ، إيلاء اهتمام خاص لمضيف Ollama_base_url في ملف .env . إنهم بحاجة إلى استخدام عنوان IP الفعلي للجهاز المضيف.
docker-compose up --buildملحوظة
يرجى استخدام Python الإصدار 3.10.x أو أعلى.
يوصى بتثبيت التبعيات ذات الصلة بايثون في بيئة افتراضية بيثون لتجنب التأثير على تبعيات المشاريع الأخرى.
إذا لم تقم بإنشاء بيئة افتراضية بعد ، فيمكنك إنشاء واحدة مع الأمر التالي:
python3 -m venv myenvبعد الخلق ، قم بتفعيل البيئة الافتراضية:
source myenv/bin/activate بمجرد تنشيط البيئة الافتراضية ، يمكنك استخدام pip لتثبيت التبعيات المطلوبة.
pip install -r requirements.txtتستخدم خدمة Rag-GPT SQLite كـ DB التخزين. قبل بدء خدمة Rag-GPT ، تحتاج إلى تنفيذ الأمر التالي لتهيئة قاعدة البيانات وإضافة التكوين الافتراضي لوحدة التحكم في المسؤول.
python3 create_sqlite_db.pyإذا كنت قد أكملت الخطوات أعلاه ، فيمكنك محاولة بدء خدمة Rag-GPT من خلال تنفيذ الأمر التالي.
python3 rag_gpt_app.pysh start.shملحوظة
7000 . أثناء الاختبار الأول ، يرجى محاولة عدم تغيير المنفذ حتى تتمكن من تجربة عملية المنتج بأكملها بسرعة.start.sh في وضع متعدد العمليات لتجربة مستخدم أكثر سلاسة. قم بالوصول إلى وحدة التحكم من خلال الرابط http://your-server-ip:7000/open-kf-admin/ للوصول إلى صفحة تسجيل الدخول. اسم المستخدم وكلمة المرور الافتراضية هما admin و open_kf_AIGC@2024 (يمكن التحقق منه في create_sqlite_db.py ).

بعد تسجيل الدخول بنجاح ، ستتمكن من رؤية صفحة التكوين لوحدة التحكم في المسؤول.

في الصفحة http://your-server-ip:7000/open-kf-admin/#/ ، يمكنك تعيين التكوينات التالية:
gpt-3.5-turbo ، والذي سيتم توسيعه تدريجياً. بعد إرسال عنوان URL لموقع الويب ، بمجرد استرداد الخادم قائمة جميع عناوين URL لصفحات الويب عبر الزحف ، يمكنك تحديد عنوان URL لصفحة الويب التي تحتاجها كقاعدة المعرفة (كلها محددة افتراضيًا). يتم Recorded Status الأولية.

يمكنك تحديث الصفحة http://your-server-ip:7000/open-kf-admin/#/source في متصفحك للحصول على تقدم معالجة عنوان URL لصفحة الويب. بعد زحف محتوى عنوان URL لصفحة الويب ، ويتم الانتهاء من حساب التضمين وتخزينه ، يمكنك رؤية Size المقابل في وحدة التحكم في المسؤول ، وسيتم تحديث Status أيضًا إلى Trained .

يكشف النقر فوق عنوان URL الخاص بصفحة الويب عن عدد الصفحات الفرعية التي تنقسمها صفحة الويب إليها ، وحجم النص لكل صفحة فرعية.

يتيح لك النقر على صفحة فرعية عرض محتوى النص الكامل. سيكون هذا مفيدًا للغاية للتحقق من التأثيرات أثناء عملية اختبار التجربة.

جمع عناوين URL لصفحات الويب المطلوبة. يمكنك إرسال ما يصل إلى 10 عناوين URL لصفحة الويب في وقت واحد ، ويمكن أن تكون هذه الصفحات من مجالات مختلفة.

تحميل الملفات المحلية المطلوبة. يمكنك تحميل ما يصل إلى 10 ملفات في وقت واحد ، ولا يمكن أن يتجاوز كل ملف 30MB . يتم دعم أنواع الملفات التالية حاليًا: [".txt", ".md", ".pdf", ".epub", ".mobi", ".html", ".docx", ".pptx", ".xlsx", ".csv"] .

بعد استيراد بيانات موقع الويب في وحدة التحكم في المسؤول ، يمكنك تجربة خدمة chatbot من خلال الرابط http://your-server-ip:7000/open-kf-chatbot/ .

من خلال ارتباط Console Console http://your-server-ip:7000/open-kf-admin/#/embed ، يمكنك رؤية البرنامج التعليمي التفصيلي لتكوين iFrame في موقع الويب الخاص بك.


من خلال ارتباط Console Admin http://your-server-ip:7000/open-kf-admin/#/dashboard ، يمكنك عرض سجلات الطلبات التاريخية لجميع المستخدمين ضمن نطاق زمني محدد.

تدمج خدمة Rag-GPT وحدتي الواجهة الأمامية ، ومعلومات رمز المصدر الخاصة بهم هي كما يلي:
كود مستودع
واجهة المسؤول المستند إلى الويب البديهية لخدمة ضمان الجودة الذكية ، توفر تحكمًا شاملاً في المحتوى والتكوين وتفاعلات المستخدم. يتيح الإدارة دون عناء لقاعدة المعرفة ، والمراقبة في الوقت الفعلي للاستعلامات والتعليقات ، والتحسين المستمر بناءً على رؤى المستخدم.
كود مستودع
واجهة HTML5 لخدمة ضمان الجودة الذكية المصممة لسهولة التكامل في مواقع الويب عبر IFRAME ، مما يوفر للمستخدمين الوصول المباشر إلى قاعدة المعرفة المصممة خصيصًا دون مغادرة الموقع ، وتعزيز الوظائف ودقة الاستعلام الفورية.