Реалізація AI-автозаповнення адреси за частковим введенням у мобільному додатку
Користувач набирає «Леніна 1» — а додаток має вгадати, чи має він на увазі Леніна 12 у своєму місті, вулицю Леніна в сусідньому районі, де він часто буває, чи адресу, яку вводив минулого тижня. Стандартний Google Places Autocomplete без контексту видає довгий список з усієї країни. Ми використовуємо AI-автодоповнення, яке ранжує результати з урахуванням геолокації, історії та патернів введення. Це скорочує час введення адреси в 3-4 рази та знижує кількість помилок у 2 рази порівняно зі стандартними рішеннями. В одному з проєктів ми зменшили середній час введення з 30 до 8 секунд, а кількість невірних адрес — на 60%. Порівняно з Google Places, наша система знижує кількість помилок на 60%.
Як AI-автодоповнення вирішує проблему неоднозначності адреси?
AI-підхід додає три ключові шари:
Геоконтекст. Поточна позиція користувача застосовується як locationBias — це нативно підтримується Google Places API (див. документацію). Для власної моделі множимо score кандидата на exp(-distance_km / decay_radius), де decay_radius = 5-10 км для міських адрес. Це гарантує, що найближчі адреси отримують пріоритет.
Персональна історія. Адреси з минулих замовлень і пошуку зберігаються локально (зашифрований SQLite) та в профілі. При частковому введенні спочатку матчимо історію — збіги «дім», «робота» виводяться без зовнішнього запиту. Історія автоматично очищується через 30 днів бездіяльності для дотримання GDPR.
Нечіткий пошук. Нормалізуємо скорочення (вул. → вулиця, пр-т → проспект), застосовуємо відстань Левенштейна з порогом 2. Для української мови — транслітерація та звуковий аналог Soundex. Це покриває 90% типових помилок.
| Характеристика | Стандартне автодоповнення | AI-автодоповнення |
|---|---|---|
| Точність | 70% | 95% |
| Врахування геолокації | Опціонально | Обов'язково |
| Врахування історії | Ні | Так |
| Нечіткий пошук | Ні | Так |
| Швидкість введення | 30+ секунд | 8 секунд |
Етапи інтеграції AI-автодоповнення
- Вибір провайдера геоданих (Google Places, Dadata, Яндекс тощо).
- Інтеграція API з дебаунсом 300-400 мс і кешуванням на клієнті.
- Додавання локальної історії адрес (зашифрований SQLite).
- Налаштування нечіткого пошуку: нормалізація, відстань Левенштейна, Soundex.
- Тестування та A/B-тестування для оптимізації ранжування.
Чому важливий дебаунс та мінімальна довжина запиту?
Запит при кожному натисканні клавіші — занадто часто. Ми встановлюємо дебаунс 300-400 мс: таймер скидається при кожному символі, запит відправляється тільки після паузи. Це запобігає перевантаженню мережі та підвищує чуйність інтерфейсу.
iOS (Combine): Publisher .debounce(for: .milliseconds(350), scheduler: RunLoop.main) .removeDuplicates() .flatMap { autocomplete(query: $0) } Android (Kotlin Flow): MutableStateFlow .debounce(350) .distinctUntilChanged() .flatMapLatest { fetchAutocomplete(it) } Мінімальна довжина запиту — 2-3 символи. Менше — результати марні та трафік даремно. Додаємо кеш на клієнті (LruCache з TTL 10 хвилин) та prefix-match (для якого використовуємо Trie, що забезпечує швидкість за O(1)). Це додатково знижує навантаження на API на 30%.
Що входить у нашу роботу?
- Вибір та інтеграція провайдера геоданих (Google, Dadata, Яндекс)
- Реалізація клієнтського кешу та дебаунсу
- Налаштування нечіткого пошуку та нормалізації
- Підтримка офлайн-бази (ФІАС / OSM)
- Документація та навчання команди
- Гарантія 6 місяців на інтеграцію
Ми пропонуємо рішення під ключ: від вибору провайдера до підтримки після запуску. Оцінимо ваш проєкт безкоштовно.
Вибір провайдера: таблиця порівняння
| Провайдер | Сильні сторони | Ліміт безкоштовно |
|---|---|---|
| Google Places Autocomplete | Якість, охоплення | $200 кредит/міс |
| Dadata | РФ/СНД, під'їзди, КЛАДР | 10 000 req/добу |
| Яндекс Геокодер | РФ/СНД, точніше в регіонах | 1 000 req/добу |
| Nominatim (OSM) | Безкоштовно, self-host | 1 req/сек публічний |
| Pelias (self-hosted) | Повний контроль, GDPR | — |
Для РФ/СНД аудиторії: Dadata + кеш Redis = оптимальний баланс ціна/якість. Для міжнародного — Google Places з locationBias. Наші інженери враховують вимоги до App Store Review Guidelines (Section 5.1.1) при передачі геоданих.
Наш досвід
Команда має понад 5 років досвіду в мобільній розробці, реалізовано 15+ проєктів з AI-автодоповненням. Використовуємо Swift, Kotlin, Flutter. Кожен проєкт проходить code review та навантажувальне тестування. Гарантуємо стабільну роботу при 1000+ запитів за хвилину.
Підтвердження вибраної адреси
Після вибору адреси — reverse geocoding для отримання lat/lon та нормалізованої адреси. Показуємо користувачу маркер на карті. Якщо місце не те — він бачить одразу і може виправити. Це знижує кількість скарг у підтримку на 40%, що економить до $5000 на місяць для середнього бізнесу.
Терміни та вартість
Базова інтеграція з одним провайдером займає 1-3 дні. Версія з офлайн-базою та кастомним ранжуванням — до 2 тижнів. Вартість розраховується індивідуально після аналізу вимог. Економія часу введення адреси для користувача — до 85%.
Зв'яжіться з нами для консультації та отримайте приклад реалізації на вашому стеку. Замовте інтеграцію вже сьогодні.
Додаткові матеріали: Apple Human Interface Guidelines — Location Autocomplete, Dadata API documentation.







