11

我想要做的是建立一个简单的机器人,它发送了我一组存储在数据库中,以我的信使聊天窗口中的信息[聊天服务GTALK,雅虎等常用茶亭产品]此外,应该能够接受一些预定义的命令并回复它们。简单的聊天BOT项目

是否有可用于该开源任何代码?

+0

你是什么服务器端编程语言 – 2010-11-09 01:36:56

+0

我还在需求收集和可研阶段。但是,最有可能它会是红宝石。对此的任何消息? – Mayur 2010-11-09 01:46:50

+0

我用incesoft ibot sdk平台使用Java(请参阅我的答案)。如果你愿意,你也可以使用.NET,对你的工作没有什么影响。 – JohnIdol 2010-11-12 14:39:15

回答

5

查找AIML(人工智能标记语言),它的存在了许多年,这是很明确的,灵活简单的东西。你也可以用各种递归模板做出非常复杂的东西,并且结果是相当不错的(只要愚蠢的机器人去)。

有一堆open sdk projects使用这种标记语言,这将负责将您的输入模式与存储在xml文件中的给定答复相匹配,您必须使用模板进行配置。

几年前,我在Java中使用AIML来存储模式(如果您遵循上述链接,有很多API)并使用incesoft msn bot platform。工作得很好。

希望它有帮助。

1

的东西,试图有点更加复杂,你可以看看NLTK自然语言工具包:

http://www.nltk.org/

基于Python和用于教育,但有相当多的文件和至少有几本书(其中一本是开源的)。

0

就不同的聊天网络而言,您可能需要查看Pidgin(http://www.pidgin.im/download/source/),这是一个以C & GTK +编写的跨平台GPLed聊天客户端,可与所有主要聊天网络一起使用。

-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的服务器用户的存在。

0

你可以考虑找AI 的一些资源有聊天机器人可 试试谷歌verbot 一个很好的例子,这是建立在.NET库

0

我们做了一个很容易延长蟒蛇,它与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 
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咖啡脚本。我今天写了几个小时内提到的两个机器人。