12

What I want to do is build a simple bot which sends me a set of information stored in database to my messanger chat window [Chatting services are gTalk, Yahoo and other commonly used chating products] Also, it should be capable of accepting few predefined commands and replying them.

Is there any opensource code available for this?

4

7 回答 7

5

查找AIML(人工智能标记语言),它已经存在很多年了,对于简单的东西来说,它的定义和灵活性都很好。你也可以用各种递归模板做一些非常复杂的事情,结果相当不错(就愚蠢的机器人而言)。

有许多使用这种标记语言的开放 sdk 项目,它们将负责将您的输入模式与存储在您必须使用模板配置的 xml 文件中的给定回复进行匹配。

几年前,我在 Java 中使用 AIML 来存储模式(如果您按照上面的链接,有很多 API)和使用incesoft msn bot 平台,我在一个 Messenger bot 上工作过。工作得很好。

希望能帮助到你。

于 2010-11-09T17:01:30.830 回答
1

对于一些尝试更复杂的东西,您可以查看 NLTK 自然语言工具包:

http://www.nltk.org/

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

于 2010-11-13T03:14:10.343 回答
0

您可以考虑查找一些 AI 资源有一个非常好的聊天机器人示例可用尝试使用 .NET 库构建的 google verbot

于 2010-11-19T05:17:42.437 回答
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 和咖啡脚本,所以它很容易学习。我写了我今天在几个小时内提到的两个机器人。

于 2013-03-02T23:23:02.073 回答
0

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

于 2010-11-18T16:29:31.577 回答
0

我们做了一个很容易在 python 中扩展的,它适用于 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
于 2012-06-22T19:36:34.017 回答
-1

IMified 可能是一种简单的入门方法,它允许您使用服务器端 Web 开发工具构建 IM 聊天机器人来接收消息,并且只需发出 HTTP 请求来发送消息或请求状态。

http://www.imified.com/hosting/

IMified 基于 API 的用于创建和托管即时消息应用程序的解决方案消除了复杂性,并为使用一个 API 在多个公共 IM 网络上构建和部署 IM 应用程序提供了一种简单的解决方案。

API 文档在这里: http ://www.imified.com/developers/api

连接到 IMified 平台的应用程序最简单的形式是一个动态网页,它驻留在任何 HTTP 服务器上,侦听传入消息,然后输出响应。您在机器人的设置中指定端点 URL。开发人员还可以向用户“推送”消息,以及通过对 IMified 的服务器的 REST api 调用请求用户在场。

于 2010-11-18T23:54:54.830 回答