Сервис для определения языка текста с поддержкой двух методов детекции:
- MediaPipe (по умолчанию) - быстрый детектор от Google
- Lingua - высокоточный детектор с поддержкой 75 языков
- HTTP API на основе Litestar
- Два метода определения языка на выбор
- Возвращает код языка и уровень уверенности
- Swagger UI документация
- Готов к production использованию
- Запуск только в Docker
# Собрать и запустить
docker-compose up -d --build
# Проверить статус
docker-compose ps
# Посмотреть логи
docker-compose logs -fСервис будет доступен на http://localhost:3000
GET /schema/swagger
Интерактивная документация API
GET /health
Ответ:
{
"status": "ok"
}POST /detect
Content-Type: application/json
{
"text": "Hello, how are you?",
"method": "mediapipe" // опционально: "mediapipe" или "lingua"
}
Параметры:
text(string, обязательный) - текст для определения языкаmethod(string, опциональный) - метод детекции:"mediapipe"(по умолчанию) или"lingua"
Ответ:
{
"language": "en",
"confidence": 0.9999,
"method": "mediapipe"
}curl -X POST http://localhost:3000/detect \
-H "Content-Type: application/json" \
-d '{"text": "Hello world"}'
# Response: {"language": "en", "confidence": 0.835, "method": "mediapipe"}curl -X POST http://localhost:3000/detect \
-H "Content-Type: application/json" \
-d '{"text": "Bonjour le monde", "method": "lingua"}'
# Response: {"language": "fr", "confidence": 0.95, "method": "lingua"}lingua-rs/
├── main.py # Основное приложение Litestar
├── detectors/ # Модули детекторов
│ ├── __init__.py
│ ├── base.py # Базовый класс детектора
│ ├── mediapipe_detector.py # MediaPipe реализация
│ └── lingua_detector.py # Lingua реализация
├── app/ # Вспомогательные модули приложения
│ ├── __init__.py
│ ├── schemas.py # Request/Response схемы
│ ├── http_exceptions.py # Кастомные исключения
│ └── openapi_examples.py # Примеры для OpenAPI
├── requirements.txt # Python зависимости
├── Dockerfile # Docker конфигурация
├── docker-compose.yml # Docker Compose
├── .env.example # Пример конфигурации
└── README.md # Документация
- Python 3.11
- Litestar - современный асинхронный веб-фреймворк
- MediaPipe - ML решения от Google
- Lingua - высокоточная библиотека определения языка
- Docker - контейнеризация
| Характеристика | MediaPipe | Lingua |
|---|---|---|
| Скорость | Очень быстрый | Медленнее |
| Точность | Высокая | Очень высокая |
| Языков | 110+ | 75 |
| Размер модели | ~300 KB | ~2 MB |
| Использование | По умолчанию, для большинства случаев | Когда нужна максимальная точность |
Создайте .env файл на основе .env.example:
# MediaPipe model path
MEDIAPIPE_MODEL_PATH=/app/models/language_detector.tflitedocker-compose up -d --builddocker-compose logs -fdocker-compose down./test.shДля production окружения рекомендуется:
- Настроить переменные окружения через
.env - Использовать reverse proxy (nginx, traefik)
- Настроить мониторинг и health checks
- Добавить rate limiting
- Настроить логирование
MIT License