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咖啡腳本。我今天寫了幾個小時內提到的兩個機器人。