12時間でAI気候意思決定エンジンを構築する
ほとんどのカーボンフットプリント・アプリは失敗に終わります。
数値を示すだけ、あるいは一般的なアドバイスを与えるだけです。意識を高めるだけでは、行動は変わりません。自分のフットプリントがCO2 8トンであることを知ったところで、次に何をすべきかは分かりません。
私はこの問題を解決するためにClimbitを構築しました。これは計算機ではありません。意思決定エンジンです。それは一つの問いに答えます。「今すぐ取れる最善の行動は何か?」
The Core Logic
ほとんどのツールは測定に焦点を当てていますが、Climbitは意思決定に焦点を当てています。システムは以下の項目を確認します:
- 通勤
- 家庭のエネルギー
- 食事と食生活
- 旅行
二酸化炭素削減量、コスト、労力、および関連性に基づいて、行動の優先順位を付けます。
The Engineering Split
私は重要な選択をしました。数学的処理とAIを分離したのです。
大規模言語モデルは数学が苦手です。数値をハルシネーション(捏造)することがあります。Climbitでは、AIが排出量を計算することはありません。
ワークフローは以下の通りです:
- テキスト、音声、またはレシートの画像を通じてデータを提供します。
- Geminiがデータを構造化されたJSONに抽出します。
- TypeScriptエンジンが実際の計算を行います。
- AIが結果を解釈し、パーソナライズされたプランを提示します。
これにより、データの正確性とパーソナライズされた体験を両立させています。
The Tech Stack
- Next.js 15 and React 19
- TypeScript and Tailwind CSS
- Supabase and Clerk
- Google Gemini 1.5 Flash
- Vitest and Playwright
Solving Real Problems
これを構築するには、困難な技術的問題を解決する必要がありました:
- Hydration(ハイドレーション):Rechartsがサーバーサイドレンダリング中にエラーを引き起こしました。クライアントがマウントされるまでチャートのレンダリングを遅延させることで解決しました。
- Security(セキュリティ):トークンバケット方式のレートリミッターを実装しました。これにより、高コストなAIエンドポイントの悪用を防ぎます。
- Accessibility(アクセシビリティ):セマンティックHTMLとARIAラベルを使用しました。アクセシビリティは後回しにするものではなく、必須要件です。
The Lesson
AIはコーディングを加速させますが、アーキテクチャに取って代わるものではありません。
私は時間の大部分を以下に費やしました:
- Hydration問題の修正。
- エッジケースの検証。
- セキュリティの強化。
- 信頼性の向上。
デモと製品の違いは、こうした細部にあります。人々が必要としているのは、さらなる気候データではなく、より良い気候に関する意思決定なのです。
Optional learning community: https://t.me/GyaanSetuAi