روبوت الدردشة لنادل الشاي بالحليب باللغة الصينية، إذا كنت لا تعرف راسا بعد، فارجع إلى mini rasa tutorial
أدناه
أو اقرأ مستندات rasa الرسمية
تحتاج إلى تنزيل bert_chinese_model وفك ضغطه أولاً: chinese_L-12_H-768_A-12
git clone https://github.com/BI4O/rasa_milktea_chatbot.git
cd rasa_milktea_chatbot
pip install -r requirements.txt -i https://pypi.tuan.tsinghua.edu.cn/simple
بدء تشغيل خادم بيرت
bert-serving-start -model_dir path/to/chinese_L-12_H-768_A-12/ -num_worker=1
القفز إلى الحليب
cd milktea
بدء خادم العمل
rasa run actions
تدريب نموذج
rasa train
التحدث إلى chatbot الخاص بك
rasa shell
يمكنك طلب 3 منتجات مختلفة، ويمكن إضافة المزيد لتصميمك بنفسك
واختر 3 مقاسات
- إنشاء مشروع جديد
- عرض بيانات تدريب NLU
- تحديد تكوين النموذج وكتابة القصة الأولى
- تحديد مجال نطاق هذه القصة القصة
- نموذج التدريب
- اختبر المساعد الذي كتبته
يشير المسار إلى مجلد فارغ جديد cd path/to/a/blank/folder
قم بإنشاء مشروع rasa جديد في هذا المجلد rasa init --no-prompt
سيتم إنشاء الملفات التالية في المجلد:
__init__.py | ملف فارغ يستخدم لتحديد المواقع |
---|---|
action.py | يستخدم لتحديد الإجراءات (رمز البرنامج النصي المخصص) |
config.yml | تكوين NLU والنماذج الأساسية |
بيانات الاعتماد.yml | تفاصيل الاتصال بالخوادم الأخرى (غير شائعة الاستخدام) |
البيانات/nlu.md | بيانات تدريب NLU المخصصة الخاصة بي |
البيانات/stories.md | قصص قصصي المخصصة |
domain.yml | مجال المساعد هو الدومين |
endpoints.yml | المسارات المتصلة برسائل الفيسبوك وما إلى ذلك (غير شائعة الاستخدام) |
النماذج/<الطابع الزمني>.tar.gz | النموذج وملفات المعلمات الخاصة به |
cat data/nlu.md
تظهر على النحو التالي
# # intent:order
- [奶茶](type)
- [咖啡](type)
- 我想要一杯[奶茶](type)
- 要杯[奶茶](type)
- 有[奶茶](type)吗
- 有[奶茶](type)卖吗
- 想要一杯[咖啡](type)
- 要杯[咖啡](type)
- 有[咖啡](type)吗
- 我想要一杯[卡布奇诺](type)
- 要杯[卡布奇诺](type)
- [卡布奇诺](type)
# # intent:inform_size
- [中](size)
- [中](size)的
- [中](size)杯
- [中](size)杯吧
- 要[中](size)杯
- [大](size)
- [大](size)的
- [大](size)杯
- [大](size)杯吧
- 要[大](size)杯
- [特大](size)
- [特大](size)的
- [特大](size)杯
- [特大](size)杯吧
- 要[特大](size)杯
تمثل النية النية ويجب أن تبدأ بـ ## وتنتهي بسطر جديد. على سبيل المثال، هناك غرضان موضحان هنا: 1. تقديم طلب، 2. الإبلاغ عن مواصفات الشاي بالحليب، ويجب وضع جميع الخطابات التي قد يستخدمها العملاء هنا، واستخدامها لنموذج nlu لمعرفة كيفية فهم ما هو. يقول الشخص.
يمثل [value](entity)
الكيان، وتمثل القيمة القيمة المحددة للكيان، بعد التدريب، يمكن لنموذج nlu إرجاع متغيرات مشابهة لهذا إلى النموذج الأساسي: {"type":"奶茶","size":"大"}
، بحيث يمكن للنموذج الأساسي الاستجابة وفقًا لذلك بناءً على type
المعلمتين size
.
config.yml
وحدة NLU السابقة والعناصر الأساسية التي سيستخدمها نموذجك. هذه المرة نستخدم مكونات كتبها خبراء. ويوصى أيضًا بشدة أن يذهب الجميع إلى https://github.com/GaoQ1 /. rasa_nlu_gqعرض القصص المكتوبة
cat data/stories.md
# # order naicha
- order{ " type " : "奶茶" }
- slot{ " type " : "奶茶" }
- utter_ask_size
- inform_size{ " size " : "大" }
- slot{ " size " : "大" }
- utter_affirm
- confirm
- action_charge
- utter_goodbye
تكوين القصة
##
تشير إلى اسم القصة ، وهو اسم وصفي##
*
تمثل نية المستخدم intent{"entity1": "value", "entity2": "value"}
-
البداية تشير إلى الإجراءات التي يقوم بها الروبوت.معلومات المستخدم
الأسيتونات العمل
هناك نوعان من الإجراءات
يمكن لـutter_xxx إرجاع الكلمات المراد الرد عليها مباشرة، ما عليك سوى شرحها في domain.yml لاستخدامها.
يمكن لـ action_xxx تنفيذ العمليات المخصصة التي تريدها، بالإضافة إلى تحديده في domain.yml، يجب أيضًا إضافته في ملف aciton.py. على سبيل المثال، تريد أن يكون لديك إجراء مخصص action_HelloWorld
قم أولاً بإضافة هذا الإجراء المخصص إلى domain.yml ضمن acitons
actions:
- aciton_HelloWorld
ثم قم بإضافة فئة جديدة في ملف acitons.py
class YourCustomAction ( Action ):
def name ( self ):
# 这个返回的值必须和stories.md和domain.yml中说明的一致
return "action_HelloWorld"
def run ( self , dispatcher , tracker , domain ):
# 定义这个动作要执行的你想要的操作
# 比如我想在对话中返回给用户的是HellowWorld!
dispatcher . utter_message ( 'HelloWorld!' )
return []
cat domain.yml
intents:
- greet:
triggers: utter_greet
- goodbye:
triggers: utter_goodbye
- confirm
- deny
- order
- thanks
- inform_size
- unknown_intent
actions:
- utter_greet
- utter_ask_order_what
- utter_ask_size
entities:
- type
- size
slots:
type:
type: text
size:
type: text
templates:
utter_greet:
- text: "你好"
utter_ask_order_what:
- text: "想要喝点什么? "
utter_ask_size:
- text: "想要什么规格的呢?我们有中/大/特大杯"
في
لأنه في هذه الحالة، الإجراء الذي نقوم به هو مجرد إرسال كلمات إلى المستخدم كرد، وهذه الإجراءات البسيطة هي جميع الإجراءات التي تبدأ بـ utter_
يمكن أيضًا تحديد المزيد لمزيد من الإجراءات، راجع Custom Actions
استخدم الأمر التالي للتحقق تلقائيًا من الاختلافات في المجال/القصص/NLU وإعادة تدريب النموذج. سيتم ختم النموذج المدرب بالوقت باعتباره نموذج rasa train
الجديد
rasa shell