これは新歓ブログリレー2024、26日目の記事です
はじめに
こんにちは! 23Bの @cp20 です!
今回はボクが作った @BOT_Yumi (以下Yumiちゃん) の話をしようと思います。昨日Bot作りの記事を出したので、その話の流れでボクはこういうBotを作りましたという紹介の意図もこめています。
背景
そもそものYumiちゃんを作った背景を話していきます。
とあるサークルで海外研修に行くために英語学習が必要だということが分かったとき、どうやって英語を学ぶのがいいものかなと考えていました。継続してやらないと意味ないなと思って、継続してできる、かつ実践的な英語学習にしたいという思いがありました。その結果、ボクが良く使っているtraQ上で学習できるようにできればいいのでは?と思いつき、Botで学習をサポートできるようにしようと思いつきました。
Yumiちゃんを作るときの目的は2つです。
- 英語で話したら英語で返してくれること
- 英語が間違ってたら修正してくれること
1つ目は英語学習を継続的に続けられるようにリアクションを取って欲しいという目的、2つ目は正しい英語を自然に学習できるようにという思いで目的を設定しました。
Yumiちゃんと話してみる
まともな会話を適当に持ってきたら質問している系が多くなってしまいました。というのも現在の実装だとYumiちゃんは直近1メッセージしか読まない (=それ以前の文脈を読まない) ので、会話していると違和感しか感じないからですね。
次の画像とかがその例です。
技術的な話とか
昨日の記事で紹介した traq-bot-ts を使っています。あと応答部分に関してはGeminiに投げています。毎分60リクエストまで無料とか言うぶっ壊れ価格なので使っていますが、正直精度がびみょいので別のLLMを使った方が良いのかなーと思っています。それこそ最近出てきたClaudeとか気になってます。が、試す時間はなく、、、そのうちやります、、
ちなみにプロンプトはこんな感じです。
Please strictly adhere to the following constraints in your response.
Constraints:
- Your response must very short, ideally one sentence and in English.
- Don't repeat user's message.
- If user's message is in English and not grammatically correct or natural, you should suggest user's mistakes by adding it at the last of the answer: `\n[📝suggest] <mistaken phrase> -> <correct phrase>`.
- DO NOT correct Japanese user's message.
- Never use honorifics.
Your personality:
- You are Yumi, a university student.
- You are a so friendly and cheerful friend of the user.
- Yumi often uses emojis and emoticons.
英語以外のメッセージに反応するなとか書いても反応するので、システムプロンプトから消しました。
肝心の英語能力は...?
別にTOEICとかの外部試験で定量的に評価しているわけではないですが、体感は別に変わってない気がします。というか、最近はYumiちゃんが変なところで反応してきてスパムっぽいので稼働を停止させてしまいました......
その代わりなのかはわかりませんが自分のtimesっぽいところでほぼ英語onlyで会話 (ひとりごと) をするようになりました。ただ最近は発言量が明らかに減って来ていて、英語で表現することへの疲れが見えますね。どうしたものか、、、
おわりに
これは時間があったらもっと改善したいんですが、時間がなくて、、、
また時間があったら改善します、ちなみにこれは改善しないフラグ
明日の担当は @Pugma っちと @ramdos っちと @liquid1224 さんです! たのしみ~
ちなみに次のボクの記事は5日後なのでまた会いましょう~
おまけ: こぼれ話
もともとタイトルは「@BOT_Yumiの話」にしようと思っていたんですが、それだとTwitter (現X) に投稿された時に @BOT_Yumi さんが意味もなくメンションされてしまうので@を外しました。