ساخت یک موتور تصمیمگیر اقلیمی مبتنی بر هوش مصنوعی در ۱۲ ساعت
بیشتر اپلیکیشنهای مربوط به ردپای کربن شکست میخورند.
آنها فقط یک عدد به شما میدهند. توصیههایی کلی ارائه میدهند. آگاهی به تنهایی رفتار را تغییر نمیدهد. دانستن اینکه ردپای کربن شما ۸ تن CO2 است، به شما نمیگوید که قدم بعدی چیست.
من Climbit را برای حل این مشکل ساختم. این یک ماشینحساب نیست، بلکه یک موتور تصمیمگیر است. این سیستم به یک سوال پاسخ میدهد: بهترین اقدامی که همین الان میتوانم انجام دهم چیست؟
منطق اصلی
بیشتر ابزارها بر اندازهگیری تمرکز دارند، اما Climbit بر تصمیمگیری تمرکز میکند. سیستم موارد زیر را بررسی میکند:
- رفتوآمد
- انرژی خانه
- غذا و رژیم غذایی
- سفر
این سیستم اقدامات را بر اساس میزان کاهش کربن، هزینه، تلاش و میزان مرتبط بودن رتبهبندی میکند.
تفکیک مهندسی
من یک انتخاب حیاتی انجام دادم: ریاضیات را از هوش مصنوعی جدا کردم.
مدلهای زبانی بزرگ در ریاضیات ضعیف هستند و اعداد را از خود در میآورند (توهم میزنند). در Climbit، هوش مصنوعی هرگز میزان انتشار گازها را محاسبه نمیکند.
گردش کار به این صورت است:
۱. شما دادهها را از طریق متن، صوت یا تصاویر رسیدها ارائه میدهید. ۲. Gemini دادهها را استخراج کرده و به فرمت ساختاریافته JSON تبدیل میکند. ۳. یک موتور TypeScript محاسبات واقعی را انجام میدهد. ۴. هوش مصنوعی نتایج را تفسیر میکند تا یک برنامه شخصیسازی شده به شما ارائه دهد.
این کار باعث دقت دادهها و شخصیسازی تجربه کاربری میشود.
پشته تکنولوژی (Tech Stack)
- Next.js 15 and React 19
- TypeScript and Tailwind CSS
- Supabase and Clerk
- Google Gemini 1.5 Flash
- Vitest and Playwright
حل مشکلات واقعی
ساخت این پروژه مستلزم حل چالشهای فنی دشواری بود:
- Hydration: کتابخانه Recharts هنگام رندرینگ سمت سرور باعث بروز خطا میشد. من این مشکل را با به تعویق انداختن رندرینگ نمودارها تا زمان mount شدن کلاینت حل کردم.
- Security: من یک محدودکننده نرخ (rate limiter) از نوع token bucket پیادهسازی کردم. این کار از نقاط انتهایی (endpoints) گرانقیمت هوش مصنوعی در برابر سوءاستفاده محافظت میکند.
- Accessibility: من از HTML معنایی و برچسبهای ARIA استفاده کردم. دسترسیپذیری یک الزام است، نه چیزی که بعداً به آن فکر شود.
درس آموخته شده
هوش مصنوعی سرعت کدنویسی را افزایش میدهد، اما جایگزین معماری نمیشود.
من بیشتر وقت خود را صرف موارد زیر کردم:
- رفع مشکلات hydration.
- اعتبارسنجی حالات مرزی (edge cases).
- تقویت امنیت.
- بهبود قابلیت اطمینان.
تفاوت بین یک نسخه دموی اولیه و یک محصول واقعی در همین جزئیات نهفته است. مردم به دادههای اقلیمی بیشتر نیاز ندارند، بلکه به تصمیمات اقلیمی بهتر نیاز دارند.
Optional learning community: https://t.me/GyaanSetuAi