Начало работы с TechCon API
Руководство для интеграторов: как подключиться к сервисам экосистемы, проверить их доступность и обработать базовые ошибки.
1. Обзор экосистемы
TechCon предоставляет четыре production-сервиса через единый домен techcon-ml.ru:
| Сервис | Базовый URL | Назначение |
|---|---|---|
| Passports AI | https://passports.techcon-ml.ru |
Распознавание и верификация паспортов |
| Defectoscopy | https://defects.techcon-ml.ru |
Дефектоскопия изображений (ML pipeline) |
| STT | https://stt.techcon-ml.ru |
Транскрибация голосовых описаний и polling результата |
| Techplans Search | https://techplans.techcon-ml.ru |
Семантический поиск по техпланам |
Все сервисы работают по HTTPS. HTTP-запросы автоматически перенаправляются на HTTPS.
2. Аутентификация
Открытые эндпоинты
Большинство публичных эндпоинтов не требуют аутентификации:
# Проверка доступности без токена
curl https://passports.techcon-ml.ru/health
curl https://defects.techcon-ml.ru/health
curl https://stt.techcon-ml.ru/health
curl https://techplans.techcon-ml.ru/health
Bearer token (Passports /health/deep)
Эндпоинт глубокой диагностики /health/deep требует Bearer token:
curl -H "Authorization: Bearer <ваш_токен>" \
https://passports.techcon-ml.ru/health/deep
Token выдаётся командой ops. Для получения доступа — создайте Issue в репозитории techcon_infra_monitoring с тегом access-request.
3. Health checks
Все сервисы возвращают единый формат ответа на /health:
{"ok": true, "data": {...}}
| Поле | Тип | Описание |
|---|---|---|
ok |
boolean | true = сервис готов к работе |
data |
object | Детали состояния (зависят от сервиса) |
Примеры ответов:
# Passports
curl https://passports.techcon-ml.ru/health
# {"ok": true, "data": {"workers_online": 2}}
# Defectoscopy
curl https://defects.techcon-ml.ru/health
# {"ok": true, "data": {"model_loaded": true}}
# STT
curl https://stt.techcon-ml.ru/health
# {"ok": true, "data": {"status": "ok", "request_acceptance": true, ...}}
# Techplans
curl https://techplans.techcon-ml.ru/health
# {"ok": true, "data": {"status": "ok", ...}}
Проверка через Gatus dashboard
Статус всех сервисов в реальном времени доступен на ops.techcon-ml.ru/gatus/ (требует GitHub OAuth, доступно для авторизованных пользователей org TechCon-ML-Team).
Gatus проверяет каждый сервис каждые 1–2 минуты и отображает историю доступности.
4. Базовые ошибки
HTTP коды
| Код | Причина | Действие |
|---|---|---|
200 |
ОК | — |
302 |
Redirect (HTTPS или OAuth) | Следовать редиректу; для OAuth — нужна авторизация |
503 |
Сервис недоступен | Проверить Gatus dashboard |
504 |
Gateway timeout | Повторить через 30 сек; если сохраняется — Gatus |
Алгоритм диагностики
- Проверить Gatus dashboard — если сервис помечен как
FAILURE, это инфраструктурная проблема, не ваша интеграция - Проверить
/healthнапрямую — еслиok: false, сервис работает но не готов (например, модель не загружена) - Создать Issue в
techcon_infra_monitoringесли Gatus зелёный, но ваши запросы падают — возможна проблема с конфигурацией конкретного клиента
Retry policy
Для временных сбоев рекомендуется exponential backoff: - Начальная задержка: 1 сек - Максимум попыток: 3 - Максимальная задержка: 10 сек
Не используйте retry для кодов 4xx (клиентские ошибки) — они не исчезнут сами по себе.