在这个模型中,我创建了一个具有外部插件功能的基本 AI 接口;接口 AI_Contracts 可实现与 AI 的接口;实现接口并将编译后的 DLL 放入 APPPlugins 文件夹中,使 AI_Interface 能够发现并调用插件,获取要返回给用户的响应;该项目分4个阶段进行设计;每个阶段或里程碑都使聊天机器人能够发展和扩展,成为值得公开发布的丰富产品;
这里给出了界面的基本设计,通过文本输入和输出;维护 CHAT 历史记录;该接口可以进行接口的基本测试;尚未添加头像;这也是因为头像不是必需的,而是装饰性的;第一阶段我们主要关注制作功能界面;
这是我们允许用户设计可以由人工智能执行的脚本的机制;在开始阶段;提供机制是重点。初始使用的接口仅提供需要实现的类的结构;主脚本将针对在指定位置找到的所有此类对象调用用户函数。这实现了广泛的可扩展性。这也是可以向用户提供扩展和内部函数或 AI 框架以用作帮助程序脚本的一点。
在 AI 的第一个版本中,还将创建一个示例插件来测试界面。 SAMPLE_PLUGIN 这也将为进一步的插件创建提供模板; ###注意:小BUG!!!! AI_Contracts.Dll 需要与插件一起部署在 Plugins 文件夹中吗?插件分离的相对引用。当插件与应用程序位于同一文件夹中时,应用程序会尝试继续读取自身并崩溃,因此需要单独的文件夹; MAN EXE 还需要访问 AI_Contacts DLL SO...
双部署!
在此阶段,我们通过提供问答数据库来创建内部记忆功能。在这里可以创建简单的问答式响应,为应用程序的用户提供一个起点。尽管存在将每个回合保存到数据库的实现。在本次迭代中,选择更加关注监督方法。需要提供数据库编辑器。但这将在稍后阶段提供;执行顺序将是首先是插件,然后是问题和答案,以便确定响应发现的优先级。当人工智能没有响应时,还需要后备响应来处理;
状态机可以提供保持情绪状态的机制;在本次迭代中,使用了一个接口来为情绪状态对象提供结构;每个状态都会加载到Handler中;脚本的每一轮都会检测到情绪,积极和消极地调整当前持有的情绪,从而使情绪更加具体化。这里当情绪状态改变时给出通用响应。其他形式的状态也可以通过使用状态机来轮流进行;以前的编程方法通常利用“旅行变量”,但经常用有限商值替换状态到状态以解决情感偏差。 IE 快乐 = 0.78 , SAD 0.23 ;这种技术不允许有强烈的情绪;情绪强度增加,即:如果下一回合检测到快乐,则快乐增加;但如果下一个情绪只是中性的话,则会减少。直到强度级别降低到值 0,可以将状态更改为中性。
聊天机器人界面可以提供对插件进行编码和编译的能力;这里我提供了一个用于创建插件的选项卡式界面,我们在第一阶段实现的模板用于提供一个入门示例脚本供用户编辑和扩展。提供保存脚本和编译脚本;
还为每个表创建了一个用于编辑问题和答案文件的数据编辑器。
在这里,我们将重构代码安排并将功能扩展到 UserScripting 框架。重构过程和注释可以方便以后编辑和完善应用程序;以及向用户提供理解;
尽管语音识别随着时间的推移而不断改进,但还需要语音来提供丰富的用户界面;它主要是为了语音输出而添加的。
一些图形改进和主题将添加到应用程序中:(也许是 LCARS _ 星际迷航设计!)
对于 AI_Contracts 组件的部署和集中访问:还决定将库与 NUGET 集中为 SpydazWb.AI.Contracts ;这使得进一步的更新能够集中用于插件创建和最佳交付:此时 AI_Contracts 源代码也已从项目中删除,并添加为 NUGET 参考程序集; AI_Contracts 项目现在可以与 UI 和插件分开开发;插件也可以作为 Nuget 包部署在与 Nuget 分开的集中源上;即集中式网站!