Files
hotels/n8n_code_generate_questions.js
Фёдор 684fada337 🚀 Full project sync: Hotels RAG & Audit System
 Major Features:
- Complete RAG system for hotel website analysis
- Hybrid audit with BGE-M3 embeddings + Natasha NER
- Universal horizontal Excel reports with dashboards
- Multi-region processing (SPb, Orel, Chukotka, Kamchatka)

📊 Completed Regions:
- Орловская область: 100% (36/36)
- Чукотский АО: 100% (4/4)
- г. Санкт-Петербург: 93% (893/960)
- Камчатский край: 87% (89/102)

🔧 Infrastructure:
- PostgreSQL with pgvector extension
- BGE-M3 embeddings API
- Browserless for web scraping
- N8N workflows for automation
- S3/Nextcloud file storage

📝 Documentation:
- Complete DB schemas
- API documentation
- Setup guides
- Status reports
2025-10-27 22:49:42 +03:00

127 lines
5.2 KiB
JavaScript
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.

// 🎯 CODE NODE: Генерация 17 вопросов для AI Agent
// Размести эту ноду в начале workflow
// Она создаст 17 items (по одному на каждый критерий)
const questions = [
{
id: 1,
name: 'Юридическая идентификация и верификация',
question: 'Предоставлена ли Юридическая идентификация и верификация (ИНН, ОГРН, банковские реквизиты)?',
keywords: ['инн', 'огрн', 'егрюл', 'егрип', 'организация', 'ооо', 'ип']
},
{
id: 2,
name: 'Адрес',
question: 'Указан ли Адрес местонахождения (юридический, фактический)?',
keywords: ['адрес', 'address', 'местонахождение', 'г.', 'ул.']
},
{
id: 3,
name: 'Контакты',
question: 'Указаны ли Контакты (телефон, e-mail)?',
keywords: ['телефон', 'phone', 'email', '@', '+7', '8-800']
},
{
id: 4,
name: 'Режим работы',
question: 'Указан ли Режим работы (часы работы, график приема)?',
keywords: ['часы работы', 'график работы', 'режим работы', 'круглосуточно', '24/7']
},
{
id: 5,
name: 'Политика ПДн (152-ФЗ)',
question: 'Есть ли для ознакомления Политика ПДн (152-ФЗ)?',
keywords: ['персональных данных', 'пдн', '152-фз', 'privacy']
},
// КРИТЕРИЙ 6 (Роскомнадзор) ПРОПУЩЕН - проверяется отдельно!
{
id: 7,
name: 'Договор-оферта / Правила оказания услуг',
question: 'Есть ли Договор-оферта / Правила оказания услуг?',
keywords: ['договор', 'оферта', 'правила', 'условия', 'услуг']
},
{
id: 8,
name: 'Рекламации и споры',
question: 'Есть ли указание как подать рекламацию/претензию или описание о порядке разрешения споров?',
keywords: ['рекламация', 'спор', 'жалоба', 'претензия', 'конфликт']
},
{
id: 9,
name: 'Цены/прайс',
question: 'Представлены ли Цены/прайс на номера и услуги?',
keywords: ['цена', 'прайс', 'тариф', 'стоимость', 'номер']
},
{
id: 10,
name: 'Способы оплаты',
question: 'Указаны ли доступные Способы оплаты (наличные, карта, СБП)?',
keywords: ['оплата', 'платеж', 'карта', 'наличные', 'способ']
},
{
id: 11,
name: 'Онлайн-оплата',
question: 'Есть ли возможность Онлайн-оплаты?',
keywords: ['онлайн', 'интернет', 'платеж', 'карта', 'сайт']
},
{
id: 12,
name: 'Онлайн-бронирование',
question: 'Есть ли возможность Онлайн-бронирования?',
keywords: ['бронирование', 'заказ', 'номер', 'сайт', 'онлайн']
},
{
id: 13,
name: 'FAQ',
question: 'Есть ли на сайте FAQ (часто задаваемые вопросы)?',
keywords: ['faq', 'вопрос', 'ответ', 'помощь', 'часто']
},
{
id: 14,
name: 'Доступность для ЛОВЗ',
question: 'Есть ли информация о Доступности для ЛОВЗ (лиц с ограниченными возможностями здоровья)?',
keywords: ['доступность', 'инвалид', 'ловз', 'безбарьерная']
},
{
id: 15,
name: 'Партнёры/бренды',
question: 'Представлена ли информация о Партнёрах/брендах?',
keywords: ['партнер', 'бренд', 'сотрудничество', 'франшиза']
},
{
id: 16,
name: 'Команда/сотрудники',
question: 'Есть ли сведения о Команде/сотрудниках?',
keywords: ['команда', 'сотрудник', 'персонал', 'коллектив']
},
{
id: 17,
name: 'Уголок потребителя',
question: 'Есть ли на сайте Уголок потребителя?',
keywords: ['потребитель', 'права', 'защита', 'уголок']
},
{
id: 18,
name: 'Актуальность документов',
question: 'Актуальность документов — указана ли дата последнего обновления информации?',
keywords: ['актуальность', 'документ', 'дата', 'обновление', 'свежая']
}
];
// Возвращаем 17 items для Loop
return questions.map(q => ({
json: {
id: q.id,
name: q.name,
question: q.question,
keywords: q.keywords
}
}));