मेरा बॉट डेटाबेस में उपयोगकर्ता का नाम संग्रहीत करता है, और समय-समय पर, डेटाबेस सत्र को "सेटनाम उपयोगकर्ता नाम" संदेश भेजता है। नमूना rivescript:Rivescript-Python में एक विशेष ट्रिगर को प्रीप्रोसेस कैसे करें?
+ setname *
- <set name=<formal>>
+ (what is my name|who am i)
- You're <get name>, right?
+ didntlike
- {topic=nlike}Why?
> topic nlike
+ *
- {topic=random}Thanks for charing.
< topic
+ *
- I don't have a reply for that.
- Try asking that a different way.
उपयोगकर्ता Nlike 'है कि * द्वारा बाहर निकल गया है की तरह एक विषय में है और मैं संदेश भेज नाम सेट करने के लिए जब समस्या है, तो बातचीत विषय बाहर निकालता है।
अपेक्षित बातचीत:
Me: hello
Bot: I don't have a reply for that.
Me: didntlike
Bot: Why?
Me: setname John
Bot:
Me: I didn't like because you are ugly.
Bot: Thanks for charing.
Me: Who am I?
Bot: You're John, right?
वहाँ कि शुरू ब्लॉक में इलाज के लिए कोई तरीका है? मैंने विभिन्न वाक्यविन्यासों की कोशिश की, लेकिन कोई सकारात्मक नतीजा नहीं। मैं की तरह कुछ के बारे में सोचा:
> begin
+ setname *
- <set name=<formal>>
+ request
- {ok}
< begin
एक वैकल्पिक हल सभी विषयों के अंदर एक ही ट्रिगर जोड़ने के लिए है, लेकिन मैं एक बेहतर समाधान की जरूरत है, क्योंकि उस दृष्टिकोण त्रुटियों की संभावना है के रूप में मेरे Rive फ़ाइलों बड़ा मिलता है।
==== कोड नेल्सन जवाब ===== के आधार पर की कोशिश की
> begin
+ request
- {ok}{topic=specialtriggers}
< begin
> topic specialtriggers
+ setname *
- <set name=<formal>>
< topic
+ (what is my name|who am i)
- You're <get name>, right?
+ didntlike
- {topic=nlike}Why?
> topic nlike
+ *
- {topic=random}Thanks for charing.
< topic
+ *
- I don't have a reply for that.
- Try asking that a different way.
मैं विषय से {ठीक} {विषय = specialtriggers} बनाने इस विषय के बाहर सभी ट्रिगर असफल जोड़ने लगता है। प्रीप्रोकैसिंग के बाद, रिवर्सक्रिप्ट को जवाब देना चाहिए कि यह एक विशेष ट्रांसफर है या फिर सामान्य ट्रिगर्स की खोज करें।
मुझे समझ नहीं आता कि आप क्या उम्मीद करते हैं बातचीत जाना। क्या आप बिंदु को और ठोस बनाने के लिए कुछ उदाहरण वाक्य दे सकते हैं? क्या आप एक वैध चरित्र के रूप में स्टार के साथ 'setname *' संदेश दर्ज करना चाहते हैं, ट्रिगर नहीं? –
हां। मैं इस संदेश को प्रीप्रोसेस करने के लिए प्रारंभ ब्लॉक का उपयोग करने की उम्मीद करता हूं। जब भी मैं 'सेटनाम जॉन' कहता हूं, तो मैं चर 'नाम' को 'जॉन' पर सेट करूंगा। यह उपयोगी है क्योंकि मुझे मेरी .rive फ़ाइलों के प्रत्येक विषय में ट्रिगर 'setname *' को दोहराना नहीं है। मैं कुछ आसान कह सकता हूं: 'करीबी' और यह राइव नियमों में प्रवेश न करने का जवाब देता है। – StaticX