דילוג לתוכן
Maor KertsmanMaor Kertsman
בואו נדבר
שותפות מוצרמוצר צרכני

Rutz — מאמן ריצה עם AI

מוצר שאני בונה עם שותף: נתוני Garmin הופכים לניתוח ריצה, עם חישובים בקוד והסברים בעזרת AI.

הדגמה: ריצה שהסתיימה מגיעה כנתוני Garmin גולמיים, הקוד מנקד אותה (ניקוד, כפילויות, עומס אימון, תבניות), ה-AI מסביר בשפה פשוטה, ומאיה הרצה מחליטה מה לעשות עם העצה.

מסך ממשק משוחזר עם נתונים פיקטיביים

המוצר

Rutz היא אפליקציית iOS שאני בונה עם שותף. היא הופכת נתוני Garmin של רצים לניתוח שאפשר להבין ולפעול לפיו. החישובים נעשים בקוד, ה-AI עוזר לפרש את התוצאות, והרץ מחליט מה לעשות עם ההמלצות.

שאלת התכנון

איך הופכים נתוני ריצה להמלצה שהרץ יכול להבין ולבחון? תכננתי הפרדה בין חישובים שניתנים לשחזור לבין הפרשנות של מודל השפה, כדי שההסבר יישען על תוצאות מחושבות.

מה נבנה

הקוד עושה את החישובים
ניקוד, ניקוי כפילויות, חישובי עומס אימון וזיהוי דפוסים רצים כקוד דטרמיניסטי. אותה ריצה תמיד מקבלת את אותם מספרים.
ה-AI מפרש את התוצאות
המודל מקבל תוצאות מחושבות, לא נתונים גולמיים, ומסביר מה הן אומרות לרץ: ניתוח מעמיק אחרי ריצה, וצ׳אט קל יותר.
צינור נתונים מ-Garmin
פעילות ה-Garmin של כל רץ זורמת דרך חיבור משלו אל Postgres, ומשם קוד הניתוח אוסף אותה.
אפליקציית iOS ושרת
אפליקציית SwiftUI עם Apple Sign-In, שרת FastAPI עם SQL פרמטרי פשוט על Postgres, פרוס על Railway.
כלי פנימי לניתוח ריצות
כלי פיתוח שמריץ מחדש ריצות עם פרמטרים שונים בזמן אמת, כדי לראות איך שינוי בניקוד מתנהג לפני שמשחררים אותו.

החלק שלי

אני אחראי לארכיטקטורה ולתכנון ה-AI ב-Rutz: איך המערכות מתחברות, מה מחושב בקוד ומה המודל מקבל כדי לפרש. השותף שלי כתב את רוב הקוד.

תוצאות מבוססות

  • AI נכנס רק איפה שצריך פרשנות
  • כל מספר באפליקציה ניתן לשחזור מהקוד
  • הרץ נשאר בשליטה על מה לעשות עם העצה

כלים

SwiftUI, FastAPI, Postgres, Garmin, Claude, Gemini, Railway

איזו משימה הייתם שמחים להוריד מהיום?