SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|

2025-01-31(Fri) 業務チャットの中からツンデレAIに話を振ってみる

  ここではエントリにしてなかったが、だいぶ前にMezatalkというチャットツールを作って、職場で運用している。使われ始めてからもう4年になる。

  2020年の頭。新型コロナの流行が始まって約1年。テレワークが定着しはしたものの、マイクソソフトのTeamsでは、サシの会話しかできず、周囲からの助言を受けられない、とボヤく後輩に、そんなんメールでエエやん、と答えたところ、そんな面倒なのやってられませんよ、そうかぁ? そうですよ、いまやチャットですよ。うーん、じゃ、作る? そうだよなぁ……それしかないなぁ……という感じでほぼスクラッチから作り始めた。

  その会話が2021年2月3日。リリースが8日。エラく早いが、夢中になって作ってたし、その時点で使い物になるレベルには持っていってたはず。そこから機能追加はしたが、ほぼ停止することなく、これまで運用し続けている。途中で人狼ゲーム機能とかも付けたりもしつつ。我ながら、ちょっとした偉業だと思う。

  で、今回、新たな機能を追加した。話題の途中でAIに尋ねられる機能だ。

  イマドキフツーすぎるやろ……と思うかもしれないが、なかなかどうして、チャット中から尋ねられるのは相当に便利である。それまでの会話の流れを入力する必要がないからだ。AIに話題を振るには、文末に「>リナ」と入力するだけ。

  画像の説明

  これ。ものすごく自然な感じじゃない?

  ちなみにAIに関する設定は以下だけ。

# ルーム更新時のフック、特定のキーワードの書き込みに対して、AI に問い合わせ、結果を書き込む
@configs[:post_ai_comment] = {}
@configs[:post_ai_comment][:ws_uri] = 'ws://127.0.0.1:33109/'
@configs[:post_ai_comment][:user] = 'リナ'
@configs[:post_ai_comment][:ucrt] = '0123abcd'
@configs[:post_ai_comment][:keyword_re] = '(.+)>リナ\s*$'
@configs[:post_ai_comment][:contexts_max] = 10
@configs[:post_ai_comment][:ex_users] = { 'Mezatalk' => true }
@configs[:post_ai_comment][:wrap] = 78
@configs[:post_ai_comment][:tones] = ['ツンデレ女子の口調で']   # + [''] * 10
#configs[:post_ai_comment][:prompts] = {}
#configs[:post_ai_comment][:prompts][:def] = 'あなたは「リナ」という名前で、Linux/OSSのエキスパートです。'
#configs[:post_ai_comment][:prompts][:say] = '「%s」さんが%sと発言しました。'
#configs[:post_ai_comment][:prompts][:ask] = '「%s」さんから%sと問いかけられました。'
#configs[:post_ai_comment][:prompts][:com] = 'それに対しての助言を%sお願いします。'
@configs[:post_paragraph_hook] = Proc.new {|room|
    IO.popen(['./post_ai_comment', room], $stderr => open('/dev/null', 'w')) {|io|
        io.read
    }
}

  なので、ツンデレ設定がお気に召さなければ……ん? いや! このツンデレ設定を変更するのは厳禁とします! フンスッ!

  MezatalkはOSSとしてhttps://itline.jp/git/mezatalkに置いてあるけど、別にあんたのためじゃないからね! 勘違いしないでよね!