7.79M
Category: informaticsinformatics

Система генерации заголовков, описаний и тегов

1.

Система
генерации
заголовков,
описаний и тегов
Видеоаналитика на базе нейросетей
2 сентября 2025

2.

Архитектура системы
Админка
ML API
(main1)
ML Gateway
(PHP main2)
Python‑pipeline
(main2)
Прокси AI
LLM
OpenRouter
Администратор создаёт задачу в админке; ML API формирует очередь задач и направляет их на ML Gateway (PHP). ML
Gateway запускает Python‑pipeline, который делит видео, генерирует капшены и отправляет промпты в LLM через прокси.
[3][4][6]

3.

Сервер main1
Статус
• MLAPI.php – API для админки, формирует задачи, находит
файл видео и добавляет запись в очередь.
• MLHandler.php – обрабатывает HTTP ‑запросы (GET/POST),
получает параметры и вызывает методы MLAPI.
• process_task.php – фоновый процесс: проверяет статус
задачи, разбирает JSON‑ответ, обновляет базу данных.
[1][5]
Описание
pending
Задача создана и ожидает
выполнения
in_progress
Видео обрабатывается
нейросетями
completed
Результаты успешно
получены и сохранены
failed
Произошла ошибка при
обработке

4.

Сервер main2: Python‑скрипты
splitter.py
recognize_local.py
(JoyCaption)
llama.py
(OpenRouter)
• splitter.py: делит видео на 8 равных кадров.
• recognize_local.py: генерирует капшены с помощью модели JoyCaption (локально).
• llama.py: отправляет промпты на внешнюю LLM через ai_outsource.php.
• main.py: координирует фазы split, caption, llm и сохраняет результаты.
[2][3][4][6]
main.py
(TaskManager)

5.

Прокси и внешние API
• ai_outsource.php управляет обращением к OpenRouter (LLM).
• Выбирает подходящий API‑ключ и контролирует лимиты запросов.
• Формирует JSON‑схему для заголовка, описания и тегов.
• Все ответы возвращаются на русском языке.
[6]

6.

Управление задачами
Метод
• TaskManager хранит задачи в файле tasks_db.json и следит за их
состоянием.
• Очередь и воркер выполняют задачи асинхронно.
• API предоставляет методы: /create_task, /task_status/{id},
/task_logs/{id}.
• Статусы: pending, in_progress, completed, failed.
[1][3][5]
Описание
/create_task
Добавить задачу в
очередь
/task_status/{id}
Получить статус задачи
/task_logs/{id}
Посмотреть подробные
логи

7.

Разделение и распознавание
• Видео делится на 8 кадров с равными
промежутками.
• Для каждого кадра запускается JoyCaption
(функция recognize_local.py).
• Проводится до 3 попыток; результаты
сохраняются в JSON.
[2][3]

8.

Источники данных для генерации
Этап
Используемые источники
Теги
Список капшенов JoyCaption (RECOGNIZE),
список доступных тегов (get_tags.php),
примеры похожих видео
Тайтл
Теги, капшены JoyCaption, примеры
похожих видео
Описание
Капшены JoyCaption, теги, список
существующих описаний
(get_active_desc.php)
[3][4][6]
• Теги: выбираются только те, что явно
присутствуют в тексте; категории участников
определяются по количеству людей.
• Тайтл: креативный, отражает суть сцены,
учитывает категории solo/couple/group; не
добавляет лишних участников.
• Описание: следует стилю примеров;
использует грязный словарь, если есть анал –
делает на нём акцент; длина 200–250
символов.
• После генерации тегов выполняется мягкая
постобработка: к каждому тегу добавляются
родственные теги из related.json, затем
удаляются дубликаты и сортировка.

9.

LLM‑генерация: Теги
JoyCaption
(капшены)
Теги
Прокси AI
(OpenRouter)
• После распознавания кадров список объектов от JoyCaption передается в
логику tags_generation.
• Промпт включает описание сцены, список доступных тегов и примеры похожих
видео.
• Запрос отправляется через ai_outsource.php на OpenRouter; возвращается
список тегов.
• Затем выполняется постобработка: к каждому тегу добавляются родственные
теги (related.json), затем теги очищаются от дубликатов.
[3][4][6]

10.

LLM‑генерация: Тайтл и описание
Теги
Тайтл
Описание
• Для тайтла используются теги и примеры похожих видео; для описания — существующие
описания из базы.
• Генерирует заголовок, затем описание — оба согласуются с тегами и содержанием.
• Запросы отправляются через ai_outsource.php (OpenRouter) и результаты сохраняются в
JSON.
[3][4][6]
Прокси AI
(OpenRouter)

11.

Мониторинг и обновление
process_task.php
ML Gateway
(TaskManager)
Обновление ml_feed
[5][1]
• Скрипт process_task.php регулярно
опрашивает ML Gateway на /task_status.
• При завершении задачи он извлекает
JSON‑результат и проверяет ошибки.
• Теги сопоставляются с БД, затем new_title,
new_description и new_tags сохраняются в
ml_feed.
English     Русский Rules