ペットフードの相談ができるAIを作りたい 要件定義編2
こんにちは、ほーゆーです。
前回は、要件定義をChatGPTに投げてフィードバックをしてもらいました。
要件定義を修正していきます。
筆者は業務未経験でポートフォリオ作成のために今回のサービスを作成しています。技術的に拙い点はご了承ください。
以下は、改めて整理した要件定義です。目的、必要要件、不必要要件、技術スタックを各項目で明確に記載しました。プロジェクトのフェーズごとに分けて実装していくと、スムーズに開発を進められると思います。
要件定義書
1. サービスの目的
犬の飼い主が、犬に適した食事を見つけるための情報を得られるWebサービスを提供します。犬種や食事の好みに合わせたペットフードを提案し、ユーザーが犬に合った食事を選びやすくすることを目指します。サービスの役割としては、獣医に相談するほどでもない食事に関する軽い質問や、一般的なフードに関する情報提供も行います。
2. 必要要件
2-1 ユーザー管理機能
ユーザーアカウント登録: メールアドレスまたはSNSアカウントで登録可能。
ペットアカウント追加機能: ユーザーは複数のペットアカウントを追加でき、以下の情報を保存できる。
犬種、年齢、体重、性別
健康状態、アレルギー、食事の好み
日常的な運動量や食事習慣などの基本情報
2-2 フード提案機能
質問ベースのフード提案: ユーザーが入力した犬の情報に基づき、日本国内で流通している総合栄養食から、最適なフードをいくつか提案。
検索フィルター: ユーザーが条件を絞ってフードを検索できる機能を提供。
フィルター項目:成分、価格、嗜好性、犬種、年齢など
2-3 チャット相談機能
カジュアルなチャット形式: チャットボット形式で、自然言語処理(NLP)を用いたフード提案や食事に関する簡単な質問に対応。
質問方法: ユーザーが自由入力で質問できる機能と、選択肢から質問内容を選べる機能の両方を提供。
FAQからの回答: 質問に対しFAQからの情報も返答できるよう、よくある質問を事前に登録。
2.4 FAQ機能
よくある質問の表示: 総合栄養食の基本的な知識や、飼い主がよく抱く疑問に対する回答をFAQ形式で提供。
定期的なFAQの更新: ユーザーから寄せられるフィードバックを基に、FAQを適宜更新。
2-5 データ管理
ペットフードデータベースの構築: 日本で販売されているペットフードの成分、価格、嗜好性に関するデータを格納し、検索やフィルタリングが可能な状態にする。
2-6 フィードバック機能
- **問い合わせ機能**: チャットの応答が期待に沿わない場合、ユーザーからのフィードバックや問い合わせを管理者(開発者)に通知する機能。
3. 不必要要件
医療行為: 獣医師の診察が必要な医療に関する内容は取り扱わない。
おやつの提案: おやつについてはFAQで簡単な情報提供のみ行う。
4. 技術スタック
4-1 フロントエンド
React: 動的でインタラクティブなUIを構築するためのJavaScriptライブラリ。
TypeScript: 型付けによりコードの保守性を向上。
Tailwind CSS: 簡便なスタイリングを実現するutility-firstのCSSフレームワーク。
4-2 バックエンド
Node.js: フロントエンドと一貫性のあるJavaScriptベースのランタイム環境。
Express.js: シンプルかつ柔軟なWebアプリケーションフレームワーク。
MongoDB: ペットやペットフードに関するデータを保存するためのNoSQLデータベース。
4-3 自然言語処理 (NLP)
OpenAI GPT-3 API: チャットボットの応答生成に利用するNLPモデル。
4-4 デプロイメント
Docker: アプリケーションのコンテナ化による環境一貫性の確保。
AWS または Google Cloud Platform: クラウド上でのアプリケーションのデプロイとホスティング。
4-5 CI/CD
GitHub Actions: 継続的インテグレーションとデリバリーの自動化。
4-6 その他のツール
Jest: ユニットテストと統合テストのためのJavaScriptテストフレームワーク。
ESLint: コード品質とスタイルの一貫性を保つ静的コード分析ツール。
5. 開発フェーズ
フェーズ1: MVP開発
ユーザー登録、ペットアカウント追加、質問ベースのフード提案、FAQの実装
フェーズ2: 機能追加
チャット相談機能とフィードバック機能の実装
フェーズ3: 拡張と改善
フィルタリング機能の高度化やペットフードデータの充実、デプロイメントのスケーリング
要件定義はこれで完成としていきます。
まずはフェーズ1の実装をやってみます。
この記事が気に入ったらサポートをしてみませんか?