我想要做的是建立一个简单的机器人,它发送了我一组存储在数据库中,以我的信使聊天窗口中的信息[聊天服务GTALK,雅虎等常用茶亭产品]此外,应该能够接受一些预定义的命令并回复它们。简单的聊天BOT项目
是否有可用于该开源任何代码?
我想要做的是建立一个简单的机器人,它发送了我一组存储在数据库中,以我的信使聊天窗口中的信息[聊天服务GTALK,雅虎等常用茶亭产品]此外,应该能够接受一些预定义的命令并回复它们。简单的聊天BOT项目
是否有可用于该开源任何代码?
查找AIML(人工智能标记语言),它的存在了许多年,这是很明确的,灵活简单的东西。你也可以用各种递归模板做出非常复杂的东西,并且结果是相当不错的(只要愚蠢的机器人去)。
有一堆open sdk projects使用这种标记语言,这将负责将您的输入模式与存储在xml文件中的给定答复相匹配,您必须使用模板进行配置。
几年前,我在Java中使用AIML来存储模式(如果您遵循上述链接,有很多API)并使用incesoft msn bot platform。工作得很好。
希望它有帮助。
就不同的聊天网络而言,您可能需要查看Pidgin(http://www.pidgin.im/download/source/),这是一个以C & GTK +编写的跨平台GPLed聊天客户端,可与所有主要聊天网络一起使用。
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的服务器用户的存在。
你可以考虑找AI 的一些资源有聊天机器人可 试试谷歌verbot 一个很好的例子,这是建立在.NET库
我们做了一个很容易延长蟒蛇,它与XMPP/GTALK: http://gbin.github.com/err/
为了给你一个想法最小的Hello World情况如下:
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
我一直在为此使用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咖啡脚本。我今天写了几个小时内提到的两个机器人。
你是什么服务器端编程语言 – 2010-11-09 01:36:56
我还在需求收集和可研阶段。但是,最有可能它会是红宝石。对此的任何消息? – Mayur 2010-11-09 01:46:50
我用incesoft ibot sdk平台使用Java(请参阅我的答案)。如果你愿意,你也可以使用.NET,对你的工作没有什么影响。 – JohnIdol 2010-11-12 14:39:15