Windowsの人は「Windowsでの準備から実行まで」も併せてどうぞ。
以前のバージョンからバージョンアップする場合は、 reudy308up.zip を解凍して、出てきたファイルを、以前のバージョンのファイルに上書きコピーしてください。
Ver.3.04.1以前からバージョンアップする時には、自動でバックアップが取られるはずです。が、心配な人は public ディレクトリを手動でバックアップしておきましょう。
まだ安定してないので、色々仕様が変わってすいません(汗)。当てはまる(●が付いている)注意点をよく読んでください。
以前のバージョン | 注意点 | ||||
---|---|---|---|---|---|
3.01以下 | 3.02 | 3.03 | 3.04.x | 3.05〜 | |
● | ● | ● | ログを手動で追加したい時は、 public/log.txt に直接追加すればいいようになりました。 add_log.rb を使う必要は有りません。また、 public/log.txt を編集した時に、 public/setting.txt に remake_word_to_message_list を指定する必要も無くなりました。「ログを追加/編集する」参照。 | ||
● | ● | ● | ● | Ruby/GDBM を使うようになりました。無くても動きますが、メモリ消費が激しくなります。「必要なもの」参照。 | |
● | ● | ● | ● | ログの中で、 < > & を < > & と書く必要は無くなりました。 今までのログの中の < > & は、Ver.3.05以降での最初の起動時に、自動で < > & に変換されます。 | |
● | ● | ● | ● | public/words.txt のフォーマットが変わりました。Ver.3.05以降での最初の起動時に、自動的にフォーマットが変更されます。「単語を追加する」参照。 | |
● | ● | ● | Ruby 1.8.1で動作確認するようになりました。Ruby 1.7以下では動かないかもしれません。 | ||
● | public/setting.txt の必須項目に nicks が追加されました。「設定」参照。 |
*1 ログ約10万行(約4MB)、単語約1万語の場合、GDBM有りなら約10MB、GDBM無しなら約90MB消費。
*2 mingw版/mswin32版のRubyでは、Ruby/GDBMが無いとエラーダイアログが出ます。Ruby/GDBMを入れるか、Rubyのディレクトリの中から gdbm.so を探して削除してください。
ここではWebチャット Lingrでロイディを動かす方法を説明します。
Lingr版ロイディを動かすには、LingrのAPIキーが必要です。Lingrのアカウントを持っていなければ、まずサインアップしてください。次に、Manage API keysのページで"Create a new API key"をクリックし、出てきたkeyをメモしてください。
次に、 public/setting.txt を編集します。 api_key xxxxx となっているところを、先ほど取得したAPIキーに書き換えてください。それから、main_room_idとinfo_room_idを、ロイディを動かしたいルームのID*3に書き換えてください。自分のルームを持っていないなら、とりあえずreudy_testで動かしてみましょう。 public/setting.txt の各項目についての詳細は「設定」を見てください。
設定が終わったら、ターミナル(やコマンドプロンプト)で
ruby lingr_reudy.rb public
と入力してください。*4
ログロード中...
単語ロード中...
接続開始...
*** Initialized (CTRL-C to quit)
となれば、成功です。 public/setting.txt で指定したルームにブラウザでアクセスして、会話をお楽しみください。といっても、最初のうちは全然まともにしゃべれませんが…。
ロイディを終了するには、ターミナルでCtrl+Cを押すか、Lingrで「ロイディ、終了しなさい」と発言してください。
コマンドで指定した public というのは、 settng.txt とかを含むディレクトリ名です。 public 以外のディレクトリを作って、複数の設定/記憶を使い分ける事ができます。
*3 ルームのURLの最後の部分。 http://www.lingr.com/room/reudy_test なら reudy_test 。
*4 lingr_reudy.rb を含むディレクトリに移動(cd)して実行しないとエラーになります。
ここではIRCでロイディを動かす方法を説明します。
まず、 public/setting.txt を編集します。 host 、 port にIRCサーバのホスト名とポート番号を、 channel と info_channel にロイディを動かしたいチャンネルの名前を指定します。 public/setting.txt の各項目についての詳細は「設定」を見てください。
設定が終わったら、ターミナル(やコマンドプロンプト)で
ruby irc_reudy.rb public
と入力してください。*5
ログロード中...
単語ロード中...
接続開始...
となれば、成功です。 public/setting.txt で指定したチャンネルにLimeChatやChocoaなどのIRCクライアントでアクセスして、会話をお楽しみください。といっても、最初のうちは全然まともにしゃべれませんが…。
ロイディを終了するには、ターミナルでCtrl+Cを押すか、IRC上で「ロイディ、終了しなさい」と発言してください。
コマンドで指定した public というのは、 settng.txt とかを含むディレクトリ名です。 public 以外のディレクトリを作って、複数の設定/記憶を使い分ける事ができます。
*5 irc_reudy.rb を含むディレクトリに移動(cd)して実行しないとエラーになります。
public/setting.txt には、各行に「項目名」と「値」を半角スペース(or タブ)で区切って書きます。文字コードはEUCにしてください。
★の項目は必ず設定してください。それ以外はそのままでもとりあえず動きます。
項目名 | 意味 | 値の例 |
---|---|---|
api_key★ | LingrのAPIキー。「Lingr版の使い方」参照。 | |
main_room_id★ | ロイディが会話をするルーム。メインチャンネルと呼びます。 | reudy_test |
info_room_id★ | ロイディが覚えた単語が流れるルーム。Infoチャンネルと呼びます。 main_room_id と同じでもいいです。 | reudy_test |
特定のアカウントでログインさせたい場合に、アカウントのメールアドレスを指定します。 | (空欄) | |
password | 特定のアカウントでログインさせたい場合に、アカウントのパスワードを指定します。 | (空欄) |
項目名 | 意味 | 値の例 |
---|---|---|
host★ | IRCサーバ名。 | irc.fujisawa.wide.ad.jp |
port★ | IRCサーバのポート。 | 6667 |
channel★ | ロイディが会話をするチャンネル。メインチャンネルと呼びます。 | #reudy_test |
info_channel★ | ロイディが覚えた単語が流れるチャンネル。中の人モードでも使います。Infoチャンネルと呼びます。 channel と同じでもいいです。 | #reudy_test |
login_password | IRCサーバのログインパスワード。Wideとかでは不要。 | (空欄) |
channel_key | パスワード付きのチャンネルに入る場合に必要。login_password(サーバに入るのに必要なパスワード)とは違うので注意してください。 | (空欄) |
respond_to_notice | trueなら、noticeメッセージにも反応する。 | true / false |
respond_to_external | trueなら、チャンネル外部のメッセージにも反応する。 | true / false |
speak_with_privmsg | trueなら、privmsgで話す。falseなら、noticeで話す。 | true / false |
auto_reconnect | trueなら、回線が切れたときに、自動で再接続する。 | true / false |
teacher_mode | 「中の人モード」を有効にするかどうか。 | true / false |
name | IRCの /whois で「名前」として表示されるもの。適当でいいです。 | Reudy |
real_name | IRCの /whois で「本名」として表示されるもの。適当でいいです。 | Bot Reudy |
nick | チャット用のニックネーム。IRCでは、他の人とかぶるとログインできません。 | MyReudy |
nicks | 自分の名前として認識する単語。半角カンマで区切って複数指定できます。 | Reudy,reudy,ロイディ |
default_mode | 最初のモード。0が沈黙モード、1が寡黙モード、2が通常モード、3が饒舌モード。 | 0 / 1 / 2 / 3 |
joining_message | 入室時のメッセージ。省略可。 | こんにちは。 |
leaving_message | 移動時の退室メッセージ。省略可。 | さようなら。 |
private_greeting | 入室した他人に個人宛てで送るメッセージ。省略可。 | こんにちは。 |
disable_commands | trueなら、「設定を更新」以外のコマンドを無効化。 | true / false |
disable_studying | trueなら、反応するだけで学習はしない。 | true / false |
target_nick | ニックネーム(Nick)を指定すると、その人の物まねをする。*6 | Gimite |
forbidden_nick | ここでニックネーム(Nick)を指定した人の発言は使わない。*6 | tobocchi|ProzaKc|hAnE |
wait_before_speak | 反応するまでに何秒 間(ま)を置くかの目安。小数も可。あまり短くするとサーバに蹴られる事が有ります。 | 2 |
wait_before_info | 単語記憶メッセージを流す間隔(秒)。小数も可。あまり短くするとサーバに蹴られる事が有ります。 | 0.2 |
ロイディがいるチャンネルで発言すると、ロイディにコマンドを送れます。
コマンド(発言) | 効果 |
---|---|
ロイディ、設定を更新。 | settings.txtを読み直します。ただし、更新できない設定も有ります。 |
ロイディ、沈黙モード。 | 沈黙モードになります。ほとんどしゃべりません。 |
ロイディ、寡黙モード。 | 寡黙モードになります。時々しゃべります。 |
ロイディ、通常モード。 | 通常モードになります。普通にしゃべります。 |
ロイディ、饒舌モード。 | 饒舌モードになります。しゃべりまくります。 |
ロイディ、「〜」を覚えさせたのは誰? | その単語を誰に教わったかを答えます。 |
ロイディ、〜のものまねをしなさい。 | その人のものまねを始めます。 |
ロイディ、終了しなさい。 | プログラムを終了します。 |
設定で nicks を書き換えた場合は、「ロイディ」の部分を読み替えてください。
設定で disable_commands を true にすると、「設定を更新」以外のコマンドが無効になります。
ロイディのログは public/log.txt に入っています。各行が
発言者 タブ 発言内容
となっています。このフォーマットを守れば、自由にログを追加、編集できます。文字コードはEUCにしてください。EUC以外で保存すると、データが壊れます。
ロイディ実行中に public/log.txt をいじらないでください。ややこしい事態になります。
ログをファイルの最後に追加すると、次の起動の時に
public/log.txt に追加されたログを読み込み中...
と表示されます。追加分について単語の抽出とかをするので、しばらく時間がかかります。
public/log.txt の途中を変更すると、
public/log.txt の途中が変更されています。内部データを作り直します...
と表示されます。この場合は内部データを一から作り直すので、かなり時間がかかります。
ロイディが覚えた単語は public/words.txt に入っています。Ver.3.05からフォーマットが変わって、単純に1行に1個の単語を書き並べたものになりました。
ロイディは自動で単語を覚えますが、 public/words.txt に手動で書き足すのもOKです。文字コードはEUCにしてください。EUC以外で保存すると、データが壊れます。
ロイディ実行中に public/words.txt をいじらないでください。ややこしい事態になります。
public/words.txt を変更すると、
public/words.txt が変更されたようです。単語を読み込み中...
と表示されます。追加された単語を探しにいくので、しばらく時間がかかります。
現バージョンでは、単語の削除はできません。( public/words.txt から削除しても、内部のデータからは削除されずに残ります)。
ロイディは起動時に public/log.txt が手動で変更されてないかどうかをチェックします。ログが大きくなってくると、これはそれなりに時間がかかります。
ruby lingr_reudy.rb -f public
ruby irc_reudy.rb -f public
のように -f をつけると、このチェックを省略できます。
この機能はVer.3.07で追加されました。また、今のところIRC版でのみ有効です。
ロイディは通常のモードでは、人間同士の会話や、ロイディと人間との会話から、自動的に反応を学習します。
これに対して「中の人モード」では、特定の「中の人」が、ロイディの発言を「修正」していくことで、ロイディに反応を覚えこませることができます。
中の人モードを有効にするには、設定の teacher_mode を true にします。
中の人がロイディの発言を修正するには、Infoチャンネルで発言します。例えば、こんな感じです。 channel が #reudyroom 、 info_channel が #reudyinfo になってるとします。
<#reudyroom:Human1> こんちわ〜。 <#reudyroom:RReudy> さようなら。 <#reudyinfo:Teacher> こんにちは。
これでロイディは「こんちわ〜。」→「こんにちは。」という反応のパターンを覚えました。
この方法では、中の人はロイディの発言を「修正」するだけです。ロイディが反応しなかった発言に対する反応は登録できません。
メインチャンネルの会話とは関係なく、ロイディに反応を覚えさせるには、次のようにします。
<#reudyinfo:Teacher> こんちわ〜。→→こんにちは。
「→」記号を2つ続ける所に注意してください。
teacher_mode を true にすると、
設定の target_nick と forbidden_nick には、正規表現を使えます。詳しくはぐぐったりしてみてください。ここでは、簡単な使い方だけ。
複数のニックネームを指定するには、 | で区切ります。例えば、
forbidden_nick RuThemis|ProzaKc
は、「RuThemisとProzaKcの発言を使わない」という意味になります。
記号には、(上の | 以外にも)特別な意味を持つものが有ります。普通の記号として使うには、記号の前に \ を入れてください。例えば、 [DIABL0] さんの物まねをさせるには、
target_nick \[DIABL0\]
とします。
ロイディのターミナルへの出力文字コードは、標準ではShift-JISです。これを変えるには、 irc_reudy.rb をエディタで開いて、6行目の
$OUT_KCODE= "SJIS" #出力文字コード
の "SJIS" の部分を書き換えます。 "SJIS" 以外に、 "EUC" と "UTF-8" と "JIS" を指定できます。
ファイル名 | 説明 |
---|---|
irc_reudy.rb | このファイルを使ってIRC版ロイディを起動します。「IRC版の使い方」参照。 |
lingr_reudy.rb | このファイルを使ってLingr版ロイディを起動します。「Lingr版の使い方」参照。 |
lib/* | ロイディの内部処理で使われるもの。直接は使いません。 |
public/setting.txt | ロイディの設定をここに書いてください。「設定」参照。 |
public/log.txt | ロイディが覚えた発言のログ。追加/編集できます。「ログを追加/編集する」参照。 |
public/words.txt | ロイディが覚えた単語のリスト。追加もできます。「単語を追加する」参照。 |
public/log.dat | 内部使用のファイル。中身は log.txt とほとんど同じですが、このファイルをいじってはいけません。データが壊れます。 |
public/words.dat public/similar.gdbm public/version.dat | 内部使用のファイル。いじったり、消したりしないでください。 |
修正BSDライセンスです。つまり、著作権表示さえすれば、改造、再配布、これを使ったソフトの配布などは全て自由です。ただし、何も保証しないし、仮に何か起きても僕は責任を取りません。詳しくはLICENCE.txtをどうぞ。
ただし、irc-client.rbだけはPublic Domain Softwareです。
質問、バグ、要望など有りましたら、掲示板までどうぞ。
元祖ロイディの居場所とロイディの解説は、こちら。
http://www.rogiken.org/SSB/