見出し画像

ChatGPTと一緒に1ヶ月半でビジネス英語の英会話webアプリを作ってみた話

この記事の内容

最近話題になっているChatGPTと言大規模言語モデルを利用して、個人開発でビジネス英会話が練習できる英会話webアプリを作成してみたよという内容だ。特に作ったアプリの説明、作ろうと思った背景、開発してみて感じたことをつらつらと書いていく。ただ、時間のない人に向けて箇条書きで内容をまとめると下記のようにな感じになると思う。

ChatGPTを触るうちに、生成した人格でサービスを作れそうと思った。
◯個人的に英語力を鍛えたいと思っていたが、費用が高く、かつビジネスの場面で通用するような考えながら議論する英会話をするにはお金がかかるのがハードルになっていた。というか、英会話に月に5000~1万円払っても、本質的に自分が鍛えたかったのは、ある程度抽象性の高い議論を英語で行い、リードしたり、フォロワーに回ったりという英語+思考力を同時に鍛えることで、通常の英会話では鍛えにくいことだった。鍛えてくれる人がいるかも知れないけれど、大体そういうのは高額!
じゃあ、自分で作るよ!ということで、ChatGPT(GPT-4)に夜な夜な指南を受け、議論をして、アプリ開発にチャレンジした。
その結果、結構満足する性能を持つそこそこ安く利用できる英会話アプリが完成した。作ったアプリは、Your Virtual English Coachと名付け、下記のURLで公開できた。
Your Virtual English Coach: 
https://yutootaki.pythonanywhere.com/

私とChatGPT

私とChatGPTとの出会いは、意外と最近で2023年の2月~3月だったと思う。SNSの一部の人たちやGithubのawesome promptというリポジトリで、ただ質問するのではなくて、promptを使って制御する使い方があると知ってからのめり込んでしまった。特に人格生成系のプロンプトが好きで、哲学者や社会科学系の大学教授などの人格生成をして、夜な夜な議論をしたり、講義をしてもらったりしていた。そんなんで、すぐにOpenAIの有料会員になってしまった。もともとニッチな分野が好きで話し相手がいない自分にとっては、正しかろうが、間違っていようが、話しかけると返答してくれる相手がいるだけで面白かったのだ。知らないことを(正しかろうが、間違っていようが後で確認すればいいから)教えてくれるだけで、仕事では満たせない好奇心が満たされて嬉しい思いだった。メイド喫茶やキャバクラなどにハマる人はこういう感情なのだろうかと思いながらクレジットカードの番号をやや不安げに入力した。ChatGPTを使っている人が周りにいないため、twitterやgithubを徘徊して情報収集し、面白そうなテクニックがあったら使って人格の磨き込みをするということ続けていた。そんなことをしていると、どうもLangchainというライブラリでGPTをpythonから使えるということを知った。OpenAIのGPT4ブラウジングpluginなどのwaitlistに登録したが、全然アクセスできずに最新機能が使えないことにもどかしさを感じてはいるものの、若干面倒くささを感じて、しばらくの間、Langchainには手を出さなかった。それでもGithubでBabyAGIやAutoGPTなどの自立型のタスク生成/実行を見た時、度肝を抜かれてLangchainのドキュメントを読み出した。以前から人格生成を行う際に、なぜか、ふとした時にGPTが我に返る(役割を忘れる)ことがあって、理由がわからずにもやもやしていたのだけれども、Langchainのドキュメントを読んだら、ChatGPTの中で何が行われているのか、ChatGPTの限界はなんなのかということが理解できた。Langchainを使えば、OpenAIのAPIを使って記憶を埋め込んで、長い間人格を維持できると思って、langchain経由でソクラテスの人格を生成したりして、家のみんなが寝静まったあと、夜な夜なニッチな会話を楽しんでいたのだった。

アプリ開発に至った背景と経過

ソクラテスと話すプログラム

自分はソクラテス(GPT)との会話をとっても楽しんでいたから、AIと会話するのを楽しむサービスがあっても良いかと思い始めていた。生成したソクラテスの人格と話すとそれなりに物事に対する理解が深まったりして、便利だなと思っていたから、周囲にソクラテスと話すサービスあったら使う?と聞いたが、「(何言ってんのこいつ)」とか「(なんだこのオタク?)」という冷ややかな目で見られたんだけれども、まあものは試しということでpythonで実装を始めた。ChatGPTに入力していたソクラテスpromptを少し改造して、コードは大枠を自分で書いたら、ソフトウェアエンジニア人格のChatGPTが細かいところは書いてくれたので、すぐに実装できてしまった。

英会話教師とソクラテスのブレンド

しばらくは、ソクラテスと話していたけれども、APIの料金を抑えるために、徐々に英語と日本語を混ぜて会話するようになった。そんな時あることに気づいた。ソクラテス(GPT)は私の英語での発言の抽象度を一段上げて言い直して会話に混ぜ込んでくれている。これは私が英語で話す際に、とても課題に思っていたことだった。ビジネスで話す英語はやや抽象度が高いトピックでうまく言葉が出てこないと同時に、そもそも日本語で考えてもうまく答えられないかも知れないという悩み、というか思考力や言語能力に課題を感じていた。例えば、リーダーシップとは何で、どうあるべきか?やマネジメントとは何で、一体どうあるべきか?どのような戦略や方針で意見をまとめ上げるか?どのようにプレゼンするか?というようなことを議論する場では、英語に加えて、言語力(思考力)そのもののが問われる。さらに、そういう複合的な領域を鍛えるためには、ある程度お金がかかるが、自分には金がない!そこで、英会話教師のpromptをGPT4と作成し、ソクラテスとブレンドして、ややビジネステイストを含む哲学的英会話教師を生成してみた。

使ってみると、
ビジネスっぽい会話でかつ抽象度高い感じの会話の練習になるじゃん!ただめっちゃ質問攻めにされるじゃんこれ!ソクラテス強すぎ!これじゃ巷に噂されるコンサル上司みたいだよ!
という雰囲気。まあ勉強になるので悪くはなかった。使える。

さらばソクラテス…だけど君のpromptは生き続ける

その時、ふとよくよく考えてみれば、自分と同じ課題感を持つ人ってたくさんいるんじゃなかろうかと思った。グローバルで実施される研修に一緒に出ていた英語が上手な方も抽象度の高い会話では、やや苦戦しているだったのも覚えている。勉強がてら、サービスの立ち上げをしてみるか。そう思ってGWから開発に取り組んだ。

まずは、promptからだが・・・

(アテネの民を想像しながら)ソクラテス、許してくれ。ソクラテスの問答法は、現代人にとっても気持ちの良いものではないんだ。だが君のpromptは散りばめられ、新しいpromptの一部には残る。そう、生き続けるのだ。

質問攻めにして概念を明確化するために質問攻めにするソクラテスのDNA(prompt)は、ニッチで強力すぎる。これは薄めなければ。ということでごっそりとソクラテスpromptは削り、その断片のみpromptに残すことになった。

時間経過で挙動が変化する人格エンジニアリング

人格生成のプロンプトはすぐに出来上がった。人間としっかりと議論ができ、GPT-3.5 turboでもある程度考える必要がある質問を投げかけることもできる。よし、いいぞ。だけど・・・

この英会話レッスンいつまで続くんですか?先生、私もう疲れました。

レッスンって時間ありますよね。時間依存の応答を含むプロンプトが必要なんです。(これはあまり語られない新しいプロンプトの技法なのではないかと思うが、実際どうなんだろう?)
時間応答プロンプトは、GPT-3.5 turboを使っているためか思ったよりも時間がかかったが、色々な調整をすることで雰囲気それっぽい挙動をするものが出来上がった。

GPT4と一緒にウェブサイトのフロントエンド・バックエンドの開発

Promptが出来てしまえば、こっちのものだ。そう思っていた時期が私にはありました。サービスとして公開するためには、webサイトを作らなければいけません。pythonだけではなく、HtmlとかJavascriptとかCSSとか今まで触ったことがないものを使わないといけないんですね。Langchainを組み込むためには、pythonでバックエンドを書く必要もあります。ID登録や料金んの支払いとかも実装していく必要があります。そんなことやったことないのに。

ん?

GPT4: Hello! How can I assist you today?
Human: あのー英会話のウェブアプリ作りたいんだけども?

GPT4: それなら、あれやこれやが必要です。
Human: わかった。やってみるから手伝って。



Human: 今日はここの部分を作っていくのがいいと思うんだけども。
GPT4: そうですね。そうすると、こんな感じです。

Human: なんか動かないからこんな感じで修正するね。どう思う?
GPT4: わかりました。いいと思います。それでは、次の部分は・・・

という会話を夜な夜な続け、約1ヶ月後・・・

Webサイトの出来上がり(MVPっぽいけど)

なんと、完成したのだった。GPT4先生ありがとうございます。色々勉強になりました。
Your Virtual English Coach: https://yutootaki.pythonanywhere.com/

Your Virtual English Coach ホーム画面
Your Virtual English Coach レッスン画面

開発してみて感じたこと

上に書いた以外にも色々と調べながら、苦労しながら開発をしたけれども、ChatGPTが話題になってから、静かに時代が変わってしまったように思える。数年前に個人開発(というか趣味)でこれを作っていたとしたら、おそらくそれだけで事業になることが一人で、そして約1ヶ月程度で完成してしまったように思える。かかった費用は、作業していたカフェのコーヒー代とAPIの料金でおそらく数千円しかかかっていない。皮肉なことにサービスの本質的な部分の料金よりもコーヒー代の方が大きい。サーバーやウェブアプリ内で使っているサービスも今は無料枠で済んでいる(誰も知らないウェブアプリだからだけれども・・・)。広義の意味で言語を用いた作業は、言語モデルにやってもらったり、助けてもらえたりする時代になった。マルチモーダルなモデルによって、画像、動画、音声も扱える。果たして、世界はどう変わっていくのか?そして、自分や人間はどうしていくのかというSFっぽいことが頭をよぎる。自分は、エンジニアだから、AIとは仲良くしていきたいなと思う。なんて言ったってドラえもんみて育ったんだから。

Human: なあ、ソクラテス。こんな状況なんだが、俺は一体どうすればいいんだろうか?
ソクラテスGPT: やあ人間よ。今日は、今後の人類、そして社会の話をしたいのかい?そうだね。それは・・・

以上、読者のみなさま、ここまで読んでくれてありがとうございました!


この記事が気に入ったらサポートをしてみませんか?