Files
marketing/docs/AI_STRATEGY_DOCUMENTATION.md
2026-04-14 09:10:18 +05:00

9.9 KiB

AI-генерация маркетинговых стратегий — Документация

Обзор

Система AI-генерации создаёт профессиональные маркетинговые стратегии на 4 недели с 16 постами, используя строгую валидацию и профессиональные промпты.

Архитектура

┌─────────────────────────────────────────────────────────────┐
│                     ФРОНТЕНД (Vue 3)                        │
├─────────────────────────────────────────────────────────────┤
│  AIStrategyGenerator.vue (UI компонент)                     │
│       ↓                                                      │
│  strategyPromptGenerator.ts (генерация промпта)             │
│       ↓                                                      │
│  AIStrategyService.ts (сервис API + валидация)              │
│       ↓                                                      │
│  validateAIStrategy.ts (полная валидация)                   │
│       ↓                                                      │
│  ai-strategy.types.ts (TypeScript интерфейсы)               │
└─────────────────────────────────────────────────────────────┘
       ↓
┌─────────────────────────────────────────────────────────────┐
│                     BACKEND API                             │
│  POST /api/ai/strategy/generate                             │
│  Тело: { prompt, model, temperature, maxTokens }            │
└─────────────────────────────────────────────────────────────┘

Файлы

Файл Назначение
src/types/ai-strategy.types.ts TypeScript интерфейсы и константы
src/utils/validateAIStrategy.ts Утилита полной валидации AI-ответа
src/utils/strategyPromptGenerator.ts Генератор промпта и парсер JSON
src/service/AIStrategyService.ts Сервис работы с AI-стратегиями
src/components/marketing/AIStrategyGenerator.vue UI компонент генератора
src/views/pages/marketing/AIStrategyGeneratorPage.vue Страница генератора

TypeScript интерфейсы

PostCalendarItem

interface PostCalendarItem {
  postIndex: number;           // 0-15
  publishDate: string;         // "2026-04-13T09:00:00"
  weekNumber: 1 | 2 | 3 | 4;
  platform: 'Instagram' | 'TikTok';
  contentType: 'фото' | 'видео';
  theme: string;               // Конкретная тема
  postText: string;            // 150+ слов
  hashtags: string[];          // 5-8 хэштегов
  publishTime: '09:00' | '12:00' | '18:00' | '20:00';
  imageUrl?: string;
  videoUrl?: string;
  taskStatus?: string;
}

WeeklyPlan

interface WeeklyPlan {
  weekNumber: 1 | 2 | 3 | 4;
  mainThemes: string[];         // Ровно 4 темы
  contentRecommendations: string; // 50+ слов
  priorityPlatforms: string[];
}

AIStrategyResponse

interface AIStrategyResponse {
  selectedModel: string;
  scoringRationale: string;
  recommendedDurationWeeks: 4;
  recommendedPlatforms: string[];
  rationale: string;            // 60+ слов
  weeklyPlans: WeeklyPlan[];    // 4 недели
  postCalendar: PostCalendarItem[]; // 16 постов
}

Правила валидации

Критические ошибки (ERROR)

Правило Проверка
Количество постов Ровно 16 (4 × 4 недели)
Недели Каждая из 4 недель представлена
Даты ISO формат, правильные дни (Пн, Ср, Пт, Сб)
Время Только 09:00, 12:00, 18:00, 20:00
Видео Ровно 4 (первый пост каждой недели)
Фото Ровно 12 (остальные посты)
Хэштеги 5-8 на пост, каждый начинается с #
Текст 150+ слов на пост
Темы Конкретные, не абстрактные

Предупреждения (WARNING)

Правило Проверка
Абстрактные темы Темы без конкретики
Стиль Рекомендации по улучшению

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

1. Через UI

Перейдите на /marketing-analysis/ai-strategy

Заполните:

  • Ниша бизнеса
  • Название бренда
  • Город продвижения
  • Модель стратегии (ENTRY/AUTHORITY/TRUST/CONVERSION)
  • Дата начала (опционально)

2. Программно

import AIStrategyService from '@/service/AIStrategyService';

const result = await AIStrategyService.generateAIStrategy({
  niche: 'Кондитерская',
  brand: 'Sweet Dreams',
  city: 'Алматы',
  model: 'CONVERSION'
});

console.log(result.strategy);      // AIStrategyResponse
console.log(result.validation);    // ValidationResult

3. Валидация готовй стратегии

import { validateAIStrategy } from '@/utils/validateAIStrategy';

const validation = validateAIStrategy(myStrategy);
if (!validation.isValid) {
  console.error(validation.errors);
}

4. Экспорт

// JSON
AIStrategyService.exportStrategyAsJSON(strategy, 'my-strategy');

// CSV
AIStrategyService.exportCalendarAsCSV(strategy, 'my-calendar');

Константы

STRATEGY_CONSTANTS = {
  TOTAL_POSTS: 16,
  POSTS_PER_WEEK: 4,
  TOTAL_WEEKS: 4,
  TOTAL_VIDEOS: 4,
  TOTAL_PHOTOS: 12,
  MIN_POST_WORDS: 150,
  MIN_HASHTAGS: 5,
  MAX_HASHTAGS: 8,
  MIN_WEEKLY_RECOMMENDATION_WORDS: 50,
  MIN_RATIONALE_WORDS: 60,
  VALID_PUBLISH_TIMES: ['09:00', '12:00', '18:00', '20:00']
}

Модели стратегий

Модель Описание Когда использовать
ENTRY Вход / Формирование присутствия Новые бизнес, узнаваемость
AUTHORITY Экспертность / Компетентность B2B, длинный цикл сделки
TRUST Усиление доверия Высокая конкуренция
CONVERSION Прямая конверсия Быстрые покупки, B2C

API Endpoints

Генерация стратегии

POST /api/ai/strategy/generate
Content-Type: application/json

{
  "prompt": "...",
  "model": "gpt-4",
  "temperature": 0.7,
  "maxTokens": 8000
}

Response:
{
  "data": {
    "content": "{...JSON стратегии...}"
  }
}

Распределение постов

Неделя 1-4 (одинаковая структура)

Пост День Время Тип
1 Понедельник 09:00 🎥 Видео
2 Среда 12:00 📸 Фото
3 Пятница 18:00 📸 Фото
4 Суббота 20:00 📸 Фото

Пример правильного ответа AI

{
  "selectedModel": "CONVERSION",
  "scoringRationale": "Модель Conversion оптимальна...",
  "recommendedDurationWeeks": 4,
  "recommendedPlatforms": ["Instagram", "TikTok"],
  "rationale": "Instagram и TikTok являются...",
  "weeklyPlans": [
    {
      "weekNumber": 1,
      "mainThemes": ["Кейс клиента", "Процесс работы", "Отзыв", "Экспертный"],
      "contentRecommendations": "На этой неделе фокусируемся...",
      "priorityPlatforms": ["Instagram"]
    }
  ],
  "postCalendar": [
    {
      "postIndex": 0,
      "publishDate": "2026-04-13T09:00:00",
      "weekNumber": 1,
      "platform": "Instagram",
      "contentType": "видео",
      "theme": "Кейс: Как клиент увеличил продажи на 40%",
      "postText": "Хотите узнать, как наш клиент из Алматы...",
      "hashtags": ["#кейс", "#алматы", "#бизнес"],
      "publishTime": "09:00"
    }
  ]
}

Troubleshooting

Ошибка: "Невалидный JSON"

AI вернул текст с markdown блоками. Функция extractJSONFromResponse автоматически очищает ответ.

Ошибка валидации: "postCalendar должен содержать ровно 16 постов"

AI вернул меньше или больше постов. Проверьте промпт и температуру (рекомендуется 0.7).

Предупреждение: "Тема выглядит абстрактной"

AI создал тему без конкретики. Стратегия валидна, но темы можно улучшить.

Roadmap

  • Сохранение стратегии на бэкенде
  • Интеграция с автопостингом
  • Редактор постов в UI
  • A/B тестирование тем
  • Мульти-язычность

Лицензия

Внутренний проект Konturai.