ChatGPT+LINE APIで英会話学習用botを作ってみた

date_range 2022/12/25
GUARDIAN Marketing BLOG
松村 晶
AI botのキャラクター画像

今回は、LINE Messaging API と ChatGPT API を使った「AIと英会話ができるbot」の紹介をさせていただきたいと思います!


使用した制作環境としてはGoogle Apps Scriptを選びました。

GASは元々Web上で動作しますので、サーバーなどを別で用意することなくサクッと動くものが作れます。

個人で使う用途であれば、簡易なWebアプリっぽいものを作ることも充分に可能ですのでおすすめです!

もっと大人数を対象にしたり、多機能なものを使いたければ適宜技術選定をすると良いかと思います。


また下記の記事はChatGPTに対して色々な質問をしてみたという内容をまとめております。

難しい質問にも高い精度で回答するAIの凄さ、伝われば幸いです。

本記事ではざっくりとしたbotの紹介のみにとどめておき、LINE API や ChatGPT API の使い方に関してはまた次回以降の記事にて紹介できればいいなと思っております。

また公式ドキュメントの他、解説記事なども調べればたくさん出てきますので、自分でLINE botを作ってみたい!という方はそちらも参考にされると良いかと思います。

機能① botによるメッセージの返信&訂正

まずはbotによるメッセージの返信と訂正です。

LINEでメッセージを送るとすぐに、下記の画像のように返信がきます。

botの返信と訂正

「今日はクリスマス。子どもの頃は、1ヶ月前からクリスマスまでの残りの日数を数えていた」

と言うことを言いたかったのですが、「残りの日数」という表現が思いつかず the left days とその場で思いついた単語を適当に並べています。


たぶん英語表現的には間違った言い方ですが、botはきちんとニュアンスを汲み取ってくれました。


そしてそのメッセージに対しbotはなんと返事をしたでしょう?


"That's so cute!"

(めっちゃ可愛いやんけ!)


子どもがクリスマスを楽しみにして毎日「クリスマスまであと◯日」と日付を数える姿、それを「可愛い」と返信してくるChatGPT(゚д゚lll)

文脈を読み取る精度が恐ろしいほどですね。ちょっと気味が悪く感じたほどです・・・!


その後には「あなたと過ごすのが待ちきれない、きっと特別な日になる」とのこと。ラブラブやないかい!


そしてそのリプライの後には、botが自動的に文章の訂正をしてくれております。

botが訂正してくれた表現は"I used to count down the days until Christmas, starting a month ago."というもの。

単に文法的な間違いを訂正してくれるという以上に、より自然な言い回しを提案してくれているのがわかります。


この機能を使って、実際の英会話と同じく間違いを恐れずどんどん会話を投げかけることで、英語による発話が自然と身につくかもしれませんね・・・!

機能② 日本語の翻訳

また英会話を練習しようにも単語がぜんぜんわからない、どういうふうに表現したらいいか思いつかないといった場合でも大丈夫です!

日本語でメッセージを送った際にもbotが「英語で返信+英文に翻訳」してくれるという初心者に優しい親切設計となっております😅


おすすめの使い方は、間違ってもいいから思いつくことはできる限り英語で。どうしても言い方がわからないところは一部分だけ日本語で、というやり方です。


例えば下記の画像をご覧ください。

一部日本語によるメッセージとbotによるその返信、訂正

「福祉の仕事」「人生における大切な価値観」といった言い回しが思いつかず、部分的にそのまま日本語にしてメッセージを送っています。

それに対してもbotは自然な英語で返答をしてくれており、またSuggestion:として全文を英語にした表現を返してくれています。


いやー、これはすごい助かりますね。いちいち調べ直さずとも、そのままbotが日本語を理解してくれて翻訳をしてくれる。

まるで日英の両言語に精通したバイリンガル講師に習っているようです。

機能③ 単語帳+例文

またもう一つの機能として、単語帳機能があります。

登録してある単語からランダムに2つを抽出し、その2単語からAIが自動で文章を生成してメッセージを送ってくれるというものです。

まったく関連性がないような2つの単語が選ばれた場合、どの程度の精度で文章を返してくれるのかが気がかりだったのですが、試してみた限りまったく問題ない品質の文章を生成してくれています。


例えば下記の画像は"stationery"(文房具)、"contradiction"(矛盾)という2つの単語から文章を生成してくれたものです。

単語の説明×2とそれを使って生成された文章

最初の二つはそれぞれ単語の意味を解説してくれたもので、3つ目はその2つの単語を使ってAIが生成した文章です。


「文房具はそれ自身が矛盾を孕んでいます。必需品でありながら贅沢品であり、実用品でありながら装飾品です。」


内容の是非はともかくとして、きちんと二つの単語を正しく解釈した上で文章が作られています。

一般的な単語帳を使うと毎回同じ例文を目にすることになりますが、botが返してくれるのは毎回異なる例文です。

また2つの単語を組み合わせてくれることで、より文脈から単語の意味を把握する手助けとなり、個人的にはそれがとてもおもしろいと感じています。


より単語の用法を身に付けたい場合は、その単語を使った文章をbotに投げかけるといいでしょう。

そうすることでbotは回答と訂正をしてくれます。

狙い通りの文章を生成するために

という感じで、今回作成したbotの紹介をさせていいただきました!


すげー!と思ってくださった方がいたらありがとうございます。


ですが実際のところ、プログラミング的には本当に単純にAPIを呼び出しているだけで、プログラミング的な工夫はこれといってありません。

ただただChatGPTのAPIがすごいと言うだけです。


ひとつ気をつけなければならないとすれば、ChatGPTには文脈を正しく理解できるようにヒントを与えてあげる必要があるということ。


例えばこちらが日本語で話しかけた際に、通常であればChatGPTは日本語で返答をしてくれます。

ですが今回の例で言えば、日本語で話しかけても英語で返答をしてもらわねば期待通りの結果にはなりません。

そのために、裏側では「英語で返答して」という指示を出しているのです。


また、先ほどからやけにbotが親しげなことに気が付いたでしょうか?

それもまたプログラムの裏側部分で「親友になったつもりで返答して」「恋人になったつもりで返答して」、というような指示を与えているからこそです。

その指示がなければ時々フランクに、時には堅苦しくといったバラツキが生まれてしまうのです。


こちら側がどのような回答を期待しているのか? というコンテクストを明確に指定してあげることで、ChatGPTはその意図を汲んで返答してくれるようになります。


また、当初は時折あまりにも長い文章を返してくることがあったので、「3文以内で」という制限をするための指示を入れたりもしています。


そのような工夫をすることで、だいたいいつも期待通りの返答がくるようなbotとなったかと思います。

今後追加したい機能

ちなみに筆者の英語力は正直なところまだまだ胸を張れるような立派なものではなく、ガーディアンの中にはもっと優秀な方がたくさんいらっしゃいます!

(学生の頃受けたTOEICは700点にちょっと届かないくらいでした)


ちょっとした事情があり少し前から英語の学び直しをすることになったのですが、そんな絶賛英語学習中の身からしても

今回のbotは非常に役立つ!と感じる出来のものとなったと思っています。

(自分で作ったbotなのでバイアスがかかってるところが大きいかもですが)


ちなみにガーディアンには資格取得手当制度というものがあり、頑張って資格を取得した際には最大二年間、毎月資格手当が支給されるという素敵制度がありますので、

ぜひ学生時代のTOEICスコア更新にチャレンジしてみたいところです!


その他にも、より英語学習がおもしろくなるようなゲーム性を取り入れてみたいと思っています。


例えば得点やキャラクターの好感度的なシステムを入れることで、たくさんコミュニケーションをとるほど親しい会話をしてくれるようになったり、

(LINE APIでは下記のように画像も送信できたりします。キャラクターは「CHARAT MAE」という無料のwebツールでランダムに生成したキャラを少し手直ししたものです。ありがとうございます🙏)

キャラクターがGreatと言ってくれている画像

LINEの公式アカウントでよくあるようなボタンを実装して、いつでもミニゲーム的なモードを呼び出せるようにしたり、

単語の登録・削除・例文のお気に入り等ができるようにしたり。


今は単語の一覧を保存するためにスプレッドシートをデータベース代わりに使っているのですが、

そこまでやるのであればちゃんとしたデータベースを使って作ってみたいところです!

まだまだ色々楽しめそうですね。

終わりに

いかがでしょうか。

GASでさくっと作ってみたbotではあるのですが、予想外に面白い出来となったためびっくりしています。

繰り返しますが、それはひとえにChatGPTの能力のおかげで筆者としては何もすごいことをしていないです。


LINE APIやChatGPT APIを使ったbotの作り方に関しては、また次回以降の記事にて紹介できればと思っております!


それでは最後までお読みいただき、本当にありがとうございました!

人物

マーケティング部 クリエイティブプロダクト隊 クオリティコントロール班 班長

松村 晶(まつむら あき)


HTMLとCSSから始まり、Web関連の記事など広く更新していきます。

毎週2回(月・金予定)に欠かさず更新(できたらいいなと思っている)


今回使用した技術:GAS,LINE API,ChatGPT API