باستخدام المجموعة الصينية المثيرة للاهتمام qingyun، روبوت الدردشة الصيني الذي كتبه @Doragd: snowman:
رغم أنها ليست مثالية :muscle:, ليست رائعة إلى هذا الحد :paw_prints:
لكن تم ترميزها بنفسي:sparkling_heart:، لذا
آمل أن يتمكن الجميع من إعطاء المزيد من النجوم لدعم مبتدئ البرمجة اللغوية العصبية وأصدقائه؟
هذا المشروع هو في الواقع وحدة فرعية لتصميم دورة هندسة البرمجيات. هدفنا هو تطوير نظام ذكي لمعالجة تذاكر خدمة العملاء.
سير العمل الفعلي لنظام أمر عمل خدمة العملاء الذكي هو: عندما يطرح شخص ما سؤالاً على النظام، يبحث النظام أولاً في قاعدة المعرفة لمعرفة ما إذا كان هناك سؤال ذو صلة، وإذا كان الأمر كذلك، فإنه يعيد الإجابة على السؤال. إذا لم يكن الشخص راضيًا في هذا الوقت، فيمكنه تقديم أمر عمل مباشرةً. إذا لم يكن موجودًا في قاعدة المعرفة، فسيتم استدعاء برنامج الدردشة هذا للرد التلقائي.
يشبه سيناريو الخدمة لهذا النظام نظام خدمة العملاء في Tencent Cloud. يأتي العملاء في الغالب للتشاور مع المشكلات ذات الصلة (الخوادم السحابية، وأسماء النطاقات، وما إلى ذلك)، وبالتالي فإن قاعدة المعرفة هي أيضًا مجموعة من الاستشارات واستكشاف الأخطاء وإصلاحها (الأسئلة والأجوبة). حول الخوادم السحابية وأسماء النطاقات وما إلى ذلك.
تم إكمال الواجهة الأمامية للنظام وتفاعل الرسائل الأمامية والخلفية بواسطة زميل آخر @adjlyadv، وذلك باستخدام React+Django بشكل أساسي.
@Doragd مسؤول عن الحصول على قاعدة المعرفة والكتابة والتدريب واختبار برنامج الدردشة الآلي. محتوى هذا الريبو يدور حول هذا أيضًا.
│ .gitignore
│ config.py #模型配置参数
│ corpus.pth #已经过处理的数据集
│ dataload.py #dataloader
│ datapreprocess.py #数据预处理
│ LICENSE
│ main.py
│ model.py
│ README.md
│ requirements.txt
│ train_eval.py #训练和验证,测试
│
├─checkpoints
│ chatbot_0509_1437 #已经训练好的模型
│
├─clean_chat_corpus
│ qingyun.tsv #语料库
│
├─QA_data
│ QA.db #知识库
│ QA_test.py #使用知识库时调用
│ stop_words.txt #停用词
│ __init__.py
│
└─utils
beamsearch.py #to do 未完工
greedysearch.py #贪婪搜索,用于测试
__init__.py
تثبيت التبعيات
$ pip install -r requirements.txt
$ python datapreprocess.py
قم بالمعالجة المسبقة للنص لإنشاء corpus.pth ( تم تحميل corpus.pth هنا، لذلك يمكن حذف هذه الخطوة )
المعلمات القابلة للتعديل:
# datapreprocess.py
corpus_file = 'clean_chat_corpus/qingyun.tsv' #未处理的对话数据集
max_voc_length = 10000 #字典最大长度
min_word_appear = 10 #加入字典的词的词频最小值
max_sentence_length = 50 #最大句子长度
save_path = 'corpus.pth' #已处理的对话数据集保存路径
عند استخدام قاعدة المعرفة، تحتاج إلى تمرير المعلمة use_QA_first=True
في هذا الوقت، بالنسبة لسلسلة الإدخال، تتم مطابقة أفضل سؤال وإجابة أولاً في قاعدة المعرفة وإعادتها. عندما لا يمكن العثور عليه، يتم استدعاء chatbot لإنشاء رد تلقائيًا.
قاعدة المعرفة هنا عبارة عن مجموعة من 100 سؤال وإجابة متكررة تم تجميعها من المستندات الرسمية لـ Tencent Cloud، للاختبار فقط!
$ python main.py chat --use_QA_first=True
نظرًا لاحتياجات تصميم الدورة التدريبية، تمت إضافة أزواج الأسئلة والأجوبة الخاصة بـ Tencent Cloud، ولكنها غير ذات صلة بمشروع روبوت الدردشة، لذلك عند استخدامها بشكل عام، use_QA_first=False
، تكون هذه المعلمة افتراضية على True
$ python main.py chat --use_QA_first=False
$ python main.py chat
exit
أو quit
أو q
شرح في ملف config.py
عندما تحتاج إلى تمرير معلمات جديدة، ما عليك سوى تمريرها من سطر الأوامر، في شكل
$ python main.py chat --model_ckpt= ' checkpoints/chatbot_0509_1437 ' --use_QA_first=False
يشير الأمر أعلاه إلى المسار لتحميل النموذج المُدرب وما إذا كان سيتم استخدام قاعدة المعرفة
اسم الجسم | عدد الجسم | شرح مصادر المجموعة | خصائص الجسم | عينة الجسم | ما إذا كانت قد شاركت |
---|---|---|---|---|---|
تشينغيون (مجموعة تشينغيون) | 10 واط | مجموعة تواصل chatbot | جيدة نسبيا، وصديقة للحياة | س: يبدو أنك تحب المال كثيراً. ج: أوه، حقاً؟ ثم أنت تقريبا هناك | لا |
$ python train_eval.py train [--options]
لم تتم كتابة جزء التقييم الكمي بعد، ويجب قياسه بالحيرة حاليًا، ولا يمكنه سوى إنشاء الجمل وتقييم الجودة يدويًا.
$ python train_eval.py eval [--options]