離乳食や幼児食など、子どもの食にまつわる保護者の相談に応じるAIチャットアプリを、Next.jsを軸に生成AI向けのSDKを組み合わせて開発しました。子どもの月齢やアレルギーの情報からプロンプトを組み立て、栄養に関する公的なガイドラインをpgvectorによる検索で参照して回答に反映します。食材が月齢に適しているかの判定やレシピの提案はツール呼び出しとして実装し、過去の会話や直近の食事記録も踏まえた応答が可能です。回答に対する利用者の評価を記録して品質を計測する仕組み、OAuthとメールによる認証、E2Eとユニットのテスト、エラー監視まで含めて整備しています。
- AIの記憶に答えさせない
- 食材の適否判定やレシピの提案を、モデルが持つ知識に委ねずツールとして定義し、必要な場面で呼び出す構成にしました。月齢ごとの食材の可否は、もっともらしく誤ると健康に直結します。判定の根拠を自社のデータ側に置くことで、誤りが見つかったときに修正できる箇所が特定できます。
- 属性を毎回の入力に頼らない
- 子どもの月齢やアレルギーの情報を保持し、相談のたびにプロンプトへ組み込む構成にしました。利用者が毎回書き添える前提にすると、書き漏らした回だけ前提の異なる回答が返ります。揺らぎを許容できない条件は、利用者の入力ではなくアプリ側が保持して渡す側に置いています。
- 検索基盤をアプリのDBに同居させた判断
- 公的な栄養ガイドラインの検索を、専用の検索サービスを別立てせずアプリのPostgreSQL上のpgvectorで実装しました。参照する文書の量が限られる段階で基盤を分けると、運用対象と費用が増える割に得られる性能差が小さくなります。規模が変われば分離する前提で、今の規模に合う構成を選んでいます。
- 公的な資料を回答の根拠に置く
- 栄養に関する公的なガイドラインを検索して回答に反映しています。モデルが一般知識として持つ内容は、どの資料に基づくかを後から示せません。健康に関わる助言では、答えの正しさと同じくらい、何を根拠にしたかを説明できることが利用者と運営の双方にとって必要になります。
- 評価の仕組みを機能と同時に作る
- 利用者からの評価を記録し、回答の品質を継続的に確認できるようにしました。生成部分は同じ質問でも応答が変わるため、公開後に品質が落ちても、後付けの仕組みでは劣化がいつ始まったのかを遡れません。改善の優先順位をデータで決めるための前提として初期に組み込んでいます。
- 文脈の保持と預かるデータ量の釣り合い
- 以前の会話と直近の食事記録を応答に反映し、毎回状況を説明し直さずに済むようにしました。ただし文脈を厚くするほど機微な情報を保持することになるため、保存する範囲と期間を体験の向上と引き換えに決める判断が必要になります。使いやすさだけで決められない領域です。
- 生成以外の部分を機械的に確認できる状態に
- VitestのユニットテストとPlaywrightのE2Eテスト、エラー監視、OAuthとメールの認証を開発の初期から整えました。生成部分の挙動は自動テストで固定できないからこそ、認証や記録の保存といった周辺を確実に検証できる状態にしておく必要があります。
この種のシステムで検討する論点(想定例)
以下は同種の案件で一般的に検討する内容の整理であり、上記事例の詳細を示すものではありません。
健康に関わる回答の安全設計は事業の前提
小さな子どもの食事やアレルギーについての助言は、間違えれば健康に直接影響しうる領域です。AIの一般知識だけに頼らず根拠のある資料を検索して回答に反映し、医師の判断を要する相談に対しては言い切らず、受診や専門家への確認をすすめる応答に切り替える決まりを設けます。これは技術的な安全策であると同時に、利用者と社会からの信頼を得るための事業上の要件でもあり、利用規約やプライバシーポリシーと一体で設計すべきものです。一般的な情報であり、個別の事案は専門家・所管官庁にご確認ください。
会話データの扱いを事業設計に組み込む
月齢やアレルギー、食事の記録は、家庭に関する機微な情報です。文脈を保持する設計は体験を向上させますが、保存する範囲と期間、削除の手段を利用者に説明できる状態にしておく必要があります。LLMプロバイダへ送る内容を把握し、必要最小限に絞る方針を開発の初期に決め、プライバシーポリシーへ反映します。信頼を損なう事故は一度で事業を止めかねないため、データの扱いは開発後の確認事項ではなく、プロダクト設計の一部として経営が関与すべきテーマです。
使った技術・扱った領域
- Next.js
- React
- TypeScript
- PostgreSQL
- pgvector
- shadcn/ui
- Tailwind CSS
- Vitest
- Playwright
- RAG
- LLM
関連するサービス
関連する領域
関連するインサイト
- AIの答えの責任は誰が負うかAIが誤った回答を返したときに誰がどう説明するのかを、社内利用と顧客向け機能の両面で整理します。免責文で守れる範囲とその限界、誤答を前提にした画面設計、事故が起きたときの初動までを発注側の判断材料としてまとめます。
- AIとルールベースの使い分け全部をAIに任せる必要はありません。条件が明確な処理はルールで書き、揺らぎのある部分だけAIに任せる。業務を工程に分解して振り分ける6つの手順を具体的に整理します。
- 医療・ヘルスケア領域のWebサービスで気をつけたい規制と設計医療・ヘルスケア領域のWebサービスで企画段階に確認したい規制上の論点と、本人確認・アクセス制御・監査ログ・同意などの設計上の配慮、医療従事者との協働やMVPで検証する範囲の絞り方を整理します。
他の開発事例
監修: フィリット・コンサルティング株式会社公開