0

我正在 c# 中使用 AIMLbot.dll。我看到了两个函数saveToBinaryFileloadFromBinaryFile. 我认为这些功能是将机器人大脑中的当前内容存储到文件中。但这似乎不起作用!意思是,如果我说要记住我的名字并将内容保存到 GraphMaster.dat 文件。下次我加载同一个文件的内容时,当我问我的名字时,它给出了错误的答案。我的课如下。

class AIBot
    {
        private Bot myBot;
        private User myUser;

        public AIBot()
        {
            myBot = new Bot();
            myUser = new User("UnknownUser", myBot);
        }

        public void Initialize()
        {
            myBot.loadSettings();
            myBot.isAcceptingUserInput = false;
            myBot.loadAIMLFromFiles();
            myBot.isAcceptingUserInput = true;
        }

        public void Load()
        {
            if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + @"\Graphmaster.dat"))
                myBot.loadFromBinaryFile(AppDomain.CurrentDomain.BaseDirectory + @"\Graphmaster.dat");
        }

        public string GetResponse(string input)
        {
            Request r = new Request(input, myUser, myBot);
            Result res = myBot.Chat(r);
            return (res.Output);
        }

        public void Save()
        {
            myBot.saveToBinaryFile(AppDomain.CurrentDomain.BaseDirectory + @"\Graphmaster.dat");
        }
    }

有人可以帮忙指出问题吗?

4

1 回答 1

2

我得到了解决这个问题的办法。希望它会帮助别人。

  1. 保存用户会话

    this.myUser.Predicates.DictionaryAsXML.Save(saveFileDialogDump.FileName);
    
  2. 下次加载存储的会话。

    this.myUser.Predicates.loadSettings(openFileDialogDump.FileName);
    
于 2012-06-25T07:37:42.163 回答