Files
hotels/N8N_HTTP_REQUEST_NATASHA.md

201 lines
4.6 KiB
Markdown
Raw Normal View History

# 🔗 HTTP REQUEST для Natasha NER в n8n
## 📡 **НАСТРОЙКИ HTTP REQUEST NODE:**
### **Базовая информация:**
- **Name:** Natasha NER Check
- **Method:** POST
- **URL:** `http://localhost:8004/extract_simple`
### **Headers:**
```
Content-Type: application/json
Accept: application/json
```
### **Body (JSON):**
```json
{
"text": "{{ $json.quote }}",
"max_length": 5000
}
```
### **Options:**
- **Timeout:** 30000 (30 секунд)
- **Response Format:** JSON
---
## 📋 **ГОТОВЫЙ cURL ДЛЯ ИМПОРТА:**
### **Вариант 1: Для локального n8n (на том же сервере)**
```bash
curl -X POST 'http://localhost:8004/extract_simple' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"text": "{{ $json.quote }}",
"max_length": 5000
}'
```
### **Вариант 2: Если n8n на другом сервере**
Нужно открыть порт 8004 или использовать SSH туннель:
```bash
# SSH туннель (запусти на машине с n8n)
ssh -L 8004:localhost:8004 root@147.45.146.17
# Затем в n8n используй:
# URL: http://localhost:8004/extract_simple
```
---
## 🎯 **ИМПОРТ В n8n (ПОШАГОВО):**
### **ШАГ 1: Создай HTTP Request Node**
1. Добавь ноду **"HTTP Request"**
2. Назови: **"Natasha NER"**
### **ШАГ 2: Настрой Authentication**
- **Authentication:** None (API без авторизации)
### **ШАГ 3: Настрой Request**
- **Method:** POST
- **URL:** `http://localhost:8004/extract_simple`
### **ШАГ 4: Настрой Headers**
Добавь 2 заголовка:
1. `Content-Type`: `application/json`
2. `Accept`: `application/json`
### **ШАГ 5: Настрой Body**
- **Body Content Type:** JSON
- **Specify Body:** Using JSON
- **JSON:**
```json
{
"text": "={{ $json.quote }}",
"max_length": 5000
}
```
### **ШАГ 6: Настрой Options**
- **Timeout:** 30000
- **Response Format:** Auto-detect (JSON)
---
## 📊 **ОЖИДАЕМЫЙ ОТВЕТ:**
```json
{
"organizations": ["ИП", "Фролов С.А."],
"persons": ["Иван Петров"],
"locations": ["Петропавловск-Камчатский", "Пограничная"],
"has_organizations": true,
"has_persons": true,
"has_locations": true,
"total": 4
}
```
---
## 💻 **CODE NODE ПОСЛЕ HTTP REQUEST:**
```javascript
// Обрабатываем ответ от Natasha API
const criterion = $input.item.json;
const nerResult = $('Natasha NER').first().json;
// Определяем NER score в зависимости от критерия
let nerScore = 0.0;
let nerEntities = [];
if (criterion.criterion_id === 1) {
// Критерий 1: Организации
if (nerResult.has_organizations) {
nerScore = 1.0;
nerEntities = nerResult.organizations;
}
} else if (criterion.criterion_id === 2) {
// Критерий 2: Адреса
if (nerResult.has_locations) {
nerScore = 1.0;
nerEntities = nerResult.locations;
}
}
// Комбинируем с regex score
const regexScore = parseFloat(criterion.score) || 0.0;
const finalScore = Math.max(regexScore, nerScore);
return {
json: {
...criterion,
ner_score: nerScore,
ner_entities: nerEntities,
final_score: finalScore,
method: finalScore === nerScore ? 'Natasha NER' :
finalScore === regexScore ? 'Регулярные выражения' :
'Гибрид'
}
};
```
---
## 🔧 **ПРОВЕРКА ДОСТУПНОСТИ:**
```bash
# Локально (на сервере)
curl http://localhost:8004/health
# Извне (если порт открыт)
curl http://147.45.146.17:8004/health
# Если не работает извне - открой порт в firewall:
# sudo ufw allow 8004/tcp
```
---
## 🚀 **БЫСТРЫЙ ТЕСТ:**
```bash
# Тест с реальным текстом
curl -X POST 'http://localhost:8004/extract_simple' \
-H 'Content-Type: application/json' \
-d '{
"text": "Гостиница Певек, ИНН 8707003759, ОГРН 1028700516476. Адрес: г. Певек, ул. Ленина, 10. Директор Иван Иванов.",
"max_length": 5000
}'
```
**Ожидаемый ответ:**
```json
{
"organizations": ["Гостиница Певек"],
"persons": ["Иван Иванов"],
"locations": ["Певек", "ул. Ленина"],
"has_organizations": true,
"has_persons": true,
"has_locations": true,
"total": 4
}
```
**Готово! Используй этот cURL в n8n!** 🚀