我想制作一个可以进行简单对话的机器人。我希望能够为机器人提供有关它所知道的事物以及它如何响应某些主题的参数。我想知道是否有人知道任何免费的源代码或一个体面的会话机器人的API。
我想通过让计算机控制的角色与真实玩家互动而不需要完全预先编写脚本的静态对话来使用它来促进游戏。我希望我能找到能够举行简单通用对话的内容,除非询问某个特定主题,此时它可以对预先设定的特定主题列表做出具体回复。
我要求更多关于会话处理方面的内容,而不是关于前端或其他应用程序或类似内容的钩子。最初,我将把它作为一个基于本地命令行的东西,然后如果满意的话,一旦我准备好对话框处理,我就会将libpurple作为访问各种通信网络的API。
那么,有没有人知道任何这样的源代码或API?谷歌提供了大多数工具,如模仿。我不希望那里有很多。存在可以处理各种情感和主题的东西的源代码会很棒,但是我会对那些只进行最简单的对话的东西感到满意,因为应该有某些东西可以做到这一点,看看有什么现有多个IM机器人。
如果没有良好的资源或API,是否有人会碰巧知道有关编程可以进行对话的AI的任何好材料?再说一遍,我不是在谈论博士论文,讨论可以作为人类或类似的东西传递的机器人;我的意思是讨论一些简单的编程技术的材料,常见的会话机器人用它来进行基本的对话。
由于libpurple API,我可能会在C ++中这样做。所以C ++资源是可取的,但不是必需的。
(编辑)我偶然发现了AIML(人工智能标记语言)。我目前正在研究这个问题,听起来似乎很有希望,特别是如果有任何预先制作的会话资源可用,那么我可以按照我提到的方式添加主题,如果我理解的话正确。
答案 0 :(得分:6)
AIML陈旧,过时,是创建数据库的折磨。我建议您关注聊天机器人语言this gamasutra's article。本文介绍了ChatScript语言,是AIML的一个很好的替代方案。
另一种语言RiveScript具有很酷的清洁风格,但它看起来像AIML的副本,具有相同的不良概念。
我正在开发基于YAML的Aerolito language,它只是一个业余爱好项目而且还不可用。 =]
在我看来,ChatScript是目前最好的选择。
答案 1 :(得分:2)
我知道这个问题已经过时了,但自问题发布以来,事情发生了变化。查看以下项目,这些机器人可以从文本文件,irc聊天日志中学习,或者在triplie的情况下,他们可以阅读网站(尽管不是很完美)。
triplie-ng:https://github.com/spion/triplie-ng
答案 2 :(得分:1)
Giorgio Robino提到http://superscriptjs.com/但它不仅仅是chatscript - 它是rivescript和chatscript的超集,还包括一个内置的三重存储来实现WordNet等。