[戻る] [ロ技研のトップ] [ロ技研掲示板]

ロイディ Ver.3.08 マニュアル

目次

Windowsの人は「Windowsでの準備から実行まで」も併せてどうぞ。

バージョンアップの仕方(重要)

以前のバージョンからバージョンアップする場合は、 reudy308up.zip を解凍して、出てきたファイルを、以前のバージョンのファイルに上書きコピーしてください。

Ver.3.04.1以前からバージョンアップする時には、自動でバックアップが取られるはずです。が、心配な人は public ディレクトリを手動でバックアップしておきましょう。

まだ安定してないので、色々仕様が変わってすいません(汗)。当てはまる(●が付いている)注意点をよく読んでください。

以前のバージョン注意点
3.01以下3.023.033.04.x3.05〜
ログを手動で追加したい時は、 public/log.txt に直接追加すればいいようになりました。 add_log.rb を使う必要は有りません。また、 public/log.txt を編集した時に、 public/setting.txt に remake_word_to_message_list を指定する必要も無くなりました。「ログを追加/編集する」参照。
Ruby/GDBM を使うようになりました。無くても動きますが、メモリ消費が激しくなります。「必要なもの」参照。
ログの中で、 < > &&lt; &gt; &amp; と書く必要は無くなりました。 今までのログの中の &lt; &gt; &amp; は、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 を探して削除してください。

Lingr版の使い方

ここでは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版の使い方

ここでは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にしてください。

の項目は必ず設定してください。それ以外はそのままでもとりあえず動きます。

Lingr専用の設定項目

項目名意味値の例
api_keyLingrのAPIキー。「Lingr版の使い方」参照。
main_room_idロイディが会話をするルーム。メインチャンネルと呼びます。reudy_test
info_room_idロイディが覚えた単語が流れるルーム。Infoチャンネルと呼びます。 main_room_id と同じでもいいです。reudy_test
email特定のアカウントでログインさせたい場合に、アカウントのメールアドレスを指定します。(空欄)
password特定のアカウントでログインさせたい場合に、アカウントのパスワードを指定します。(空欄)

IRC専用の設定項目

項目名意味値の例
hostIRCサーバ名。irc.fujisawa.wide.ad.jp
portIRCサーバのポート。6667
channelロイディが会話をするチャンネル。メインチャンネルと呼びます。#reudy_test
info_channelロイディが覚えた単語が流れるチャンネル。中の人モードでも使います。Infoチャンネルと呼びます。 channel と同じでもいいです。#reudy_test
login_passwordIRCサーバのログインパスワード。Wideとかでは不要。(空欄)
channel_keyパスワード付きのチャンネルに入る場合に必要。login_password(サーバに入るのに必要なパスワード)とは違うので注意してください。(空欄)
respond_to_noticetrueなら、noticeメッセージにも反応する。true / false
respond_to_externaltrueなら、チャンネル外部のメッセージにも反応する。true / false
speak_with_privmsgtrueなら、privmsgで話す。falseなら、noticeで話す。true / false
auto_reconnecttrueなら、回線が切れたときに、自動で再接続する。true / false
teacher_mode中の人モード」を有効にするかどうか。true / false
nameIRCの /whois で「名前」として表示されるもの。適当でいいです。Reudy
real_nameIRCの /whois で「本名」として表示されるもの。適当でいいです。Bot Reudy

Lingr、IRC共通の設定項目

nickチャット用のニックネーム。IRCでは、他の人とかぶるとログインできません。MyReudy
nicks自分の名前として認識する単語。半角カンマで区切って複数指定できます。Reudy,reudy,ロイディ
default_mode最初のモード。0が沈黙モード、1が寡黙モード、2が通常モード、3が饒舌モード。0 / 1 / 2 / 3
joining_message入室時のメッセージ。省略可。こんにちは。
leaving_message移動時の退室メッセージ。省略可。さようなら。
private_greeting入室した他人に個人宛てで送るメッセージ。省略可。こんにちは。
disable_commandstrueなら、「設定を更新」以外のコマンドを無効化。true / false
disable_studyingtrueなら、反応するだけで学習はしない。true / false
target_nickニックネーム(Nick)を指定すると、その人の物まねをする。*6Gimite
forbidden_nickここでニックネーム(Nick)を指定した人の発言は使わない。*6tobocchi|ProzaKc|hAnE
wait_before_speak反応するまでに何秒 間(ま)を置くかの目安。小数も可。あまり短くするとサーバに蹴られる事が有ります。2
wait_before_info単語記憶メッセージを流す間隔(秒)。小数も可。あまり短くするとサーバに蹴られる事が有ります。0.2

*6 正規表現を使えます。「正規表現について」参照。

コマンド

ロイディがいるチャンネルで発言すると、ロイディにコマンドを送れます。

コマンド(発言)効果
ロイディ、設定を更新。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/