🚀 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

122
NATASHA_API_READY.txt Normal file
View File

@@ -0,0 +1,122 @@
═══════════════════════════════════════════════════════════════════════════
✅ NATASHA NER API - ГОТОВ К ИСПОЛЬЗОВАНИЮ В n8n
═══════════════════════════════════════════════════════════════════════════
📅 Дата: 13 октября 2025, 19:45
👤 Для: Фёдор
🎯 Цель: Интеграция в n8n HTTP Request Node
───────────────────────────────────────────────────────────────────────────
✅ ТЕСТЫ ПРОЙДЕНЫ
───────────────────────────────────────────────────────────────────────────
✅ API работает по внешнему IP: http://185.197.75.249:8004
✅ Время отклика: 87ms (очень быстро!)
✅ Извлекает: организации, адреса, имена
✅ Формат ответа: JSON
✅ Готов для импорта в n8n
───────────────────────────────────────────────────────────────────────────
🚀 БЫСТРЫЙ СТАРТ - СКОПИРУЙ ЭТО В n8n
───────────────────────────────────────────────────────────────────────────
1. Добавь HTTP Request Node
2. Нажми "Import from cURL"
3. Вставь это:
curl -X POST 'http://185.197.75.249:8004/extract_simple' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{"text":"ИП Фролов С.А. находится по адресу г. Петропавловск-Камчатский, ул. Пограничная 39/1. Директор Иван Петров. ИНН: 8707003759, ОГРН: 1028700516476.","max_length":5000}'
4. n8n автоматически всё настроит ✅
───────────────────────────────────────────────────────────────────────────
🔥 ГЛАВНЫЙ cURL (ПРОТЕСТИРОВАН)
───────────────────────────────────────────────────────────────────────────
curl -X POST 'http://185.197.75.249:8004/extract_simple' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{"text":"ИП Фролов С.А. находится по адресу г. Петропавловск-Камчатский, ул. Пограничная 39/1. Директор Иван Петров. ИНН: 8707003759, ОГРН: 1028700516476.","max_length":5000}'
───────────────────────────────────────────────────────────────────────────
✅ РЕАЛЬНЫЙ ОТВЕТ (13.10.2025 19:45)
───────────────────────────────────────────────────────────────────────────
{
"organizations": ["ИП"],
"persons": ["Иван Петров", "Фролов С.А."],
"locations": ["Петропавловск-Камчатский"],
"has_organizations": true,
"has_persons": true,
"has_locations": true,
"total": 4
}
───────────────────────────────────────────────────────────────────────────
🔧 ДЛЯ ДИНАМИЧЕСКИХ ДАННЫХ ИЗ ПРЕДЫДУЩЕЙ НОДЫ
───────────────────────────────────────────────────────────────────────────
После импорта cURL измени Body на:
{
"text": "{{ $json.quote }}",
"max_length": 5000
}
Где {{ $json.quote }} - текст из предыдущей ноды
───────────────────────────────────────────────────────────────────────────
📊 ХАРАКТЕРИСТИКИ
───────────────────────────────────────────────────────────────────────────
URL: http://185.197.75.249:8004/extract_simple
Метод: POST
Формат: JSON
Время отклика: ~87ms
Лимит текста: 5000 символов
Извлекает: ORG (организации), PER (люди), LOC (адреса)
───────────────────────────────────────────────────────────────────────────
🎯 ДЛЯ КАКИХ КРИТЕРИЕВ ИСПОЛЬЗОВАТЬ
───────────────────────────────────────────────────────────────────────────
Критерий 1 (ИНН/ОГРН):
→ Проверяй has_organizations == true
→ organizations содержит: ["ИП", "ООО", "АО", "ОАО", ...]
Критерий 2 (Адрес):
→ Проверяй has_locations == true
→ locations содержит: ["Москва", "Петропавловск-Камчатский", ...]
───────────────────────────────────────────────────────────────────────────
📚 ДОПОЛНИТЕЛЬНЫЕ ФАЙЛЫ
───────────────────────────────────────────────────────────────────────────
✅ NATASHA_READY_CURL.txt - Все cURL команды
✅ N8N_NATASHA_CURL_IMPORT.md - Полная документация
✅ natasha_ner_api.py - Исходный код API
✅ N8N_HTTP_REQUEST_NATASHA.md - Настройка HTTP Request Node
───────────────────────────────────────────────────────────────────────────
🧪 БЫСТРЫЙ ТЕСТ (скопируй в терминал)
───────────────────────────────────────────────────────────────────────────
curl http://185.197.75.249:8004/health
Ожидается: {"status":"healthy","natasha":"ready"}
───────────────────────────────────────────────────────────────────────────
🔥 ГОТОВЫЕ ПРИМЕРЫ ДЛЯ РАЗНЫХ КЕЙСОВ
───────────────────────────────────────────────────────────────────────────
# Проверка здоровья
curl -X GET 'http://185.197.75.249:8004/health' -H 'Accept: application/json'
# Извлечение организации (критерий 1)
curl -X POST 'http://185.197.75.249:8004/extract_simple' -H 'Content-Type: application/json' -d '{"text":"ООО Рога и Копыта. ИНН: 8707003759","max_length":5000}'
# Извлечение адреса (критерий 2)
curl -X POST 'http://185.197.75.249:8004/extract_simple' -H 'Content-Type: application/json' -d '{"text":"Юридический адрес: 689400, г. Певек, ул. Пугачева, 42","max_length":5000}'
───────────────────────────────────────────────────────────────────────────
✅ ВСЁ ГОТОВО! МОЖНО ИМПОРТИРОВАТЬ В n8n
───────────────────────────────────────────────────────────────────────────
Просто скопируй главный cURL выше и вставь в "Import from cURL" в n8n!