SelfCoach — голосовой AI-тренер. Telegram Mini App с голосовым управлением: пользователь говорит «поставь тренировку на завтра, добавь жим лёжа 4 по 8, вчера руки болели — растяжку не ставь» — Whisper
транскрибирует, Claude с 10 tools составляет план и пишет его в БД.
Архитектура:
1. Голос → файл .ogg → Whisper API (транскрипт)
2. Текст + контекст пользователя (профиль, цели, история 7 тренировок) → Claude Sonnet с 10 custom tools
3. Claude сам решает в каком порядке вызывать tools и какие — это не «генератор ответа», а агент с правами на изменение состояния
4. Side-effects: запись в БД через API SelfCoach
5. Текстовый ответ юзеру в Mini App
10 кастомных tools: create_workout, log_set, get_history, list_exercises, suggest_split, update_goal, set_reminder, get_metrics, schedule_rest_day, who_am_i.
Технические находки:
— Prompt-conditioning Whisper на gym-сленге («жимуха», «приседон») — точность транскрипта вырастает заметно
— who_am_i как обязательный первый tool — даёт +200мс к ответу, зато ноль ошибок с привязкой к юзеру
— Без TTS на выходе — в зале между подходами никто не слушает длинный голосовой ответ
Стек: Python · aiogram 3 · FastAPI async · PostgreSQL · Whisper API · Claude API · Telegram WebApp API · VPS Linux.
Результат: MVP в проде, 5 активных юзеров на тестах, отклик голос → ответ ~3 секунды.
https://t.me/SelfCoachTrainingBot