Варіант: Чатбот-фітнес-тренер (WorkoutBot)
Предметна область: Розумний фітнес-асистент для планування тренувань та відстеження прогресу. Застосунок допомагає користувачеві формувати розклад, рахувати активність та відповідати на питання щодо фітнесу. Завдяки LangGraph-агенту бот вміє самостійно оновлювати таблицю розкладу користувача за допомогою інструментів.
- Створіть віртуальне середовище та активуйте його:
python -m venv venv source venv/bin/activate # Для Windows: venv\Scripts\activate
- Встановіть залежності:
pip install -r requirements.txt
- Додайте ваш ключ Google Gemini API:
- Створіть файл
.streamlit/secrets.toml - Додайте рядок:
GEMINI_API_KEY = "ваш_ключ"
- Створіть файл
- Запустіть застосунок:
streamlit run app.py
app.py— головний файл з UI-логікою на базі Streamlit. Тут налаштовані вкладки, бічна панель (sidebar), інтерактивна таблиця, графік та стрімінг відповідей.agent.py— модуль з логікою AI-агента на базі LangGraph. Містить інструменти для роботи з розкладом та checkpointer для збереження контексту розмови (MemorySaver).images/— папка з прикладами екранів та діалогів застосунку для документації.requirements.txt— список необхідних бібліотек.
У застосунку повністю виконані базові та додаткові вимоги практичної роботи:
- Багатосторінковість (Tabs): Інтерфейс розділено на дві вкладки:
st.tabs(["💬 Чат з тренером", "📊 Мій розклад та Прогрес"]). - Бічна панель (Sidebar): Використовується для налаштувань. Містить:
- Перемикач режимів
st.radio(Звичайний чат / Агент). - Слайдер
st.sliderдля температури. - Текстове поле
st.text_areaдля редагування системного промпту. - Блок
st.expanderз інформацією.
- Перемикач режимів
- Експорт даних: Кнопка
st.download_buttonдля завантаження історії чату у текстовий файл. - Інтерактивна таблиця:
st.data_editorу другій вкладці для перегляду та ручного редагування плану тренувань (з чекбоксами виконання). - Візуалізація: Метрики
st.metric(Стрік, Кількість тренувань) та стовпчиковий графікst.bar_chartдля візуалізації тривалості навантажень по днях.
Загальний вигляд головних екранів та компонентів:

Як форму демонстрації обрано набір скріншотів з різними сценаріями використання.









