Пример #1
0
 protected override Unifiable ProcessChangeU()
 {
     if (CheckNode("state"))
     {
         try
         {
             var    varMSM             = botActionMSM;
             string payload            = templateNodeInnerText.ToValue(query);
             string payload3           = InnerXmlText(templateNode);
             string prevLastDefMachine = varMSM.lastDefMachine;
             string state         = GetAttribValue("name", null);
             string machine       = GetAttribValue("machine", prevLastDefMachine);
             string init_prob_str = GetAttribValue("init_prob", "0.1");
             string self_prob_str = GetAttribValue("self_prob", "0.1");
             double init_prob     = double.Parse(init_prob_str);
             double self_prob     = double.Parse(self_prob_str);
             varMSM.lastDefState = state;
             MachineSideEffect(() =>
             {
                 varMSM.lastDefState = prevLastDefMachine;
                 varMSM.defState(machine, state, init_prob, self_prob);
                 string responseCode = "<aiml graph=\"msm\"> " + payload3 + " </aiml>";
                 AddSideEffect("Add AIML " + responseCode, () => TargetBot.AddAiml(responseCode));
             });
         }
         catch (Exception e)
         {
             writeToLogWarn("MSMWARN: " + e);
         }
     }
     return(Unifiable.Empty);
 }
Пример #2
0
        protected override Unifiable ProcessChangeU()
        {

            if (CheckNode("responsetopic"))
            {
                try
                {
                    var varMSM = botActionMSM;
                    string payload = templateNodeInnerText.ToValue(query);
                    string payload2 = Recurse();
                    string payload3 = InnerXmlText(templateNode);
                    string machine = GetAttribValue("machine",  varMSM.lastDefMachine);
                    string myState = GetAttribValue("state", varMSM.lastDefState);
                    string myTopic = GetAttribValue("topic", null);
                    string prob_str = GetAttribValue("prob", "0.1");
                    double prob = double.Parse(prob_str);
                    payload= payload.Replace("rcategory", "category");
                    payload= payload.Replace("rpattern", "pattern");
                    string responseCode = "<aiml graph=\"msm\"> <topic name=\"" + myTopic + "\"> " + payload + " </topic> </aiml>";
                    AltBot.writeDebugLine("MSM: response_topic ResponseCode = {0}", responseCode);
                    MachineSideEffect(() => varMSM.addResponse(machine, myState, myTopic, prob));
                    // TODO: define machine-state -> topic
                    AddSideEffect("Add AIML " + responseCode, () => TargetBot.AddAiml(responseCode));

                }
                catch (Exception e)
                {
                    writeToLogWarn("MSMWARN: " + e);
                }

            }
            return Unifiable.Empty;

        }