Веб-приложение для генерации диалогов между двумя персонажами с использованием языковой модели Grok-3-reasoning-gemma3. Приложение работает в реальном времени через WebSocket, позволяя управлять диалогом и сохранять результаты.
- Генерация диалогов в реальном времени – потоковая передача реплик через WebSocket (Socket.IO).
- Настраиваемые персонажи – задавайте имена и описания для двух ролей.
- Локальная LLM-модель – используется модель
Grok-3-reasoning-gemma3в формате GGUF черезllama_cpp. - Мониторинг GPU – индикатор загрузки видеокарты с автообновлением.
- Управление процессом – можно остановить генерацию в любой момент.
- Автосохранение диалогов – диалоги сохраняются в
logs/с метаданными. - Поддержка HTTPS/HTTP – работает с SSL-сертификатами или без них.
- Защита от параллельных запусков – одновременно выполняется только один диалог.
- Адаптивный интерфейс – корректное отображение на мобильных устройствах.
Серверная часть: Python, Flask, Flask-SocketIO, llama_cpp, GPUtil
Клиентская часть: HTML, CSS, JavaScript, Socket.IO (клиент)
Модель:
Grok-3-reasoning-gemma3-12B-distilled-HF.Q8_0.gguf (размещается локально)
Тестовая конфигурация: RTX 3090 Ti, время генерации одной реплики: 8–17 секунд
- Python 3.8+
- GPU с поддержкой CUDA (рекомендуется)
- Модель в формате GGUF (скачайте отдельно)
git clone https://github.com/your-username/dialogue-generator.git
cd dialogue-generatorpython -m venv venv
# Для Linux/macOS:
source venv/bin/activate
# Для Windows:
venv\Scripts\activatepip install flask flask-socketio llama-cpp-python GPUtilПоместите файл модели Grok-3-reasoning-gemma3-12B-distilled-HF.Q8_0.gguf в директорию:
G:\LLM_models2\
(путь можно изменить в app.py)
python app.pyПриложение будет доступно по адресу: http://localhost:5000
-
Заполните параметры:
- Тема диалога
- Имена и описания персонажей
- Количество шагов (пар реплик)
-
Запустите генерацию – нажмите кнопку «Запустить диалог».
-
Наблюдайте за процессом – реплики появляются в реальном времени, прогресс отображается в интерфейсе.
-
Остановите при необходимости – кнопка «Стоп» прерывает генерацию.
-
Результаты – диалог автоматически сохранится в папке
logs/в формате TXT.
| Поле | Значение |
|---|---|
| Тема | Спор о форме Земли |
| Персонаж 1 | Ученый-физик, использует логические аргументы |
| Персонаж 2 | Студент, любит шутить и приводить примеры |
| Шаги | 7 |
dialogue-generator/
├── app.py # Основной серверный скрипт
├── index.html # Веб-интерфейс
├── logs/ # Сохранённые диалоги
├── requirements.txt # Зависимости Python
├── cert.pem # SSL-сертификат (опционально)
├── key.pem # SSL-ключ (опционально)
└── README.md # Документация
Создайте SSL-сертификаты:
openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365При наличии файлов cert.pem и key.pem приложение запустится на порту 443 по HTTPS.
Отредактируйте функцию load_model() в app.py, указав путь к вашей модели GGUF.
- Производительность зависит от GPU (на RTX 3090 Ti – 8–17 сек/реплика).
- Одна модель – для смены модели требуется правка кода.
- Один диалог за раз – параллельные запуски заблокированы.
- Поддержка нескольких моделей LLM
- Инструменты (калькулятор, поиск в интернете)
- Диалоги с тремя и более персонажами
- Интеграция с облачными API
- Тестирование на различных GPU
- Интеграция с Telegram
- Интеграция с n8n
Предложения и исправления приветствуются!
- Создайте Issue для обсуждения идеи
- Форкните репозиторий и сделайте Pull Request
Вопросы можно задать в telegram https://t.me/Vad_neld
Проект распространяется под лицензией MIT. Подробности в файле LICENSE.
- Python: PEP 8
- Логирование: модуль
logging - Безопасность: блокировки для многопоточности, уникальные SID

