Реалізація бота з розпізнаванням зображень у мобільних додатках
Користувач фотографує — бот відповідає. Звучить просто, але між «прикріпити фото» та «отримати корисну відповідь» лежать вибір моделі, управління розміром запиту та обробка випадків, коли зображення не містить того, що очікується.
Vision API: що використовувати
GPT-4o Vision (OpenAI). Передаєте зображення base64 або URL у запиті, отримуєте текстову відповідь. Розуміє складні сцени, документи, рукопис, схеми. Вартість — залежить від розміру зображення (tile-based pricing). Для детального аналізу високої розрізнювальної здатності — дорожче.
Claude 3.5 Sonnet / Haiku. Аналогічна можливість через Anthropic Messages API. Claude добре працює з документами та таблицями, показує порівнянні результати з GPT-4o для більшості завдань.
Google Cloud Vision API. Спеціалізовані функції: OCR (TEXT_DETECTION), розпізнавання об'єктів (OBJECT_LOCALIZATION), обличчя (FACE_DETECTION), логотипів (LOGO_DETECTION), безпека контенту (SAFE_SEARCH_DETECTION). Дешевше LLM для однотипних завдань, але без вільної текстової відповіді.
ML Kit (Google) on-device. Повністю на пристрої: розпізнавання тексту, штрих-кодів, обличчя, об'єктів. Немає затримки мережі, немає вартості за запит. Точність нижча, ніж у хмарних LLM для складних сцен, але для структурованих завдань (QR-код, штрих-код, текст документа) — достатньо.
CoreML + Vision (iOS). MobileNetV3, EfficientNet — класифікація зображень на пристрої. VNRecognizeTextRequest для OCR. VNDetectBarcodeRequest для QR/штрих-кодів.
Вибір залежить від завдання:
| Завдання | Рекомендоване рішення |
|---|---|
| Вільне питання по фото | GPT-4o Vision / Claude |
| OCR документів | Google Vision API / ML Kit |
| Штрих- та QR-коди | ML Kit / CoreML (on-device) |
| Класифікація товарів | Користувацька CoreML / TFLite модель |
| Модерація контенту | Google Vision SAFE_SEARCH |
Відправлення зображення з мобільного додатка
Зображення не відправляються безпосередньо до Vision API з мобільного клієнта — API ключ не можна зберігати в додатку.
Потік даних:
Мобільний клієнт → Resize/Compress → Upload to S3/GCS → URL → Ваш сервер → Vision API
Зображення стискається на пристрої до потрібного розміру перед завантаженням. GPT-4o з detail: "auto" сам визначає потрібну розрізнювальну здатність, але передавати 12-мегапіксельне фото без стиску — марно та дорого.
// Android: стиск зображення перед завантаженням
fun compressForBot(uri: Uri, maxSizePx: Int = 1024): ByteArray {
val bitmap = MediaStore.Images.Media.getBitmap(contentResolver, uri)
val scale = maxSizePx.toFloat() / maxOf(bitmap.width, bitmap.height)
val scaled = if (scale < 1f) {
Bitmap.createScaledBitmap(
bitmap,
(bitmap.width * scale).toInt(),
(bitmap.height * scale).toInt(),
true
)
} else bitmap
val output = ByteArrayOutputStream()
scaled.compress(Bitmap.CompressFormat.JPEG, 85, output)
return output.toByteArray()
}
Сценарії застосування
Боти для роздрібної торгівлі. Користувач фотографує товар — бот знаходить його в каталозі, показує ціну та наявність. Пошук за візуальним embedding (CLIP + Qdrant) точніший, ніж за текстом з OCR.
Медичні боти. Фото симптому, рецепту, результату аналізу — бот пояснює (не ставить діагноз). Системний промпт повинен явно обмежувати область відповідей та включати disclaimer.
Боти для документів. Фото накладної, квитанції, паспорта — витяг структурованих даних. GPT-4o Vision + структурований вихід через JSON Schema дає високу точність на типових документах.
Боти для інспекцій. Будівельник фотографує дефект — бот класифікує тип дефекту та створює завдання в системі управління.
Обробка «поганих» фото
Обов'язкові тестові випадки:
- Розмите зображення
- Погане освітлення
- Фото не по темі (користувач відправив кота замість чека)
- Зображення із заборонленим контентом
Для останнього — модерація перед відправленням до основної моделі. OpenAI Moderation API або Google Safe Search як перший фільтр.
Процес впровадження
Визначення сценаріїв використання зображень: що саме потребує розпізнавання.
Вибір Vision API під завдання та бюджет.
Серверна частина: завантаження зображень, виклик Vision API, формування відповіді.
Мобільний UI: вибір з галереї, камера, предпрегляд перед відправленням.
Тестування в реальних польових умовах — погане освітлення, кути, часткова видимість.
Часові орієнтири
Бот з базовим Vision API (Google Vision або GPT-4o) — 3–5 днів. З користувацькою моделлю класифікації, on-device inference та складними сценаріями — 3–6 тижнів.







