Чеклист: запуск AI-продукта в России

Пошаговый гайд — от идеи до деплоя AI-продукта с учётом российского законодательства

Вы разработали AI-продукт — чат-бот, RAG-систему, сервис аналитики или генерации контента. Осталось запустить его для пользователей. Но прежде чем нажать кнопку «Deploy», нужно убедиться, что ваш продукт соответствует российскому законодательству. Иначе вместо пользователей первым «клиентом» станет Роскомнадзор с проверкой и штрафами до 15 миллионов рублей.

В этой статье — пошаговый чеклист, который проведёт вас от идеи до деплоя. Каждый шаг — конкретное действие с объяснением, зачем оно нужно и как его выполнить. Статья написана для продакт-менеджеров, фаундеров и разработчиков, которые запускают AI-продукт на российском рынке.

Запуск AI-продукта без проверки compliance — как вождение без прав. Может, вам повезёт и вы не встретите инспектора. Но если встретите — последствия будут серьёзными: штрафы, блокировка сервиса, потеря доверия пользователей. Этот чеклист — ваши «права» для легального запуска AI-продукта. Пройдите его один раз, и вы будете спокойны.

Зачем нужен compliance

Россия активно формирует правовую базу для AI-продуктов. Единого «закона об AI» пока нет, но уже действуют законы, которые напрямую касаются любого AI-сервиса: 152-ФЗ «О персональных данных» и 149-ФЗ «Об информации». С 2025 года штрафы за нарушения выросли в разы — до 15 млн рублей за утечку и до 3% годовой выручки при повторных нарушениях.

Топ-5 обязательных требований

ПромптClaude
Я запускаю чат-бота для клиентской поддержки на сайте российской компании. Бот будет общаться с пользователями, сохранять историю диалогов и использовать Claude API. Какие требования 152-ФЗ я должен выполнить?
Ответ модели

Для вашего чат-бота необходимо выполнить следующие требования 152-ФЗ:

  1. Согласие на обработку ПД — добавьте чекбокс перед началом диалога
  2. Политика конфиденциальности — опубликуйте документ с описанием обработки данных
  3. Локализация — история диалогов должна храниться на серверах в РФ
  4. Обезличивание — перед отправкой в Claude API удалите ФИО, телефоны, email
  5. Право на удаление — реализуйте механизм удаления истории по запросу
  6. Уведомление Роскомнадзора — подайте уведомление как оператор ПД

Ключевой момент: сами диалоги содержат ПД (имена, контакты, описание проблем). Отправка в зарубежный API без обезличивания = трансграничная передача ПД.

Подробный чеклист из 10 шагов с кейсами и примерами кода — в разделах «Подробно» и «Для разработчика». Переключитесь, чтобы увидеть полную картину.

Полный чеклист: 10 шагов к compliance

Ниже — пошаговый план, который покрывает все основные требования российского законодательства для AI-продуктов. Выполняйте по порядку — каждый следующий шаг опирается на предыдущие.

Шаг 1. Политика конфиденциальности

Что это: документ, размещённый на вашем сайте или в приложении, который объясняет пользователям, какие данные вы собираете, зачем, как обрабатываете, кому передаёте и как защищаете.

Зачем нужно: статья 18.1 152-ФЗ обязывает оператора персональных данных опубликовать политику обработки ПД. Без неё — штраф и предписание Роскомнадзора.

Что должно быть в документе:

  • Наименование и контактные данные оператора
  • Цели обработки персональных данных
  • Перечень обрабатываемых категорий ПД
  • Правовые основания обработки
  • Описание мер по защите ПД
  • Порядок реализации прав субъектов (доступ, удаление, исправление)
  • Сроки хранения данных
  • Информация о трансграничной передаче (если применимо)
Не копируйте политику конфиденциальности у других сервисов — у вашего продукта свои особенности обработки данных. Адаптируйте документ под свой конкретный продукт: укажите, какие именно данные вы собираете (например, «текст запросов к чат-боту», «загруженные документы»), с какой целью и как долго храните.

Шаг 2. Механизм сбора согласий

Что это: интерфейсный элемент (чекбокс, форма, отдельная страница), через который пользователь даёт согласие на обработку своих персональных данных.

Зачем нужно: статья 9 152-ФЗ требует, чтобы согласие было конкретным, информированным и сознательным. С 1 сентября 2025 года — обязательно отдельным документом.

Как реализовать:

  • Отдельный чекбокс «Даю согласие на обработку персональных данных» со ссылкой на документ согласия
  • Не совмещайте с «Принимаю пользовательское соглашение» — это разные документы
  • Храните факт получения согласия: дату, версию документа, IP-адрес
  • Реализуйте отзыв согласия — кнопка «Отозвать согласие» или ссылка в настройках профиля
  • Если пользователь отзывает согласие, прекратите обработку и удалите ПД в течение 30 дней
Нарушает 152-ФЗ (штраф 300-700 тыс. руб.)
Один чекбокс: «Принимаю пользовательское соглашение и даю согласие на обработку персональных данных». Согласие не хранится, нет механизма отзыва.
Соответствует 152-ФЗ
Два отдельных чекбокса: «Принимаю пользовательское соглашение» и «Даю согласие на обработку персональных данных (ознакомлен с документом)». Каждый — со ссылкой на свой документ. Факт согласия сохраняется с таймстампом.

Что это: уведомление на сайте, которое информирует пользователя об использовании cookies и запрашивает согласие.

Зачем нужно: cookies могут содержать данные, по которым можно идентифицировать пользователя, — а значит, это персональные данные по 152-ФЗ. Роскомнадзор официально подтверждает эту позицию.

Что должен содержать баннер:

  • Информацию о том, что сайт использует cookies
  • Цели использования (аналитика, персонализация, реклама)
  • Ссылку на политику конфиденциальности
  • Кнопку принятия и возможность отказа
  • Разделение cookies на категории: необходимые, аналитические, рекламные

Шаг 4. Согласие на аналитику

Что это: отдельное согласие пользователя на сбор аналитических данных (Яндекс Метрика, Google Analytics и т.д.).

Зачем нужно: аналитические системы собирают данные о поведении пользователя, которые в совокупности могут являться персональными данными. С учётом ужесточений 2025 года, согласие на аналитику лучше запрашивать отдельно.

Как реализовать:

  • Не загружайте скрипты аналитики до получения согласия
  • Если пользователь отказался — не отслеживайте его поведение
  • Предоставьте возможность изменить выбор в настройках

Шаг 5. Уведомление Роскомнадзора

Что это: обязательное уведомление регулятора о том, что вы начинаете обрабатывать персональные данные.

Зачем нужно: статья 22 152-ФЗ обязывает оператора ПД уведомить Роскомнадзор до начала обработки данных. С 30 мая 2025 года штраф за отсутствие уведомления — от 100 000 до 300 000 рублей для организаций.

Шаг 6. Пользовательское соглашение

Что это: договор между вами и пользователем, который определяет правила использования вашего AI-сервиса.

Зачем нужно: пользовательское соглашение — это юридическая основа ваших отношений с пользователем. Для AI-продуктов оно должно включать специфические пункты.

Что должно быть в соглашении для AI-сервиса:

  • Описание сервиса и его ограничений (AI может ошибаться, не заменяет профессиональную консультацию)
  • Правила использования (что нельзя: генерация незаконного контента, обход фильтров)
  • Права на сгенерированный контент — кому принадлежит результат (вам, пользователю, ограниченная лицензия)
  • Ответственность за контент — кто отвечает за AI-генерированный результат
  • Ограничение ответственности за точность ответов AI
  • Порядок модерации и блокировки при нарушениях
  • Ссылка на политику конфиденциальности (но не включение согласия на обработку ПД)

Шаг 7. Модерация контента

Что это: система фильтрации и проверки контента, который генерирует или обрабатывает ваш AI-продукт.

Зачем нужно: 149-ФЗ «Об информации» распространяется на любой контент в интернете, включая AI-генерированный. Роскомнадзор может потребовать удаления запрещённого контента, а с 2026 года начинает работу AI-система мониторинга интернет-контента.

Что нужно фильтровать:

  • Экстремистские материалы и призывы к терроризму
  • Контент из реестра запрещённой информации Роскомнадзора
  • Персональные данные третьих лиц (если пользователь пытается «вытянуть» чужие ПД через AI)
  • Заведомо ложную информацию (фейки)
  • Контент, нарушающий авторские права
Если ваш AI-сервис сгенерировал контент, нарушающий законодательство (например, экстремистский текст или фейковую новость), ответственность может лечь на вас как на оператора сервиса. Это ещё один аргумент в пользу модерации на выходе.

Шаг 8. Локализация данных

Что это: хранение персональных данных граждан России на серверах, физически расположенных на территории РФ.

Зачем нужно: с 1 июля 2025 года действует ужесточённая редакция статьи 18 152-ФЗ. Сбор, хранение и обработка ПД россиян — только на серверах в РФ. Штраф за нарушение — от 2 до 6 млн рублей (первичное), до 18 млн рублей (повторное).

Что именно должно быть в РФ:

КомпонентТребование
База пользователейСерверы в РФ
Векторная база (RAG) с ПДСерверы в РФ
История чатаСерверы в РФ
Обучающие данные с ПДСерверы в РФ
Логи запросов к LLM с ПДСерверы в РФ

Варианты решения:

  • Российский LLM-провайдер (YandexGPT, GigaChat) — данные не покидают РФ
  • Self-hosted модель (Llama, Qwen) на российских серверах — полный контроль
  • Зарубежный LLM API + анонимизация — допустимо, если ПД не передаются за рубеж

Шаг 9. План реагирования на инциденты

Что это: документ, описывающий порядок действий при утечке персональных данных или другом инциденте безопасности.

Зачем нужно: с 2025 года оператор обязан уведомить Роскомнадзор об утечке в течение 24 часов и предоставить результаты внутреннего расследования в течение 72 часов. Без плана реагирования вы не уложитесь в эти сроки.

Что должен содержать план:

  1. Определение категорий инцидентов (утечка, несанкционированный доступ, потеря данных)
  2. Цепочка ответственных: кто получает сигнал, кто принимает решения, кто уведомляет регулятора
  3. Шаблоны уведомлений для Роскомнадзора
  4. Порядок уведомления пострадавших субъектов ПД
  5. Меры по устранению последствий
  6. Порядок проведения внутреннего расследования

Шаг 10. Документация

Что это: комплект внутренних документов, подтверждающих ваш compliance.

Зачем нужно: при проверке Роскомнадзора бремя доказывания лежит на операторе. Вы должны доказать, что соблюдаете все требования. Без документации это невозможно.

Минимальный комплект документов:

  • Политика обработки персональных данных (опубликована на сайте)
  • Приказ о назначении ответственного за обработку ПД
  • Модель угроз безопасности ПД
  • Перечень лиц, имеющих доступ к ПД
  • Журнал учёта обращений субъектов ПД
  • Шаблоны согласий на обработку ПД
  • План реагирования на инциденты
  • Уведомление Роскомнадзора (копия)

Кейсы: три типичных AI-продукта

Кейс 1. Чат-бот для клиентов

Что это: AI-чат-бот на сайте интернет-магазина, отвечает на вопросы клиентов о товарах, заказах, доставке.

Какие данные обрабатывает: имена клиентов, номера заказов, адреса доставки, историю переписки.

Что нужно:

  • Политика конфиденциальности с упоминанием чат-бота
  • Согласие на обработку ПД (перед началом чата)
  • Уведомление Роскомнадзора
  • Хранение истории чата на серверах в РФ
  • Модерация ответов бота (чтобы не выдавал ПД других клиентов)
  • Механизм удаления истории чата по запросу клиента
  • Если используется зарубежный LLM — анонимизация данных перед отправкой

Кейс 2. RAG-система на корпоративных документах

Что это: внутренняя система «вопрос-ответ» по корпоративной базе знаний (регламенты, инструкции, протоколы).

Какие данные обрабатывает: имена сотрудников в документах, контактные данные, возможно — данные клиентов, упомянутых в документах.

Что нужно:

  • Согласие сотрудников на обработку ПД в рамках RAG-системы
  • Хранение документов и векторной базы на серверах в РФ
  • Разграничение доступа — не все сотрудники должны видеть все документы
  • Если документы содержат специальные ПД (здоровье, судимости) — отдельное письменное согласие
  • Возможность удаления документов и связанных эмбеддингов по запросу

Кейс 3. AI-аналитика с данными пользователей

Что это: сервис, который анализирует поведение пользователей с помощью AI — строит предиктивные модели, сегментирует аудиторию, предсказывает отток.

Какие данные обрабатывает: профили пользователей, история действий, геолокация, данные устройства.

Что нужно:

  • Отдельное согласие на использование данных для аналитики и построения моделей
  • Если модель обучается на данных пользователей — это отдельная цель обработки, отдельное согласие
  • Cookie-баннер с категорией «Аналитические cookies»
  • Локализация всех данных в РФ
  • Право пользователя на отказ от профилирования
  • Если результаты аналитики используются для автоматизированного принятия решений — пользователь имеет право на пересмотр таким решением человеком

Штрафы: сколько стоит несоответствие

Штрафы за нарушения 152-ФЗ для организаций (с 30 мая 2025)
Обработка без согласия14%
Нарушение локализации (первичное)36%
Нарушение локализации (повторное)72%
Утечка 1-10 тыс. записей20%
Утечка 100 тыс.+ записей60%
Повторная утечка (до 3% выручки)100%
НарушениеШтраф для организации
Обработка ПД без согласия300 000 — 700 000 руб.
Отсутствие уведомления Роскомнадзора100 000 — 300 000 руб.
Нарушение локализации данных (первичное)2 000 000 — 6 000 000 руб.
Нарушение локализации данных (повторное)до 18 000 000 руб.
Утечка 1-10 тыс. записей ПДдо 5 000 000 руб.
Утечка 100 тыс.+ записей ПД10 000 000 — 15 000 000 руб.
Повторное нарушение с утечкой1-3% годовой выручки (от 20 до 500 млн руб.)
С 30 мая 2025 года за повторные нарушения с утечками введены оборотные штрафы — от 1 до 3% годовой выручки, но не менее 20 млн рублей. Для крупного бизнеса это может составить сотни миллионов рублей. Compliance дешевле штрафа.

Что ожидать в 2026-2027

Регулятивная среда для AI в России активно формируется. Вот что ожидается в ближайшие годы:
  1. Рамочный закон об AI — Госдума разрабатывает закон, определяющий понятия, ответственность и базовые требования к AI-системам. Ожидается к 2027 году.
  2. Обязательная маркировка AI-контента — Минцифры и Роскомнадзор готовят требования к маркировке контента, созданного с помощью AI. Вероятно, станет обязательной в 2026-2027 годах.
  3. AI-система мониторинга — Роскомнадзор запускает AI-систему автоматического мониторинга интернет-контента (бюджет 2,27 млрд рублей). Это означает автоматическое обнаружение нарушений.
  4. Регулирование дипфейков — обсуждается ответственность за создание и распространение синтетического контента без согласия изображённых лиц.
  5. Расширение ЭПР — новые экспериментальные правовые режимы для AI в образовании, госуслугах и других сферах.

Компонент баннера для сбора согласий — ключевой элемент compliance. Он должен разделять согласие на обработку ПД и согласие на cookies/аналитику.

<!-- ConsentBanner.vue -->
<script setup lang="ts">
interface ConsentState {
  necessary: boolean    // всегда true, обязательные cookies
  analytics: boolean    // Яндекс Метрика и т.д.
  personalData: boolean // согласие на обработку ПД (152-ФЗ)
  version: string       // версия документа согласия
  timestamp: string     // когда дано согласие
}

const consentKey = 'user-consent'

const consent = ref<ConsentState | null>(null)
const showBanner = ref(false)

onMounted(() => {
  const stored = localStorage.getItem(consentKey)
  if (stored) {
    consent.value = JSON.parse(stored)
  } else {
    showBanner.value = true
  }
})

function acceptAll() {
  saveConsent({ necessary: true, analytics: true, personalData: true })
}

function acceptNecessaryOnly() {
  saveConsent({ necessary: true, analytics: false, personalData: false })
}

function saveConsent(partial: Omit<ConsentState, 'version' | 'timestamp'>) {
  const state: ConsentState = {
    ...partial,
    version: '1.0',
    timestamp: new Date().toISOString(),
  }
  consent.value = state
  localStorage.setItem(consentKey, JSON.stringify(state))
  showBanner.value = false

  // Отправляем факт согласия на сервер для аудита
  $fetch('/api/consent', {
    method: 'POST',
    body: {
      analytics: state.analytics,
      personalData: state.personalData,
      version: state.version,
      timestamp: state.timestamp,
    },
  })

  // Загружаем аналитику только при согласии
  if (state.analytics) {
    loadAnalytics()
  }
}

function loadAnalytics() {
  // Загрузка Яндекс Метрики только после согласия
  const script = document.createElement('script')
  script.src = 'https://mc.yandex.ru/metrika/tag.js'
  script.async = true
  document.head.appendChild(script)
}
</script>

API удаления данных пользователя

По запросу субъекта ПД (статья 21 152-ФЗ) все данные должны быть удалены в течение 30 дней:

// server/api/user/delete.post.ts
export default defineEventHandler(async (event) => {
  const { userId, reason } = await readBody(event)

  // 1. Удаляем историю чата
  await db.chatMessages.deleteMany({
    where: { userId },
  })

  // 2. Удаляем загруженные документы и векторы
  const documents = await db.documents.findMany({
    where: { userId },
  })
  for (const doc of documents) {
    await vectorDb.deleteByDocumentId(doc.id)
    await storage.delete(doc.storagePath)
  }
  await db.documents.deleteMany({ where: { userId } })

  // 3. Удаляем профиль
  await db.users.delete({ where: { id: userId } })

  // 4. Отмечаем согласия как отозванные
  await db.consents.updateMany({
    where: { userId, revokedAt: null },
    data: { revokedAt: new Date().toISOString() },
  })

  // 5. Аудит-запись (без ПД — только идентификатор удаления)
  const deletionId = crypto.randomUUID()
  await db.auditLog.create({
    data: {
      action: 'user_data_deleted',
      subjectId: `deleted:${deletionId}`,
      reason,
      timestamp: new Date().toISOString(),
    },
  })

  return { success: true, deletionId }
})

Фильтр модерации контента

Базовый фильтр для проверки AI-ответов перед отправкой пользователю:

// server/utils/content-moderation.ts
interface ModerationResult {
  allowed: boolean
  violations: string[]
}

export async function moderateContent(
  content: string
): Promise<ModerationResult> {
  const violations: string[] = []

  // 1. Проверка на ПД третьих лиц
  if (containsThirdPartyPII(content)) {
    violations.push('third_party_pii')
  }

  // 2. Проверка на запрещённые категории контента
  const blockedPatterns = await getBlockedPatterns()
  for (const pattern of blockedPatterns) {
    if (pattern.regex.test(content)) {
      violations.push(`blocked_content:${pattern.category}`)
    }
  }

  // 3. Опционально: проверка через AI-модерацию
  // (YandexGPT Content Moderation, OpenAI Moderation API)
  if (process.env.MODERATION_API_ENABLED === 'true') {
    const aiCheck = await checkWithAIModerator(content)
    if (!aiCheck.safe) {
      violations.push(...aiCheck.categories)
    }
  }

  return {
    allowed: violations.length === 0,
    violations,
  }
}

function containsThirdPartyPII(text: string): boolean {
  // Базовые паттерны для обнаружения ПД
  const patterns = [
    /\b[А-ЯЁ][а-яё]+\s+[А-ЯЁ][а-яё]+\s+[А-ЯЁ][а-яё]+ич\b/, // ФИО
    /(\+7|8)\s?\(?\d{3}\)?\s?\d{3}[\s-]?\d{2}[\s-]?\d{2}/,       // телефон
    /\b\d{3}-\d{3}-\d{3}\s?\d{2}\b/,                              // СНИЛС
    /\b\d{2}\s?\d{2}\s?\d{6}\b/,                                  // паспорт
  ]
  return patterns.some(p => p.test(text))
}

Архитектура с локализацией данных

Паттерн «Split Architecture» — чувствительные данные в РФ, вычисления в облаке:

┌─────────────────────────────────────────────────┐
│                  Серверы в РФ                    │
│                                                  │
│  ┌──────────┐  ┌──────────┐  ┌───────────────┐  │
│  │ Postgres │  │ Qdrant   │  │  App Server   │  │
│  │ (ПД,     │  │ (векторы │  │  (API, auth,  │  │
│  │  чаты,   │  │  с ПД)   │  │   consent)    │  │
│  │  логи)   │  │          │  │               │  │
│  └──────────┘  └──────────┘  └───────┬───────┘  │
│                                      │           │
└──────────────────────────────────────┼───────────┘
                                       │
                              Анонимизированные
                                 запросы
                                       │
                                       ▼
                        ┌──────────────────────────┐
                        │   Внешний LLM API        │
                        │   (OpenAI / Anthropic)    │
                        │                          │
                        │   Получает только текст  │
                        │   без ПД                 │
                        └──────────────────────────┘

Альтернатива: полная локализация с российскими LLM:

┌─────────────────────────────────────────────────┐
│                  Серверы в РФ                    │
│                                                  │
│  ┌──────────┐  ┌──────────┐  ┌───────────────┐  │
│  │ Postgres │  │ Qdrant   │  │  App Server   │  │
│  └──────────┘  └──────────┘  └───────┬───────┘  │
│                                      │           │
│                                      ▼           │
│                          ┌───────────────────┐   │
│                          │  YandexGPT API /  │   │
│                          │  GigaChat API /   │   │
│                          │  Self-hosted LLM  │   │
│                          └───────────────────┘   │
│                                                  │
└──────────────────────────────────────────────────┘

Мониторинг и отчётность

Автоматизированный compliance-мониторинг:

// server/utils/compliance-monitor.ts
interface ComplianceReport {
  period: { from: string; to: string }
  metrics: {
    totalUsers: number
    consentsGranted: number
    consentsRevoked: number
    deletionRequests: number
    deletionsFulfilled: number
    avgDeletionTime: number    // дней
    moderationBlocks: number
    incidentsCount: number
  }
  issues: string[]
}

export async function generateComplianceReport(
  from: Date,
  to: Date
): Promise<ComplianceReport> {
  const [
    totalUsers,
    consentsGranted,
    consentsRevoked,
    deletionRequests,
    deletionsFulfilled,
    moderationBlocks,
    incidents,
  ] = await Promise.all([
    db.users.count(),
    db.consents.count({
      where: { grantedAt: { gte: from, lte: to } },
    }),
    db.consents.count({
      where: { revokedAt: { gte: from, lte: to } },
    }),
    db.auditLog.count({
      where: { action: 'deletion_requested', timestamp: { gte: from, lte: to } },
    }),
    db.auditLog.count({
      where: { action: 'user_data_deleted', timestamp: { gte: from, lte: to } },
    }),
    db.auditLog.count({
      where: { action: 'content_blocked', timestamp: { gte: from, lte: to } },
    }),
    db.incidents.findMany({
      where: { reportedAt: { gte: from, lte: to } },
    }),
  ])

  const issues: string[] = []

  // Проверяем, все ли удаления выполнены в срок (30 дней)
  const overdueCount = await db.auditLog.count({
    where: {
      action: 'deletion_requested',
      timestamp: { gte: from, lte: to },
      // Прошло > 30 дней, а удаление не выполнено
    },
  })
  if (overdueCount > 0) {
    issues.push(`${overdueCount} запросов на удаление не выполнены в 30-дневный срок`)
  }

  return {
    period: { from: from.toISOString(), to: to.toISOString() },
    metrics: {
      totalUsers,
      consentsGranted,
      consentsRevoked,
      deletionRequests,
      deletionsFulfilled,
      avgDeletionTime: 0, // вычислить из аудит-лога
      moderationBlocks,
      incidentsCount: incidents.length,
    },
    issues,
  }
}
Запускайте compliance-отчёт автоматически раз в месяц. Это позволит обнаружить проблемы до того, как их обнаружит Роскомнадзор. Обращайте внимание на ключевые метрики: все ли запросы на удаление выполнены в срок, нет ли согласий с просроченной версией документа, работает ли модерация.

Связанные статьи

Проверьте себя

1. С какой даты согласие на обработку персональных данных должно оформляться отдельным документом, а не пунктом в пользовательском соглашении?

2. Что нужно сделать перед отправкой данных пользователей в зарубежный LLM API (OpenAI, Anthropic), чтобы не нарушить 152-ФЗ?

3. В какой срок оператор обязан уведомить Роскомнадзор об утечке персональных данных?