Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏋️‍♂️ AI-Тренер WorkoutBot (Практичне завдання №3)

1. Вибраний варіант та короткий опис предметної області

Варіант: Чатбот-фітнес-тренер (WorkoutBot)
Предметна область: Розумний фітнес-асистент для планування тренувань та відстеження прогресу. Застосунок допомагає користувачеві формувати розклад, рахувати активність та відповідати на питання щодо фітнесу. Завдяки LangGraph-агенту бот вміє самостійно оновлювати таблицю розкладу користувача за допомогою інструментів.

2. Інструкція з запуску застосунку

  1. Створіть віртуальне середовище та активуйте його:
    python -m venv venv
    source venv/bin/activate  # Для Windows: venv\Scripts\activate
  2. Встановіть залежності:
    pip install -r requirements.txt
  3. Додайте ваш ключ Google Gemini API:
    • Створіть файл .streamlit/secrets.toml
    • Додайте рядок: GEMINI_API_KEY = "ваш_ключ"
  4. Запустіть застосунок:
    streamlit run app.py

3. Опис структури файлів

  • app.py — головний файл з UI-логікою на базі Streamlit. Тут налаштовані вкладки, бічна панель (sidebar), інтерактивна таблиця, графік та стрімінг відповідей.
  • agent.py — модуль з логікою AI-агента на базі LangGraph. Містить інструменти для роботи з розкладом та checkpointer для збереження контексту розмови (MemorySaver).
  • images/ — папка з прикладами екранів та діалогів застосунку для документації.
  • requirements.txt — список необхідних бібліотек.

4. Опис реалізованих функцій та UI-компонентів

У застосунку повністю виконані базові та додаткові вимоги практичної роботи:

  • Багатосторінковість (Tabs): Інтерфейс розділено на дві вкладки: st.tabs(["💬 Чат з тренером", "📊 Мій розклад та Прогрес"]).
  • Бічна панель (Sidebar): Використовується для налаштувань. Містить:
    • Перемикач режимів st.radio (Звичайний чат / Агент).
    • Слайдер st.slider для температури.
    • Текстове поле st.text_area для редагування системного промпту.
    • Блок st.expander з інформацією.
  • Експорт даних: Кнопка st.download_button для завантаження історії чату у текстовий файл.
  • Інтерактивна таблиця: st.data_editor у другій вкладці для перегляду та ручного редагування плану тренувань (з чекбоксами виконання).
  • Візуалізація: Метрики st.metric (Стрік, Кількість тренувань) та стовпчиковий графік st.bar_chart для візуалізації тривалості навантажень по днях.

5. Скріншоти інтерфейсу (Огляд застосунку)

Загальний вигляд головних екранів та компонентів: Головний екран

6. Демонстрація роботи та Приклади діалогів

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

Скріншот 1 Скріншот 2 Скріншот 3 Скріншот 4 Скріншот 5 Скріншот 6 Скріншот 8 Скріншот 9 Скріншот 10 Скріншот 11

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages