😸
第一回:趣味でサービス作り始めました
2024-05-11
2024-05-16
約1357字
最近、趣味のプログラミングでサービスを作り始めたので(まだほぼ形が無い状態)、その作成過程や詰まったポイントなどを複数回にわたって、記事にできればと思っています。
第一回目としては、どんなものを作っているのか?なぜ作っているのか?あたりを焦点に話をできればと思っています。
※役に立つ記事になるかはなんとも言えないですが、考え方や今後記載予定のtipsが、みなさまのお役に立てば幸いです。
いくつか機能を盛り込んだ秘書AI的なのを作りたいと思っています。
下記のような構成イメージをしていて、ユーザーがAIに問い合わせすると、色々と回答してくれるサービスを想定しています。
①秘書AIのユースケース(ユーザーが能動的)
①のケースはユーザーが能動的に動作する必要がありますが、将来的には②のようにユーザーが受動的にAIに提案されるようなケースも作っていきたいと思っています。
②秘書AIのユースケース(ユーザーが受動的)
ここまで聞くと、凄まじい秘書AIな感じがしますが、ある程度どのジャンルが得意か?を限定して、AIを構築することを想定しています。
※また、どこまでの精度(正しく動作するか)を突き詰められるかは、不明です。やってみないとわからない点も多いです。
ユーザーのIF(インターフェース)は、スマートフォンアプリを想定しており、取り急ぎはiOSのアプリ上での利用を考えています。
では、具体的にどんな機能を作ろうしているか?と言うと、下記のような機能を現在は考えています。
※ただし、ここは今後大きく変わる可能性もあります。(実装者の気分次第)
※現状だと、まだユーザーが受動的に好奇心を駆り立てるような機能要求は作れていないので、今後追加していきたいと思っています。
機能・非機能要求 | 補足 |
チャット形式にAIとやりとりが出来る | |
天気を教えてくれる | |
料理のレシピを教えてくれる | |
TODOの登録、一覧が簡単に見れる | |
なるべくランニング費用は安くしたい | 現時点では、実装者のみの利用を想定しているため、なるべく安い構成としたい |
実装者のみがとりあえず利用できれば良い | |
AIの応答速度は遅すぎなければ良い | |
インターネットの情報も含めて、回答して欲しい | 情報精度を上げるために、インターネットでの検索もできるようにして欲しい |
何かしらモノを作る場合、それは何かしらの理由があるのがほとんどだと思います。
※お金を稼ぐためであったり、人の何かしら課題を解決するためだったり、勉強のためだったり、などなどですね。
私の趣味プロの場合、基本的に下記のどちらか(もしくは両方)になります。
今回の場合は、下記です。
常々ですが、自分を自動で管理してくれるようなAIを作ったみたい、という思想はかなり前からありました。現状のLLMの劇的な発展もあり、試しに作ってみようと思った次第です。
ちなみに競合調査・類似サービスはあまりしていません。
※課題解決・お金を稼ぐなど、お仕事の場合、市場調査をした上で、プロダクトを作る意義があるか?は、調査すべきです。ですが、今回のケースでは、スキルアップも包括しているため、市場調査は真面目にしなくてもいいかな、、とサボっています。
これから構成は何度かアップデートをしていきますが、一番シンプルな構成は、下記のような構成です。
③簡易的なシステム構成
セキュリティ的な問題点を除けば、上記のような構成がシンプルで構築することが出来ます。
ユーザーのIFは前述した通りスマートフォンアプリ(まずはiOSを想定)になっています。各コンポーネントがどのような役割を持つかを下記に整理しています。
コンポーネント名 | 概要・機能 |
Mobile Apps | ユーザーのIFを担うクライアントアプリ。Flutterでの実装を想定。UI/UXはチャット形式を想定しているが、今後要検討。 |
CloudRun | クライアントアプリからアクセスされるバックエンドサーバーの本体。秘書AIのメインとなる機能はRestfulなAPIとして、クライアント側に提供することを想定。LLMとのやり取りを行うためにLangChainを用いている。CloudRunにしたのは、リクエストがないタイミングではコストが発生しない点、Docker Imageでの構成が楽な点があるため。 |
Firestore | 会話履歴であったり、TODO情報などを保存するためのデータベース。Firestoreにしたのは、defaultを使う場合、(利用量が少なければ)料金が発生しないため。LangChainで提供されているチャットメモリ機能としては、こちらを参考にして、使うデータベース候補を考えると良い。 |
Gemini | LLMの本体。OpenAI ChatGPTなどで代用も可能。Geminiにしたのは、ちょっと使ってみたかったのと、性能の割には料金が安い印象だったため。(ただ、これはちゃんと整理したほうが良いので、今後整理したい) |
ただし、現状の構成では下記のような問題点もあります。
次回の記事では、上記を解決するためにどのような対応ができるか?を、記載していきたいと思います。
©︎ 2025 - Yard