実在する人間のBOTを作る方法序説

前置き

この記事はDark - Developers at Real Kommunity Advent Calendar 2015 - Adventarに寄せる9日目の記事です。昨日はarataさんのDarkを支える技術 #3 テスト編 - 日頃の行いでした。この記事は《闇》【Dark】を意識して書かれたものです。

この記事では実在する人間のBOTをSlack上に作り、一年間にわたってメンテナンス、運用した実例をご紹介します。

この記事で分かること

  • 実在する人間のBOTの一年にわたる運用例

この記事で分からないこと

なぜ作ったか

インターネットにへんてこさんという人物がいます。その人物が発する言葉はあらゆる文脈に適用可能で汎用性があり、またユーモアに長けていました。それはまるで磨き抜かれた珠玉がほろほろとネット上に紡ぎだされているようでした。私はその零れ落ちた珠玉が流れ去ってしまうのを見過ごしてしまうことが出来ず、その珠玉を拾い集め再利用する術を探し、BOTを作成するに至りました。

どうやって作ったか

本人に許諾を得る

対象となる人物をコンテンツ化することになるので、本人にまず許諾を取りました。これもただ許諾を取ったら終わりではなく、BOTに手を加える際には対象となる人物が嫌ではないか一度考えてから行うようにしています。

複数人による発言のキュレート、保存

このBOTを作るのに必要なのは、何よりその人物が紡ぎだす珠玉です。それを集めなければなりません。当初は私がへんてこさんの発言を手作業でキュレートしたものを使っていました。全ての発言を強引に取得し使うことも出来たのですが、へんてこさんも人間であり全ての発言において汎用性がある訳ではありません。そこで、汎用性のある発言を私という人の手を介し選別していました。

しかしこの選別にも限度があり、私が忙しい時、またやる気の無い時に発生した珠玉を集めることが出来ません。また私という見識の浅い一人の人間に依拠してしまうと、取りこぼされてしまう珠玉が存在するという問題もありました。そこでSlackに珠玉を集約するチャンネルを作り、他の人間にも手伝って貰うようにしました。これにより、一人ではモチベート出来ない作業も競争原理でモチベートされると共に、時間ややる気の制約から珠玉の集約作業を切り離し、安定化させることが出来ました。

キュレートにおけるルールの策定

複数人でキュレートを行うと発生するのがキュレートの妥当性です。ここでは実在する人間に許諾を取りその人物を模したBOTを作ったということもあって、その人物が発した発言以外は認めないという方針を取りました。ただその人物が発した発言であればSlackはもちろん、Twitterでも現実世界でも可としました。発言が集約されるチャンネルには、他の人間がソースを確認できるよう、必須ではありませんがソース元のURLやどういった場で発言されたものか付記する文化が醸成されました。

ランダム発言BOTの作成

肝心の集めた発言の使い方です。前述したように発言には汎用性があったので、数時間に一回のペースでランダムに発言を行うようにしました。またこの際一手間加えており、最近キュレートされた発言ほど発言される確率が高くなるように設定しました。これにより内輪ウケはもちろん、キュレートした人のモチベート向上にも繋がったと思います。

雑談APIの使用

ランダムな発言だけではBOTに色が付かないので、NTTドコモの雑談対話APIを使い会話を行えるようにしました。

雑談APIには特に大きなカスタマイズはせずそのまま使用しているのですが、その際にキャラクター設定を「赤ちゃん」にしました。これによりBOTの口調が特徴的なものになり、本人から離れた"BOT"というキャラクター象が生まれ、BOTへの愛着が各人に出来ました。この口調を真似するものも出てきており、BOTの人格形成という意味で非常に役に立ちました。

最後に

誇張ではなく、無くてはならないSlackの一員となるまでBOTは成長しました。今後の成長も期待しています。