163 lines
4.4 KiB
Markdown
163 lines
4.4 KiB
Markdown
|
|
# ✅ NATASHA NER API - ГОТОВО К РАБОТЕ
|
|||
|
|
|
|||
|
|
**Дата:** 13 октября 2025, 19:52
|
|||
|
|
**Статус:** 🟢 Работает с защитой API ключом
|
|||
|
|
**Версия:** 1.1.0
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎯 ЧТО СДЕЛАНО
|
|||
|
|
|
|||
|
|
✅ Создан Natasha NER API на FastAPI
|
|||
|
|
✅ Добавлена защита через API ключ (X-API-Key)
|
|||
|
|
✅ API работает по внешнему IP: `http://185.197.75.249:8004`
|
|||
|
|
✅ Протестировано на реальных данных
|
|||
|
|
✅ Время отклика: ~70ms (очень быстро!)
|
|||
|
|
✅ Готовые cURL для импорта в n8n
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔑 API КЛЮЧ
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
CH2BAYBYGYDDSWpaEd_CvJrH04DoVSGtZi_mah2nXbw
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
⚠️ **ХРАНИ В СЕКРЕТЕ!**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🚀 ГЛАВНЫЙ cURL ДЛЯ n8n
|
|||
|
|
|
|||
|
|
**Скопируй это и вставь в "Import from cURL":**
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://185.197.75.249:8004/extract_simple' -H 'Content-Type: application/json' -H 'X-API-Key: CH2BAYBYGYDDSWpaEd_CvJrH04DoVSGtZi_mah2nXbw' -d '{"text":"ИП Фролов С.А. находится по адресу г. Петропавловск-Камчатский, ул. Пограничная 39/1.","max_length":5000}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📋 ДЛЯ ДИНАМИЧЕСКИХ ДАННЫХ В n8n
|
|||
|
|
|
|||
|
|
После импорта cURL измени Body на:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"text": "{{ $json.quote }}",
|
|||
|
|
"max_length": 5000
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Где `{{ $json.quote }}` - текст из предыдущей ноды.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🧪 РЕЗУЛЬТАТ ТЕСТА (13.10.2025 19:52)
|
|||
|
|
|
|||
|
|
**Запрос:**
|
|||
|
|
```bash
|
|||
|
|
curl -X POST 'http://185.197.75.249:8004/extract_simple' \
|
|||
|
|
-H 'X-API-Key: CH2BAYBYGYDDSWpaEd_CvJrH04DoVSGtZi_mah2nXbw' \
|
|||
|
|
-H 'Content-Type: application/json' \
|
|||
|
|
-d '{"text":"ИП Фролов С.А. находится по адресу г. Петропавловск-Камчатский, ул. Пограничная 39/1.","max_length":5000}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Ответ:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"organizations": ["ИП"],
|
|||
|
|
"persons": ["Фролов С.А."],
|
|||
|
|
"locations": ["Петропавловск-Камчатский"],
|
|||
|
|
"has_organizations": true,
|
|||
|
|
"has_persons": true,
|
|||
|
|
"has_locations": true,
|
|||
|
|
"total": 3
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Время отклика:** 69ms ⚡
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔒 БЕЗОПАСНОСТЬ
|
|||
|
|
|
|||
|
|
| Эндпоинт | Защита | Описание |
|
|||
|
|
|----------|--------|----------|
|
|||
|
|
| `/health` | ❌ Без ключа | Проверка здоровья (для мониторинга) |
|
|||
|
|
| `/extract` | ✅ С ключом | Полное извлечение с позициями |
|
|||
|
|
| `/extract_simple` | ✅ С ключом | Упрощённое (для n8n) |
|
|||
|
|
|
|||
|
|
**Без ключа:**
|
|||
|
|
```
|
|||
|
|
401 Unauthorized
|
|||
|
|
{"detail": "Неверный или отсутствующий API ключ..."}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📊 ДЛЯ КАКИХ КРИТЕРИЕВ ИСПОЛЬЗОВАТЬ
|
|||
|
|
|
|||
|
|
### Критерий 1: ИНН/ОГРН (Юридическая идентификация)
|
|||
|
|
- Проверяй: `has_organizations == true`
|
|||
|
|
- Извлекает: `["ИП", "ООО", "АО", ...]`
|
|||
|
|
|
|||
|
|
### Критерий 2: Адрес
|
|||
|
|
- Проверяй: `has_locations == true`
|
|||
|
|
- Извлекает: `["Москва", "Петропавловск-Камчатский", ...]`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📚 ДОКУМЕНТАЦИЯ
|
|||
|
|
|
|||
|
|
### Файлы:
|
|||
|
|
- ✅ `API_KEY.txt` - Краткая шпаргалка с ключом
|
|||
|
|
- ✅ `NATASHA_API_KEY.txt` - Полная документация
|
|||
|
|
- ✅ `N8N_NATASHA_CURL_IMPORT.md` - Детальная инструкция
|
|||
|
|
- ✅ `natasha_ner_api.py` - Исходный код API
|
|||
|
|
|
|||
|
|
### Swagger UI:
|
|||
|
|
```
|
|||
|
|
http://185.197.75.249:8004/docs
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
1. Открой Swagger UI
|
|||
|
|
2. Нажми 🔒 "Authorize"
|
|||
|
|
3. Введи ключ
|
|||
|
|
4. Тестируй прямо в браузере!
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔧 УПРАВЛЕНИЕ
|
|||
|
|
|
|||
|
|
### Проверка статуса:
|
|||
|
|
```bash
|
|||
|
|
curl http://185.197.75.249:8004/health
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Перезапуск API:
|
|||
|
|
```bash
|
|||
|
|
pkill -f natasha_ner_api
|
|||
|
|
cd /root/engine/public_oversight/hotels
|
|||
|
|
nohup python3 -m uvicorn natasha_ner_api:app --host 0.0.0.0 --port 8004 --reload > natasha_api.log 2>&1 &
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Логи:
|
|||
|
|
```bash
|
|||
|
|
tail -f /root/engine/public_oversight/hotels/natasha_api.log
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎉 ГОТОВО!
|
|||
|
|
|
|||
|
|
**Natasha NER API полностью готов к использованию в n8n!**
|
|||
|
|
|
|||
|
|
Просто скопируй главный cURL выше и импортируй в HTTP Request Node. 🚀
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**Автор:** AI Assistant + Фёдор
|
|||
|
|
**Проверено:** 13 октября 2025, 19:52
|
|||
|
|
**API:** http://185.197.75.249:8004
|
|||
|
|
|