Talk
ActionCableなら簡単? 生成 AIの応答をタイピングアニメーションで表示。実装、コスト削減、テスト、運用まで。
ChatGPT をはじめとする LLM API は、レスポンスを全て受け取るのには時間がかかりますが、ストリーミングでデータを受け取ることができます。ストリーミングで得た結果をタイピングアニメーション風に表示することで、Web API としては遅い LLM を使いつつも UX を向上させることができます。
Rails でこれを実現するには ActionCable を使うのが簡単そうな一方で、本番環境での運用例は少なく、以下のような不安が生まれてきました。
- 生成結果が数文字ごとに大量に渡されるがそのままフロントエンドに返して大丈夫か
- LLM へのプロンプト作成が重い処理の場合、非同期で動作させたいがどんな構成にすべきか
- コネクションを長時間占有するがアプリケーションサーバで ActionCable を動作させてよいのか
- 高い API なので開発環境のコストが気になる
- テストしづらい
本トークでは、LLM と ActionCable を用いた実装、テスト、インフラ構成のポイントと、各フェーズでの課題解決方法について紹介します。
発表資料
Speaker
- kaiba kaibadash のGithubページ
-
株式会社movでRailsエンジニアをしております。ChatGPTやGeminiを使うプロダクトを開発しています。心地よい開発環境構築のため、Rubocop修正、Flaky test直しも頑張ってます。本人が守銭奴なのでコストに気を使いながら開発をしたり、コスト削減にも喜びを感じます。ロードバイクと釣りが好きなので気軽に誘ってください。