我想要做的是建立一个简单的机器人,它将存储在数据库中的一组信息发送到我的消息聊天窗口[聊天服务是gTalk,Yahoo和其他常用的聊天产品]此外,它应该能够接受很少有预定义的命令并回复它们。
是否有可用的开源代码?
答案 0 :(得分:5)
查找AIML(人工智能标记语言),它已经存在了很多年,它的定义非常明确,而且对于简单的东西也很灵活。你也可以使用各种递归模板做相当复杂的事情,结果非常不错(就像哑巴机器人一样)。
有一大堆open sdk projects使用这种标记语言,它会将您的输入模式与存储在您必须使用模板配置的xml文件中的给定回复进行匹配。
几年前,我使用AIML在一个使用AIML存储模式的信使机器人(如果你按照上面的链接有很多API)并使用了incesoft msn bot platform。工作得很好。
希望它有所帮助。
答案 1 :(得分:1)
答案 2 :(得分:0)
就不同的聊天网络而言,您可能需要查看Pidgin(http://www.pidgin.im/download/source/),这是一个用C& C编写的跨平台GPLed聊天客户端。 GTK +适用于所有主要的聊天网络。
答案 3 :(得分:0)
答案 4 :(得分:0)
我们在python中很容易扩展,它适用于XMPP / gtalk: http://gbin.github.com/err/
为了让您了解最小的hello世界如下:
from errbot.botplugin import BotPlugin
from errbot.jabberbot import botcmd
class HelloWorld(BotPlugin):
@botcmd
def hello(self, mess, args): # the chatbot will then respond to the command !hello
""" this command says hello """ # this will be the result of !help hello
return 'Hello World !' # this will be the answer
答案 5 :(得分:0)
为此,我一直在使用Github的hubot。当被要求讲一个笑话时,我的机器人讲了一个笑话。 (当然我也有一个我可以问我应该做什么的,它会查找我的工作清单。)
GoGoBot> tell a joke about me
GoGoBot> a joke about Shell... Let me think about it...
GoGoBot>
I heard a funny one the other day:
Chuck Norris doesn't look both ways before he crosses the street...
he just roundhouses any cars that get too close.
僵尸程序在NodeJS上运行。 api采用正则表达式和回调类似
robot.hear /tell a joke/i, (msg) -> msg.send 'I heard a funny joke...'
module.exports = (robot) ->
robot.hear /tell (?:a|something) (?:joke|funny)(?: about ([a-z.]+))?/i, (msg) ->
subject = getSubject msg.match[1], msg.message.user.name
msg.send 'a joke about ' + subject + '... Let me think about it...' if subject.length
tellJoke = ->
getJoke subject, (err, text) ->
msg.send "Cannot compute. #{robot.name} is about to die.\r\n#{err}".replace(/e/ig, '3') if err?
msg.send "I heard a funny one the other day:\r\n#{text}" unless err?
setTimeout tellJoke, 5000 * Math.random()
这很容易学习,因为我已经熟悉NodeJS和咖啡脚本。我今天在几个小时内写了两个机器人。
答案 6 :(得分:-1)
IMified可能是一种简单的入门方式,它允许您使用服务器端Web开发工具构建IM聊天机器人以接收消息,并通过发出HTTP请求来发送消息或请求状态。
http://www.imified.com/hosting/
IMified基于API的解决方案 创建和托管即时消息 应用程序消除了复杂性 并提供了一个简单的解决方案 构建和部署IM应用程序 在多个公共IM网络上使用 一个API。
API文档在这里: http://www.imified.com/developers/api
连接到的应用程序 IMified平台是最简单的 形成一个驻留的动态网页 在任何HTTP服务器上并侦听 传入的消息然后输出一个 响应。您指定端点URL 在你的机器人的设置。开发人员可以 也向用户“推送”消息 通过REST请求用户在场 api打电话到IMified的服务器。