🚀 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
This commit is contained in:
126
n8n_code_generate_questions.js
Normal file
126
n8n_code_generate_questions.js
Normal file
@@ -0,0 +1,126 @@
|
||||
// 🎯 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
|
||||
}
|
||||
}));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user