This commit is contained in:
arys
2026-03-09 14:21:05 +05:00
parent 8b558dd4ed
commit 39b3885dd3
@@ -470,63 +470,67 @@ public class MarketingStrategyV3Service {
.collect(Collectors.joining("\n")); .collect(Collectors.joining("\n"));
} }
String contentRulesSafe = scoring.getModel().getContentRules().replace("%", "%%");
String modifiersBlockSafe = modifiersBlock.replace("%", "%%");
String rationaleSafe = scoring.getRationale().replace("%", "%%");
return """ return """
ТЫ — СТАРШИЙ SMM СТРАТЕГ РЫНКА КАЗАХСТАНА. ТЫ — СТАРШИЙ SMM СТРАТЕГ РЫНКА КАЗАХСТАНА.
Скоринговая система рассчитала оптимальную модель на основе данных бизнеса. Скоринговая система рассчитала оптимальную модель на основе данных бизнеса.
════════════════════════════════════════════════ ════════════════════════════════════════════════
ВЫБРАННАЯ МОДЕЛЬ: %s ВЫБРАННАЯ МОДЕЛЬ: %s
ОБОСНОВАНИЕ: %s ОБОСНОВАНИЕ: %s
════════════════════════════════════════════════ ════════════════════════════════════════════════
ОБЯЗАТЕЛЬНЫЕ ПРАВИЛА МОДЕЛИ (НАРУШАТЬ ЗАПРЕЩЕНО): ОБЯЗАТЕЛЬНЫЕ ПРАВИЛА МОДЕЛИ (НАРУШАТЬ ЗАПРЕЩЕНО):
%s %s
════════════════════════════════════════════════ ════════════════════════════════════════════════
МОДИФИКАТОРЫ (%d активных): МОДИФИКАТОРЫ (%d активных):
%s %s
════════════════════════════════════════════════ ════════════════════════════════════════════════
КРИТИЧЕСКИЕ ПРАВИЛА ГЕНЕРАЦИИ КОНТЕНТА: КРИТИЧЕСКИЕ ПРАВИЛА ГЕНЕРАЦИИ КОНТЕНТА:
1. КОЛИЧЕСТВО ПОСТОВ: 1. КОЛИЧЕСТВО ПОСТОВ:
- 4 недели × минимум 3 поста = МИНИМУМ 12 постов в postCalendar - 4 недели × минимум 3 поста = МИНИМУМ 12 постов в postCalendar
- Оптимально: 14-16 постов (равномерно распределить по неделям) - Оптимально: 14-16 постов (равномерно распределить по неделям)
2. СТРОГОЕ СОБЛЮДЕНИЕ ПРОПОРЦИЙ: 2. СТРОГОЕ СОБЛЮДЕНИЕ ПРОПОРЦИЙ:
Подсчитай итоговое количество постов и распредели типы контента Подсчитай итоговое количество постов и распредели типы контента
строго согласно процентам модели (расчёт в userPrompt). строго согласно процентам модели (расчёт в userPrompt).
3. ФОРМАТЫ: 3. ФОРМАТЫ:
- contentType принимает ТОЛЬКО два значения: "фото" или "видео" - contentType принимает ТОЛЬКО два значения: "фото" или "видео"
- Соблюдай % видео/фото из правил модели - Соблюдай %% видео/фото из правил модели
4. CTA В ПОСТАХ: 4. CTA В ПОСТАХ:
Используй ТОЛЬКО CTA-фразы из стиля своей модели (указаны в правилах выше) Используй ТОЛЬКО CTA-фразы из стиля своей модели (указаны в правилах выше)
5. ТЕКСТЫ ПОСТОВ (postText): 5. ТЕКСТЫ ПОСТОВ (postText):
- Минимум 120 слов в каждом посте — реальный живой текст - Минимум 120 слов в каждом посте — реальный живой текст
- Пиши на русском языке, для аудитории Казахстана - Пиши на русском языке, для аудитории Казахстана
- Конкретика, факты, польза — без воды и шаблонных фраз - Конкретика, факты, польза — без воды и шаблонных фраз
- Эмодзи уместно, умеренно - Эмодзи уместно, умеренно
6. ХЭШТЕГИ: 6. ХЭШТЕГИ:
- 5-10 тематических хэштегов + 1-2 гео (#алматы / #астана / #казахстан) - 5-10 тематических хэштегов + 1-2 гео (#алматы / #астана / #казахстан)
- Чередовать популярные и нишевые - Чередовать популярные и нишевые
7. РАСПИСАНИЕ: 7. РАСПИСАНИЕ:
- Instagram: 09:00, 12:00, 18:00, 20:00 - Instagram: 09:00, 12:00, 18:00, 20:00
- TikTok: 18:00, 20:00, 22:00 - TikTok: 18:00, 20:00, 22:00
- Telegram: 10:00, 13:00, 19:00 - Telegram: 10:00, 13:00, 19:00
- Не публиковать чаще 1 раза в день на одной платформе - Не публиковать чаще 1 раза в день на одной платформе
ВЫВОДИ ТОЛЬКО ЧИСТЫЙ JSON! Никакого текста до или после. ВЫВОДИ ТОЛЬКО ЧИСТЫЙ JSON! Никакого текста до или после.
""".formatted( """.formatted(
scoring.getModel().getTitle(), scoring.getModel().getTitle(),
scoring.getRationale(), rationaleSafe,
scoring.getModel().getContentRules(), contentRulesSafe,
scoring.getActiveModifiers().size(), scoring.getActiveModifiers().size(),
modifiersBlock modifiersBlockSafe
); );
} }