0

我用 ruby​​ 编写了这个自动回复机器人,它应该在我离开时使用智能机器人消息自动回复:

require "cleverbot"
require "cinch"

    $client = Cleverbot::Client.new


def get_answer(text)
    reply = $client.write text
    return reply
end

bot = Cinch::Bot.new do
  configure do |c|
        c.nick = "mybotsnickname"
        c.server = "my.irc.testserver"
        c.channels = ["#mychannel"]
    end

  on :message do |m|
    m.reply m.user
    m.reply get_answer(m.message)
  end
end

bot.start

它工作正常,但会话 ID 会更改每条消息。我必须改变什么才能保留它?最好的情况是每个给我写信的用户都会在cleverbot 获得不同的会话ID,因此他们可以进行单独的对话。

我对红宝石很陌生。

我用过:https ://github.com/benmanns/cleverbot 和https://github.com/cinchrb/cinch

4

1 回答 1

0

将此与我的 cinch 机器人的结构进行比较,我将尝试以下操作:

1) 使get_answer成为辅助块并将其放置bot = Cinch::Bot.new块中:

helpers do
  def get_answer(text)
      reply = $client.write text
      return reply
  end
end

2) 更换

on :message do |m|

on :message do |m, text|

3) 更换

m.reply get_answer(m.message)

m.reply get_answer(text)

我怀疑这应该可行。但我对 Ruby 也比较陌生。

于 2014-07-21T14:35:12.000 回答