KiberKid2/Artem-sixseven6767

AI киносоветчик

0

stars

2

commits

Python

primary language

May 10, 2026

updated

README

# 🎬 MovieMood — Рекомендатор фильмов по настроению

## 📖 Описание
Веб-приложение на Flask, которое анализирует эмоциональную окраску введённого пользователем текста и рекомендует подходящий фильм. Проект использует современные NLP-модели для анализа тональности и генерации текста на русском языке.

## ✨ Возможности
- 🔍 **Анализ тональности:** Автоматическое определение настроения (позитивное, негативное, нейтральное) с помощью `ruBERT`.
- 🎭 **Генерация рекомендаций:** Подбор одного популярного фильма на основе выявленного настроения с помощью `ruGPT-3 Medium`.
- 🌐 **Простой веб-интерфейс:** Минималистичная форма ввода и наглядное отображение результата.
- 🎨 **Гибкое оформление:** Все стили вынесены в отдельный CSS-файл для удобной кастомизации.
- 🇷🇺 **Оптимизация под русский язык:** Все модели обучены на русскоязычных корпусах.

## 🛠 Технологический стек
| Компонент | Технология / Библиотека |
|-----------|------------------------|
| Backend   | `Flask`                |
| NLP       | `transformers`, `torch`|
| Sentiment | `blanchefort/rubert-base-cased-sentiment` |
| Generation| `sberbank-ai/rugpt3medium_based_on_gpt2` |
| Frontend  | HTML5, CSS3            |
| Язык      | Python 3.8+            |

## 📦 Установка и запуск

1. **Склонируйте репозиторий и перейдите в папку:**
   ```bash
   git clone https://github.com/ваш-username/moviemood.git
   cd moviemood
  1. Создайте виртуальное окружение (рекомендуется):

    python -m venv venv
    # Windows:
    venv\Scripts\activate
    # Linux/macOS:
    source venv/bin/activate
    
  2. Установите зависимости:

    pip install flask transformers torch
    
  3. Запустите приложение:

    python app.py
    

    ⚠️ При первом запуске модели будут автоматически загружены из Hugging Face. Это займёт несколько минут и потребует ~1.5–2 ГБ свободного места на диске.

🌐 Использование

  1. Откройте браузер и перейдите по адресу: http://127.0.0.1:5000
  2. В поле ввода напишите любое сообщение, фразу или эмоцию.
  3. Нажмите кнопку отправки.
  4. Приложение проанализирует текст и выведет строку вида:
    Настроение: хорошее. Рекомендация: «Название фильма»

📁 Структура проекта

moviemood/
├── app.py              # Основной файл Flask-приложения
├── templates/
│   └── index.html      # HTML-шаблон главной страницы
├── static/
│   └── style.css       # Файл стилей для оформления интерфейса
└── README.md           # Документация

💡 Как подключить стили в index.html (если ещё не сделано):

<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">

Flask автоматически раздаёт содержимое папки static/ по маршруту /static/.

🎨 Кастомизация оформления

Файл static/style.css отвечает за внешний вид страницы. Вы можете:

  • Изменить цветовую палитру, шрифты и отступы.
  • Добавить адаптивную вёрстку под мобильные устройства.
  • Интегрировать CSS-фреймворки (Bootstrap, Tailwind) при необходимости.

🔧 Важные примечания перед запуском

В исходном коде есть несколько синтаксических ошибок, которые необходимо исправить:

  1. Импорт модели генерации:
    # Было (ошибка):
    model = AutoModelForCasualLM.from_pretrained(...)
    # Стало:
    model = AutoModelForCausalLM.from_pretrained(...)
    
  2. Регулярное выражение: Обратные кавычки ` не поддерживаются в re.search. Замените их на двойные кавычки:
    m = re.search(r"«([^»]{2,100})»", generated_text)
    
  3. Исправление опечатки: promtprompt (рекомендуется для читаемости).

После внесения правок приложение запустится без ошибок.

⚙️ Рекомендации для продакшена

  • Отключите debug=True в app.run().
  • Используйте WSGI-сервер, например gunicorn app:app или waitress.
  • Для ускорения генерации добавьте device="cuda" (при наличии GPU) или настройте кэширование моделей.
  • Ограничьте длину входного текста и добавьте обработку ошибок при неудачной загрузке моделей или таймаутах генерации.

📄 Лицензия

MIT License

🤝 Контакты

Есть вопросы, предложения или нашли баг? Создайте Issue в репозитории или свяжитесь с автором.

Contributors

KiberKid2

2 commits

KiberKid2/Artem-sixseven6767

AI киносоветчик

0

stars

2

commits

Python

primary language

May 10, 2026

updated

README

# 🎬 MovieMood — Рекомендатор фильмов по настроению

## 📖 Описание
Веб-приложение на Flask, которое анализирует эмоциональную окраску введённого пользователем текста и рекомендует подходящий фильм. Проект использует современные NLP-модели для анализа тональности и генерации текста на русском языке.

## ✨ Возможности
- 🔍 **Анализ тональности:** Автоматическое определение настроения (позитивное, негативное, нейтральное) с помощью `ruBERT`.
- 🎭 **Генерация рекомендаций:** Подбор одного популярного фильма на основе выявленного настроения с помощью `ruGPT-3 Medium`.
- 🌐 **Простой веб-интерфейс:** Минималистичная форма ввода и наглядное отображение результата.
- 🎨 **Гибкое оформление:** Все стили вынесены в отдельный CSS-файл для удобной кастомизации.
- 🇷🇺 **Оптимизация под русский язык:** Все модели обучены на русскоязычных корпусах.

## 🛠 Технологический стек
| Компонент | Технология / Библиотека |
|-----------|------------------------|
| Backend   | `Flask`                |
| NLP       | `transformers`, `torch`|
| Sentiment | `blanchefort/rubert-base-cased-sentiment` |
| Generation| `sberbank-ai/rugpt3medium_based_on_gpt2` |
| Frontend  | HTML5, CSS3            |
| Язык      | Python 3.8+            |

## 📦 Установка и запуск

1. **Склонируйте репозиторий и перейдите в папку:**
   ```bash
   git clone https://github.com/ваш-username/moviemood.git
   cd moviemood
  1. Создайте виртуальное окружение (рекомендуется):

    python -m venv venv
    # Windows:
    venv\Scripts\activate
    # Linux/macOS:
    source venv/bin/activate
    
  2. Установите зависимости:

    pip install flask transformers torch
    
  3. Запустите приложение:

    python app.py
    

    ⚠️ При первом запуске модели будут автоматически загружены из Hugging Face. Это займёт несколько минут и потребует ~1.5–2 ГБ свободного места на диске.

🌐 Использование

  1. Откройте браузер и перейдите по адресу: http://127.0.0.1:5000
  2. В поле ввода напишите любое сообщение, фразу или эмоцию.
  3. Нажмите кнопку отправки.
  4. Приложение проанализирует текст и выведет строку вида:
    Настроение: хорошее. Рекомендация: «Название фильма»

📁 Структура проекта

moviemood/
├── app.py              # Основной файл Flask-приложения
├── templates/
│   └── index.html      # HTML-шаблон главной страницы
├── static/
│   └── style.css       # Файл стилей для оформления интерфейса
└── README.md           # Документация

💡 Как подключить стили в index.html (если ещё не сделано):

<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">

Flask автоматически раздаёт содержимое папки static/ по маршруту /static/.

🎨 Кастомизация оформления

Файл static/style.css отвечает за внешний вид страницы. Вы можете:

  • Изменить цветовую палитру, шрифты и отступы.
  • Добавить адаптивную вёрстку под мобильные устройства.
  • Интегрировать CSS-фреймворки (Bootstrap, Tailwind) при необходимости.

🔧 Важные примечания перед запуском

В исходном коде есть несколько синтаксических ошибок, которые необходимо исправить:

  1. Импорт модели генерации:
    # Было (ошибка):
    model = AutoModelForCasualLM.from_pretrained(...)
    # Стало:
    model = AutoModelForCausalLM.from_pretrained(...)
    
  2. Регулярное выражение: Обратные кавычки ` не поддерживаются в re.search. Замените их на двойные кавычки:
    m = re.search(r"«([^»]{2,100})»", generated_text)
    
  3. Исправление опечатки: promtprompt (рекомендуется для читаемости).

После внесения правок приложение запустится без ошибок.

⚙️ Рекомендации для продакшена

  • Отключите debug=True в app.run().
  • Используйте WSGI-сервер, например gunicorn app:app или waitress.
  • Для ускорения генерации добавьте device="cuda" (при наличии GPU) или настройте кэширование моделей.
  • Ограничьте длину входного текста и добавьте обработку ошибок при неудачной загрузке моделей или таймаутах генерации.

📄 Лицензия

MIT License

🤝 Контакты

Есть вопросы, предложения или нашли баг? Создайте Issue в репозитории или свяжитесь с автором.

Contributors

KiberKid2

2 commits

Languages

Python

59.5%

HTML

22.5%

CSS

18.0%