Files
site_aegisone/max_bot/sql/seed_knowledge_base.sql
T
angel 72b6879f4b v1.7.0: refactor max_bot to flat structure, add VCF+UserModel+NLP history context, portal pages and proxy fixes
- Refactored max_bot from nested packages to flat module structure
- Q2: Extended BotUser model (patronymic, email, org, address, vcf_raw, contact_hash, phone_verified, email_verified, last_interaction, total_conversations, total_tickets)
- Q2: VCF parser (FN, N, TEL, EMAIL, ORG, ADR), upsert on re-contact, NLP history context (_get_user_history_context -> YandexGPT)
- Q1: Broadcast preview modal with 10s confirmation timer
- Q3: CSS var(--white)->var(--bg-card), var(--text)->var(--text-primary)
- Q4: bot_settings showNotification(), editable max_bot_id
- Q5: Webhook secret passthrough via X-Max-Bot-Api-Secret
- Masking sensitive keys, dialog_cleared handler, migrate via _add_column_if_not_exists()
- Rate limit (asyncio.sleep 0.5 per 10), dead code removed, conv.intent context in contact.py
- Portal pages: bot_consent, bot_kb (edit), bot_settings, bot_test, bot_tickets, portal_settings
- Tests: 21/21 passing, added test_yandex_gpt.py, test_email_sender.py
- Deploy: deploy_full.sh, schema.sql, seed_knowledge_base.sql
2026-05-29 02:30:30 +03:00

195 lines
19 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- ============================================
-- Categories
-- ============================================
INSERT INTO bot_categories (id, name, description, sort_order) VALUES
(1, 'О компании', 'Общая информация о компании AegisOne Engineering', 1),
(2, 'Аудит безопасности', 'Услуги по независимому аудиту систем безопасности', 2),
(3, 'Сервисное обслуживание (SLA)', 'Регулярное обслуживание и SLA-контракты', 3),
(4, 'Реагирование на инциденты', 'Мониторинг и реагирование на инциденты безопасности', 4),
(5, 'Технический надзор', 'Контроль качества монтажа и пусконаладки', 5),
(6, 'Документация и нормативы', 'Проектная документация и соответствие нормативам', 6),
(7, 'Риск-инжиниринг', 'Оценка и управление рисками безопасности', 7),
(8, 'Отрасли и кейсы', 'Отрасли, в которых работаем, и примеры из практики', 8)
ON CONFLICT (id) DO NOTHING;
-- ============================================
-- 40 Q&A pairs
-- ============================================
TRUNCATE bot_knowledge_base RESTART IDENTITY CASCADE;
-- === CATEGORY 1: О КОМПАНИИ (6 with answers) ===
INSERT INTO bot_knowledge_base (category_id, question, answer, keywords, is_active, source_url, sort_order) VALUES
(1, 'Чем занимается AegisOne Engineering?',
'AegisOne Engineering предоставляет инженерные решения для безопасности бизнеса: аудит, сервисное обслуживание и технический надзор систем безопасности. Мы снижаем риски, обеспечиваем стабильность и подтверждаем соответствие нормативам.',
ARRAY['компания', 'услуги', 'безопасность', 'инжиниринг', 'аудит', 'сервис', 'надзор'], TRUE, 'https://aegisone.ru/', 1),
(1, 'Где находится AegisOne Engineering?',
'Юридический адрес: 350072, Россия, Краснодарский край, г. Краснодар, ул. Московская, д. 81/1, пом. 25. Работаем по всему Краснодарскому краю, ЮФО и всей России с выездом специалиста на объект.',
ARRAY['адрес', 'краснодар', 'местоположение', 'офис', 'где найти'], TRUE, 'https://aegisone.ru/', 2),
(1, 'Сколько лет работает компания?',
'Компания работает более 20 лет на рынке Краснодара, Краснодарского края и Южного федерального округа.',
ARRAY['история', 'стаж', 'опыт', 'лет', 'компания'], TRUE, 'https://aegisone.ru/', 3),
(1, 'Какая миссия компании?',
'Наша миссия — давать руководителям объективную картину состояния их систем безопасности, выявляя скрытые угрозы и экономя ресурсы. Мы не продаём оборудование — мы продаём спокойствие и стабильность.',
ARRAY['миссия', 'цель', 'принципы', 'философия'], TRUE, 'https://aegisone.ru/', 4),
(1, 'Продаёт ли AegisOne Engineering оборудование?',
'Нет, мы не продаём оборудование. Мы работаем с системами безопасности «под ключ», но в рамках независимых услуг выступаем исключительно как эксперты. Наша задача — объективно оценить ситуацию и обеспечить работоспособность.',
ARRAY['оборудование', 'продажа', 'монтаж', 'не продаём'], TRUE, 'https://aegisone.ru/', 5),
(1, 'Какие гарантии даёт компания?',
'Для SLA-контрактов гарантируем время реакции, периодичность ТО и KPI, прописанные в договоре. Для аудита — полноту и объективность отчёта. Все специалисты имеют профильное образование и опыт от 10 лет.',
ARRAY['гарантии', 'качество', 'kpi', 'сроки', 'специалисты'], TRUE, 'https://aegisone.ru/', 6);
-- === CATEGORY 2: АУДИТ БЕЗОПАСНОСТИ (4 with answers, 2 inactive) ===
INSERT INTO bot_knowledge_base (category_id, question, answer, keywords, is_active, source_url, sort_order) VALUES
(2, 'Что такое независимый аудит безопасности?',
'Это объективная оценка состояния систем видеонаблюдения, СКУД и ОПС с выявлением уязвимостей и скрытых рисков. Результат — детальный отчёт с фотографиями, рекомендациями и дорожной картой.',
ARRAY['аудит', 'независимый', 'оценка', 'проверка', 'безопасность'], TRUE, 'https://aegisone.ru/audit/', 7),
(2, 'Что входит в аудит систем безопасности?',
'Входит проверка систем видеонаблюдения (состояние камер, покрытие, качество записи), СКУД (уязвимости, корректность конфигурации) и ОПС (эффективность обнаружения угроз, своевременность реагирования).',
ARRAY['аудит', 'видеонаблюдение', 'скуда', 'опс', 'проверка'], TRUE, 'https://aegisone.ru/audit/', 8),
(2, 'Сколько стоит аудит?',
'Стоимость зависит от объекта: площади, количества систем, удалённости. Называем цену после предварительного обсуждения — это бесплатно и ни к чему не обязывает.',
ARRAY['аудит', 'цена', 'стоимость', 'сколько стоит'], TRUE, 'https://aegisone.ru/audit/', 9),
(2, 'Как проходит аудит?',
'В 5 этапов: 1) первичное обсуждение, 2) анализ документов, 3) выезд на объект (визуальный и инструментальный осмотр), 4) подготовка отчёта, 5) презентация результатов руководству.',
ARRAY['аудит', 'процесс', 'этапы', 'как проходит'], TRUE, 'https://aegisone.ru/audit/', 10),
(2, 'Чем аудит отличается от внутренней проверки службы безопасности?',
NULL,
ARRAY['аудит', 'отличие', 'внутренняя проверка', 'собственная служба'], FALSE, 'https://aegisone.ru/audit/', 11),
(2, 'Что содержится в отчёте по аудиту?',
NULL,
ARRAY['отчёт', 'результат', 'аудит', 'содержание'], FALSE, 'https://aegisone.ru/audit/', 12);
-- === CATEGORY 3: SLA (3 with answers, 2 inactive) ===
INSERT INTO bot_knowledge_base (category_id, question, answer, keywords, is_active, source_url, sort_order) VALUES
(3, 'Что входит в сервисное обслуживание (SLA)?',
'Регулярное техническое обслуживание, 24/7 мониторинг систем, гарантированное время реакции, отчётность по KPI. Включает профилактику отказов и плановые проверки.',
ARRAY['sla', 'сервис', 'обслуживание', 'то', 'техническое'], TRUE, 'https://aegisone.ru/sla/', 13),
(3, 'Какие тарифы SLA есть?',
'Базовый (от 15 000 ₽/мес): ежемесячное ТО, 48ч реакция, удалённый мониторинг. Оптимальный (от 30 000 ₽/мес): ТО 2 раза/мес, 24ч реакция, 24/7 мониторинг. Максимальный (от 60 000 ₽/мес): еженедельное ТО, 12ч реакция, выделенный инженер.',
ARRAY['sla', 'тарифы', 'цены', 'стоимость', 'базовый', 'оптимальный', 'максимальный'], TRUE, 'https://aegisone.ru/sla/', 14),
(3, 'Нужно ли проводить аудит перед заключением SLA?',
'Рекомендуется, чтобы определить фактическое состояние систем и оптимальный тариф. Точное предложение формируется после аудита.',
ARRAY['аудит', 'sla', 'перед', 'нужен ли'], TRUE, 'https://aegisone.ru/sla/', 15),
(3, 'Как контролируется качество обслуживания по SLA?',
NULL,
ARRAY['контроль', 'качество', 'sla', 'отчётность', 'kpi'], FALSE, 'https://aegisone.ru/sla/', 16),
(3, 'Что происходит при аварийной ситуации по SLA?',
NULL,
ARRAY['авария', 'sla', 'экстренная', 'реагирование', 'поломка'], FALSE, 'https://aegisone.ru/sla/', 17);
-- === CATEGORY 4: ИНЦИДЕНТЫ (3 with answers, 1 inactive) ===
INSERT INTO bot_knowledge_base (category_id, question, answer, keywords, is_active, source_url, sort_order) VALUES
(4, 'Что такое реагирование на инциденты?',
'Это 24/7 мониторинг систем безопасности и оперативное реагирование на инциденты. Включает расследование причин, устранение последствий и профилактику повторений.',
ARRAY['инцидент', 'реагирование', 'мониторинг', '24/7'], TRUE, 'https://aegisone.ru/incident/', 18),
(4, 'Как быстро вы реагируете на инцидент?',
'Время реакции — от 4 до 24 часов в зависимости от тарифа SLA. Возможен экстренный выезд.',
ARRAY['скорость', 'время', 'реакция', 'инцидент', 'быстро'], TRUE, 'https://aegisone.ru/incident/', 19),
(4, 'Какие системы вы мониторите?',
'Видеонаблюдение, СКУД, охранно-пожарную сигнализацию (ОПС) и системы периметральной защиты.',
ARRAY['мониторинг', 'системы', 'видеонаблюдение', 'скуда', 'опс'], TRUE, 'https://aegisone.ru/incident/', 20),
(4, 'Нужен ли договор для разового вызова на инцидент?',
NULL,
ARRAY['договор', 'разовый', 'инцидент', 'без договора'], FALSE, 'https://aegisone.ru/incident/', 21);
-- === CATEGORY 5: ТЕХНИЧЕСКИЙ НАДЗОР (3 with answers, 1 inactive) ===
INSERT INTO bot_knowledge_base (category_id, question, answer, keywords, is_active, source_url, sort_order) VALUES
(5, 'Что такое технический надзор?',
'Это независимый контроль качества монтажа и пусконаладки систем безопасности. Гарантируем соответствие проекту, нормативам и срокам.',
ARRAY['технический надзор', 'контроль', 'монтаж', 'качество', 'пусконаладка'], TRUE, 'https://aegisone.ru/supervision/', 22),
(5, 'Когда нужен технический надзор?',
'При строительстве или реконструкции объекта, при модернизации систем безопасности, а также при приёмке объекта в эксплуатацию.',
ARRAY['надзор', 'когда нужен', 'строительство', 'модернизация', 'приёмка'], TRUE, 'https://aegisone.ru/supervision/', 23),
(5, 'Чем технадзор отличается от авторского надзора?',
'Авторский надзор ведётся проектировщиком и проверяет соответствие проекту. Технический надзор — это независимый контроль качества, сроков и соблюдения норм.',
ARRAY['отличие', 'авторский', 'технадзор', 'проектировщик'], TRUE, 'https://aegisone.ru/supervision/', 24),
(5, 'Как документируются результаты технадзора?',
NULL,
ARRAY['документы', 'акты', 'технадзор', 'результаты'], FALSE, 'https://aegisone.ru/supervision/', 25);
-- === CATEGORY 6: ДОКУМЕНТАЦИЯ (3 with answers, 1 inactive) ===
INSERT INTO bot_knowledge_base (category_id, question, answer, keywords, is_active, source_url, sort_order) VALUES
(6, 'Какие документы вы разрабатываете?',
'Проектную документацию для видеонаблюдения, СКУД, ОПС, периметральной защиты. А также проводим экспертизу существующей документации и аудит соответствия нормативам.',
ARRAY['документация', 'проектная', 'разработка', 'скуда', 'опс', 'пожарная'], TRUE, 'https://aegisone.ru/documentation/', 26),
(6, 'Какие документы нужны для сдачи объекта?',
'Зависит от типа объекта. Обычно: проектная документация (стадии П и Р), исполнительная документация, акты скрытых работ, паспорта и сертификаты оборудования, акты приёмки.',
ARRAY['сдача', 'документы', 'объект', 'приёмка', 'исполнительная'], TRUE, 'https://aegisone.ru/documentation/', 27),
(6, 'Есть ли лицензия на проектирование?',
'Да, компания имеет все необходимые разрешения и компетенции для проектирования объектов любого класса сложности.',
ARRAY['лицензия', 'разрешение', 'проектирование', 'сро'], TRUE, 'https://aegisone.ru/documentation/', 28),
(6, 'Можно ли восстановить утерянную документацию?',
NULL,
ARRAY['восстановление', 'документация', 'утеряна', 'исполнительная схема'], FALSE, 'https://aegisone.ru/documentation/', 29);
-- === CATEGORY 7: РИСК-ИНЖИНИРИНГ (3 with answers, 1 inactive) ===
INSERT INTO bot_knowledge_base (category_id, question, answer, keywords, is_active, source_url, sort_order) VALUES
(7, 'Что такое риск-инжиниринг?',
'Это системный подход к управлению рисками безопасности: оценка, анализ и разработка стратегии защиты. Помогает защитить бизнес от финансовых и репутационных потерь.',
ARRAY['риск', 'инжиниринг', 'управление', 'оценка', 'стратегия'], TRUE, 'https://aegisone.ru/risk/', 30),
(7, 'Чем риск-инжиниринг отличается от аудита?',
'Аудит оценивает текущее состояние систем. Риск-инжиниринг шире: анализирует бизнес-процессы, угрозы, сценарии и предлагает стратегию с экономическим обоснованием.',
ARRAY['отличие', 'риск-инжиниринг', 'аудит', 'разница'], TRUE, 'https://aegisone.ru/risk/', 31),
(7, 'Как измерить эффективность безопасности?',
'Через ROI безопасности: сравниваем стоимость риска «до» и «после» внедрения мер. Даём конкретные цифры и сроки окупаемости.',
ARRAY['эффективность', 'roi', 'безопасность', 'измерение', 'окупаемость'], TRUE, 'https://aegisone.ru/risk/', 32),
(7, 'Как часто нужно обновлять оценку рисков?',
NULL,
ARRAY['обновление', 'периодичность', 'риски', 'оценка', 'частота'], FALSE, 'https://aegisone.ru/risk/', 33);
-- === CATEGORY 8: ОТРАСЛИ И КЕЙСЫ (7 inactive — all need answers) ===
INSERT INTO bot_knowledge_base (category_id, question, answer, keywords, is_active, source_url, sort_order) VALUES
(8, 'В каких отраслях вы работаете?',
NULL,
ARRAY['отрасли', 'клиенты', 'ритейл', 'склады', 'производство', 'офисы', 'гостиницы', 'банки'], FALSE, 'https://aegisone.ru/', 34),
(8, 'Работаете ли вы с торговыми центрами?',
NULL,
ARRAY['тц', 'торговый центр', 'ритейл', 'безопасность'], FALSE, 'https://aegisone.ru/', 35),
(8, 'Работаете ли вы с производственными предприятиями?',
NULL,
ARRAY['производство', 'завод', 'промышленность', 'безопасность'], FALSE, 'https://aegisone.ru/', 36),
(8, 'Был ли у вас кейс со складом торговой сети?',
NULL,
ARRAY['кейс', 'склад', 'торговая сеть', 'пример'], FALSE, 'https://aegisone.ru/', 37),
(8, 'Какой результат вы получили для банковского офиса?',
NULL,
ARRAY['банк', 'офис', 'опс', 'пожарная', 'кейс'], FALSE, 'https://aegisone.ru/', 38),
(8, 'Что такое метод «Тайный покупатель»?',
NULL,
ARRAY['тайный покупатель', 'оценка', 'персонал', 'охрана', 'метод'], FALSE, 'https://aegisone.ru/', 39),
(8, 'Есть ли у вас кейсы для гостиниц?',
NULL,
ARRAY['гостиница', 'отель', 'кейс', 'скуда', 'бронирование'], FALSE, 'https://aegisone.ru/', 40);