アルパカ三銃士

〜アルパカに酔いしれる獣たちへ捧げる〜

GPT-3.5 を使った AI コンシェルジュの開発秘話を YAPC::Kyoto 2023 Reject Con で話してきました / YAPC::Kyoto 2023 の感想

YAPC::Kyoto 2023 めっちゃ最高でした。オフラインカンファレンスはやっぱり参加すると楽しいー!

YAPC::Kyoto 2023 Reject Con

YAPC::Kyoto 2023 は個人スポンサーとして参加しました。ついでに最近やっていることを話したいなと思い応募したのですが落選してしまいました。しかし、スタッフの素敵な心遣いで前日祭の Reject Con で話せることになりました。以下は当日私が話したことの要約です。

NOT A HOTEL AI コンシェルジュ「Kevin」の開発秘話

スライドは、以下のURLからご覧いただけます。

NOT A HOTEL の AI コンシェルジュ「Kevin」の開発についてお話しました。

まず、NOT A HOTEL の紹介から始めました。NOT A HOTEL は、オーナーが使いたい分だけ購入できる別荘型物件で、使わない時にはホテルとして貸し出し、収益を得られるという画期的なサービスです。日本全国の NOT A HOTEL 物件を相互利用できることも魅力です。

主題である AI コンシェルジュ「Kevin」の開発について説明しました。Kevin は、Sunshine ConversationsDialogflow CX, GPT-3.5, 4 を組み合わせて開発されました。Sunshine Conversationsは、複数のメッセージングアプリでの会話を一元管理できるプラットフォームで Pass Control 機能により Switchboard の向き先を変更する事で会話の人 <-> Dialogflow CX <-> GPT-3.5, 4 への流れを柔軟に制御できます。Dialogflow CX は Google が提供する AI 対話エンジンで、自然言語理解(NLU)と対話フロー管理を行います。

GPT(Generative Pre-trained Transformer)は、AI コンシェルジュ「Kevin」の Dialogflow CX では拾いきれない、雑談や提案を行うために必要な技術です。GPT だけではなく LangChain も組み合わせていますが、LangChain の仕組み上 OpenAI の Chat Completion API へ大量のリクエストを行います。しかし、この API は大量にリクエストが送られてきてしまうとエラーレートが上がってしまう傾向にあるようで、それをどう解決しようと試みたか、今後どう対処していくか考えていることを話しました。

世間ではどう使っていくかのアイデアで溢れていますが、実際にプロダクションへ投入してみて、どんな問題が散見されたかといった話はまだ少なく感じるので、Kevin を紹介しつつ、GPT の苦労話をできたことはとても良かったんじゃないかなと思いました!

ちなみにトークでは触れてませんでしたが、生成されたテキストは必ずログに出しています。それと OpenTelemetry を利用してアプリケーションの動きを可視化できるようにしていました。

感想

個人的には Hiroya Ito さんの「インシデントレスポンスを自動化で支援する Slack Bot で人機一体なセキュリティ対策を実現する」の話が一番勉強になりました。

Blameless といったインシデント管理 SaaS みたいにインシデント単位で Slack チャンネルを作りその中で対応のやり取りを行い、ChatGPT を用いて Slack のメッセージを要約してインシデントレポートをまとめるというもの。

会社でも真似したいと思える内容でした。

YAPC::Kyoto 2023

カンファレンス当日はちょっと遅れて到着しました。久しぶりに対面する方が多くて同窓会な感じでとても楽しかったし嬉しかったのが大きかったです。思い出は沢山あって全部書くのが大変なので印象に残ったことを 2 つピックアップしました。

新人エンジニアのまみたすさんのこと

今回僕が参加することもあり、同僚の @fumifumi__8 さんが彼女の元同僚の @mamitus_ さんと参戦してくれました。当日再会したのはあらたまさんの「あの日ハッカーに憧れた自分が、「ハッカーの呪縛」から解き放たれるまで」のトーク会場でした。終了後、あらたまさんも一緒にランチへ行きました。

あらたまさんとは YAPC::Japan 関連のイベントでいろいろお世話になっていたので、久しぶりにお話しできる機会を得て嬉しかったのです。それよりも新人エンジニアのまみたすさんがあらたまさんにエンジニアとしてのキャリアでの相談をしていたり、あらたまさんも楽しく雑談をしている様子だったので、私自身も縁作りに貢献できたのかなともっと嬉しく思いました。こういうのは久しぶりだったのでなんか懐かしかったです。

なんとまみたすさんが憧れの miyagawa さんとお話ししたとのこと。ツイート通りの話を聞きました。めっちゃいい話じゃんと思い、直接的ではないですが同僚のふみふみさんを誘って良かったなと心の底から思えました。

#hack_hono

@yusukebe さんと初めて対面でお会いできました!

私もプログラミング(Perl)を始めたての頃はよくゆーすけベーさんの記事を読んで、自分もこういうアプリケーションだったり並列処理で画像をいっぱいダウンロードできるようなスクリプトをシュッとかけるようなエンジニアになりたいと思っていました。こういった思い出もあったので本当に嬉しかったです。

前日祭では Hono Conference #01 として一緒にご飯行ったり、今アツイ hono の話もできました。@usualoma さんや @chimame_rt さんともついにお会いできました。この会の中でカンファレンス当日に JWT 周りで PR を作ることを約束していたので、#hack_hono としてツイートしながら PR を作成し、ついにはコントリビュートすることもできました。

github.com

さらにサプライズとして @akiym さんがレビューしてくれたのもめっちゃ嬉しかったです。(実はあともう一個作る予定)

全体を通して

もう本当に最高でした。やっぱり凄い人が集まってることもあり、全体的にどのトークも非常に勉強になりました。意外とびっくりしたのはやっぱり最後のオフライン YAPC から 3 年?経ってることもあり大体の人の見た目が変わっていたことでした。見た目では気づかなくて話してみると、あー!久しぶりです!みたいなパターンが多かったなーと反省です。

個人的に好きなスライドの一枚は @nekokak さんのこれでした。

分かりみが深かった。いっぱい書きたいことはありますが、体力の限界(今夜中の 3 時)なのでここまでにします。

運営スタッフの皆様、素晴らしいカンファレンスを本当にありがとうございました。