🚀 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:
Фёдор
2025-10-27 22:49:42 +03:00
parent 0cf3297290
commit 684fada337
94 changed files with 14891 additions and 911 deletions

435
audit_data.json Normal file
View File

@@ -0,0 +1,435 @@
[
{
"id": 4678,
"hotel_id": "3cb24abd-c608-11ef-92da-c39c585ec536",
"region_name": "Чукотский автономный округ",
"hotel_name": "Отель \"Чукотка\"",
"website": "www.hotel87.ru",
"has_website": true,
"criteria_results": [
{
"found": false,
"regex": {
"found": false,
"answer": "НЕТ",
"extracted": "",
"confidence": "Низкая"
},
"score": 0,
"status": "НЕ НАЙДЕНО",
"ai_agent": {
"url": "",
"found": false,
"quote": "",
"score": 0,
"details": "ИНН, ОГРН, ЕГРЮЛ, ЕГРИП не найдены на сайте",
"confidence": "Не найдено",
"checked_pages": 10
},
"criterion_id": 1,
"criterion_name": "Юридическая идентификация и верификация",
"final_confidence": "Низкая",
"criterion_description": "ИНН, ОГРН, полное наименование организации"
},
{
"found": true,
"regex": {
"found": true,
"answer": "ДА",
"extracted": "689000, г. Анадырь, ул. Рультытегина, 2В Телефон: +7(914)080-21-97",
"confidence": "Средняя"
},
"score": 1,
"status": "НАЙДЕНО",
"ai_agent": {
"url": "https://hotel87.ru/contact/",
"found": true,
"quote": "689000, г. Анадырь, ул. Рультытегина, 2В",
"score": 1,
"details": "Фактический (и, предположительно, юридический) адрес: 689000, г. Анадырь, ул. Рультытегина, 2В",
"confidence": "Высокая",
"checked_pages": 1
},
"criterion_id": 2,
"criterion_name": "Адрес",
"final_confidence": "Очень высокая",
"criterion_description": "Юридический и фактический адрес, местонахождение"
},
{
"found": true,
"regex": {
"found": true,
"answer": "ДА",
"extracted": "+7(914)080-21-97",
"confidence": "Высокая"
},
"score": 1,
"status": "НАЙДЕНО",
"ai_agent": {
"url": "https://hotel87.ru/contact/",
"found": true,
"quote": "Контакты Отель Чукотка\\nПерейти к содержимому\\nОтель Чукотка\\nГлавная\\nКомнаты и цены\\nО нас\\nКонтакты\\nMail\\n+7(914)080-21-97\\nКонтакты\\n689000, г. Анадырь, ул. Рультытегина, 2В\\nТелефон: +7(914)080-21-97\\n+7 (42722) 6-26-61\\nE-mail: info@hotel87.ru\\nCopyright 2024 www.hote87.tu\\nОтправьте нам сообщение\\nБизнес-мессенджер",
"score": 1,
"details": "Телефон: +7(914)080-21-97, +7 (42722) 6-26-61; Email: info@hotel87.ru; Форма обратной связи присутствует; Чат: бизнес-мессенджер",
"confidence": "Высокая",
"checked_pages": 10
},
"criterion_id": 3,
"criterion_name": "Контакты",
"final_confidence": "Очень высокая",
"criterion_description": "Телефон, email, форма обратной связи"
},
{
"found": true,
"regex": {
"found": true,
"answer": "ДА",
"extracted": "ЧАСЫ РАБОТЫ РЕСТОРАНА RESTAURANT OPENING HOURS Завтрак / Breakfast 07:...",
"confidence": "Средняя"
},
"score": 1,
"status": "НАЙДЕНО",
"ai_agent": {
"url": "https://hotel87.ru/reustoran/",
"found": true,
"quote": "ЧАСЫ РАБОТЫ РЕСТОРАНА RESTAURANT OPENING HOURS Завтрак / Breakfast 07:30 10:00 Бизнес-ланч / Business lunch 12:00 15:00 Согласно меню / A la carte 12:00 / 23:00",
"score": 1,
"details": "Часы работы ресторана: Завтрак 07:30-10:00, бизнес-ланч 12:00-15:00, а ля карт 12:00-23:00. Телефоны для колл-центра: +7(914)080-21-97, +7 (42722) 6-26-61",
"confidence": "Высокая",
"checked_pages": 6
},
"criterion_id": 4,
"criterion_name": "Режим работы",
"final_confidence": "Очень высокая",
"criterion_description": "Часы работы, график приема, колл-центр"
},
{
"found": true,
"regex": {
"found": false,
"answer": "НЕТ",
"extracted": "",
"confidence": "Высокая"
},
"score": 1,
"status": "НАЙДЕНО",
"ai_agent": {
"url": "https://hotel87.ru/about/",
"found": true,
"quote": "Политика защиты и обработки персональных данных",
"score": 1,
"details": "Политика защиты и обработки персональных данных указана на странице About https://hotel87.ru/about/",
"confidence": "Высокая",
"checked_pages": 10
},
"criterion_id": 5,
"criterion_name": "Политика ПДн (152-ФЗ)",
"final_confidence": "Высокая",
"criterion_description": "Политика персональных данных, обработка ПДн"
},
{
"found": true,
"rkn_date": "29.04.2021",
"rkn_number": "49-21-000780",
"rkn_status": "found",
"criterion_id": 6,
"criterion_name": "РКН Реестр"
},
{
"found": true,
"regex": {
"found": false,
"answer": "НЕТ",
"extracted": "",
"confidence": "Высокая"
},
"score": 0.5,
"status": "НАЙДЕНО",
"ai_agent": {
"url": "https://hotel87.ru/about/",
"found": true,
"quote": "Тарифы на проживание\\nПубличная оферта\\nПрейскурант на возмещение ущерба\\nПрейскурант на услуги стирки/глажки\\nПолитика защиты и обработки персональных данных",
"score": 0.5,
"details": "Найдена ссылка на публичную оферту, а также условия оказания услуг указаны косвенно (прейскурант и политика).",
"confidence": "Средняя",
"checked_pages": 10
},
"criterion_id": 7,
"criterion_name": "Договор-оферта / Правила оказания услуг",
"final_confidence": "Средняя",
"criterion_description": "Публичная оферта, пользовательское соглашение"
},
{
"found": false,
"regex": {
"found": false,
"answer": "НЕТ",
"extracted": "",
"confidence": "Высокая"
},
"score": 0,
"status": "НЕ НАЙДЕНО",
"ai_agent": {
"url": "",
"found": false,
"quote": "",
"score": 0,
"details": "Информация о претензиях, рекламациях, спорах, возвратах, обменах, гарантиях и жалобах отсутствует на сайте",
"confidence": "Не найдено",
"checked_pages": 10
},
"criterion_id": 8,
"criterion_name": "Рекламации и споры",
"final_confidence": "Низкая",
"criterion_description": "Претензии, возврат, обмен, жалобы"
},
{
"found": true,
"regex": {
"found": true,
"answer": "ДА",
"extracted": "Информация о ценах указана в разделе 'Комнаты и цены'. В стоимость проживания включён завтрак (BB - Bed and Breakfast). Также упоминается HB - полупансион.",
"confidence": "Средняя"
},
"score": 1,
"status": "НАЙДЕНО",
"ai_agent": {
"url": "https://hotel87.ru/rooms/",
"found": true,
"quote": "SGL BB\\nТолько 1-местное проживание\\n10 000,00\\nSGL HB\\nТолько 1-местное проживание\\n11 500,00\\nSGL FB\\nТолько 1-местное проживание\\n13 000,00\\nDBL HB\\nПри 1-местном проживании\\nПри 2-местном проживании\\n13 500,00\\n17 500.00\\nDBL FB\\nПри 1-местном проживании\\nПри 2-местном проживании\\n15 000,00\\n19 500.00\\nSUITE BB\\nПри 1-местном проживании\\nПри 2-местном проживании\\n27 550,00\\n31 100,00\\nSUITE HB\\nПри 1-местном проживании\\nПри 2-местном проживании\\n29 050,00\\n33 100,00\\nSUITE FB\\nПри 1-местном проживании\\nПри 2-местном проживании\\n30 550,00\\n35 100,00",
"score": 1,
"details": "Прайс на номера с разными тарифами (BB, HB, FB) в рублях",
"confidence": "Высокая",
"checked_pages": 6
},
"criterion_id": 9,
"criterion_name": "Цены/прайс",
"final_confidence": "Очень высокая",
"criterion_description": "Цены, стоимость, тарифы"
},
{
"found": false,
"regex": {
"found": false,
"answer": "НЕТ",
"extracted": "",
"confidence": "Высокая"
},
"score": 0,
"status": "НЕ НАЙДЕНО",
"ai_agent": {
"url": "",
"found": false,
"quote": "",
"score": 0,
"details": "Информация о способах оплаты (наличные, карта, СБП, банковская карта) отсутствует на сайте",
"confidence": "Не найдено",
"checked_pages": 9
},
"criterion_id": 10,
"criterion_name": "Способы оплаты",
"final_confidence": "Низкая",
"criterion_description": "Наличные, карта, СБП"
},
{
"found": false,
"regex": {
"found": false,
"answer": "НЕТ",
"extracted": "",
"confidence": "Высокая"
},
"score": 0,
"status": "НЕ НАЙДЕНО",
"ai_agent": {
"url": "",
"found": false,
"quote": "",
"score": 0,
"details": "Информация об онлайн оплате, эквайринге и оплате онлайн на сайте отсутствует",
"confidence": "Не найдено",
"checked_pages": 7
},
"criterion_id": 11,
"criterion_name": "Онлайн-оплата",
"final_confidence": "Низкая",
"criterion_description": "Эквайринг, оплата онлайн"
},
{
"found": true,
"regex": {
"found": false,
"answer": "НЕТ",
"extracted": "",
"confidence": "Низкая"
},
"score": 1,
"status": "НАЙДЕНО",
"ai_agent": {
"url": "https://hotel87.ru/",
"found": true,
"quote": "Бронирование\\nВы можете забронировать номер через сайт или позвонив по телефону:\\n+7(914)080-21-97\\n+7 (42722) 6-26-61",
"score": 1,
"details": "Есть онлайн бронирование номеров через сайт, также предоставлены телефоны для бронирования +7(914)080-21-97, +7 (42722) 6-26-61",
"confidence": "Высокая",
"checked_pages": 10
},
"criterion_id": 12,
"criterion_name": "Онлайн-бронирование",
"final_confidence": "Высокая",
"criterion_description": "Забронировать, booking"
},
{
"found": false,
"regex": {
"found": false,
"answer": "НЕТ",
"extracted": "",
"confidence": "Высокая"
},
"score": 0,
"status": "НЕ НАЙДЕНО",
"ai_agent": {
"url": "",
"found": false,
"quote": "",
"score": 0,
"details": "Информация о FAQ отсутствует на сайте",
"confidence": "Не найдено",
"checked_pages": 10
},
"criterion_id": 13,
"criterion_name": "FAQ",
"final_confidence": "Низкая",
"criterion_description": "Частые вопросы, вопрос-ответ"
},
{
"found": false,
"regex": {
"found": false,
"answer": "НЕТ",
"extracted": "",
"confidence": "Низкая"
},
"score": 0,
"status": "НЕ НАЙДЕНО",
"ai_agent": {
"url": "",
"found": false,
"quote": "",
"score": 0,
"details": "Информация о доступности для инвалидов, ЛОВЗ, безбарьерной среде и маломобильных групп отсутствует на сайте",
"confidence": "Не найдено",
"checked_pages": 10
},
"criterion_id": 14,
"criterion_name": "Доступность для ЛОВЗ",
"final_confidence": "Низкая",
"criterion_description": "Инвалиды, безбарьерная среда"
},
{
"found": false,
"regex": {
"found": false,
"answer": "НЕТ",
"extracted": "",
"confidence": "Высокая"
},
"score": 0,
"status": "НЕ НАЙДЕНО",
"ai_agent": {
"url": "",
"found": false,
"quote": "",
"score": 0,
"details": "Информация о партнерах, поставщиках, брендах, сотрудничестве и франшизе отсутствует на сайте",
"confidence": "Не найдено",
"checked_pages": 10
},
"criterion_id": 15,
"criterion_name": "Партнёры/бренды",
"final_confidence": "Низкая",
"criterion_description": "Партнеры, поставщики, сотрудничество"
},
{
"found": false,
"regex": {
"found": false,
"answer": "НЕТ",
"extracted": "",
"confidence": "Высокая"
},
"score": 0,
"status": "НЕ НАЙДЕНО",
"ai_agent": {
"url": "",
"found": false,
"quote": "",
"score": 0,
"details": "Информация о команде, сотрудниках, персонале и руководстве отсутствует на сайте",
"confidence": "Не найдено",
"checked_pages": 10
},
"criterion_id": 16,
"criterion_name": "Команда/сотрудники",
"final_confidence": "Низкая",
"criterion_description": "Команда, персонал, руководство"
},
{
"found": false,
"regex": {
"found": false,
"answer": "НЕТ",
"extracted": "",
"confidence": "Высокая"
},
"score": 0,
"status": "НЕ НАЙДЕНО",
"ai_agent": {
"url": "",
"found": false,
"quote": "",
"score": 0,
"details": "Информация об углуке потребителя, правах, защите и законе о защите потребителей отсутствует на сайте",
"confidence": "Не найдено",
"checked_pages": 13
},
"criterion_id": 17,
"criterion_name": "Уголок потребителя",
"final_confidence": "Низкая",
"criterion_description": "Права потребителей, защита"
},
{
"found": false,
"regex": {
"found": false,
"answer": "НЕТ",
"extracted": "",
"confidence": "Высокая"
},
"score": 0,
"status": "НЕ НАЙДЕНО",
"ai_agent": {
"url": "",
"found": false,
"quote": "",
"score": 0,
"details": "Информация о дате обновления, дате публикации, актуальности и версии на сайте отсутствует",
"confidence": "Не найдено",
"checked_pages": 7
},
"criterion_id": 18,
"criterion_name": "Актуальность документов",
"final_confidence": "Низкая",
"criterion_description": "Дата обновления, версия"
}
],
"total_score": 7,
"max_score": 17,
"score_percentage": 41.2,
"audit_date": "2025-10-15T13:33:40.231Z",
"audit_version": "v1.0_with_rkn"
}
]