Інтеграція YandexGPT у мобільний додаток

Інтеграція YandexGPT у мобільний додаток При спробі безпосередньо використовувати IAM-токен у мобільному додатку користувачі стикаються з помилкою `401 Unauthorized` через 12 годин — термін життя токена закінчується. API-ключ же залишається в APK після збірки та витягується зворотною розробкою за

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Інтеграція YandexGPT у мобільний додаток
Середній
~3-5 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Інтеграція YandexGPT у мобільний додаток

При спробі безпосередньо використовувати IAM-токен у мобільному додатку користувачі стикаються з помилкою 401 Unauthorized через 12 годин — термін життя токена закінчується. API-ключ же залишається в APK після збірки та витягується зворотною розробкою за кілька хвилин. Рішення — проксі-сервіс на власному бекенді. Розглянемо архітектуру та ключові моменти інтеграції YandexGPT на iOS і Android.

YandexGPT дає перевагу там, де важлива російськомовна семантика: підтримка користувачів, автозаповнення форм, генерація контенту з урахуванням локальної лексики. OpenAI-моделі сильні для англійської мови, але YandexGPT точніше обробляє регіональні запити та специфічні терміни. Завдання інтеграції на перший погляд просте: POST на https://llm.api.cloud.yandex.net/foundationModels/v1/completion, передати IAM-токен і текст. На практиці — ланцюжок нетривіальних рішень, які ми відпрацювали на десятках проєктів.

Як налаштувати IAM-токен для мобільного додатку?

Перша точка відмови — авторизація. IAM-токен живе 12 годин, API-ключ — постійний, але менш безпечний. У мобільному додатку зберігати сервісний ключ напряму не можна: його витягнуть із APK за 10 хвилин через apktool. Правильна схема: мобільний клієнт авторизується у вашому бекенді, бекенд тримає IAM-токен і проксіює запити до Yandex Cloud.

// iOS: запит через власний проксі struct YGPTRequest: Encodable { let prompt: String let maxTokens: Int let temperature: Double } func sendToYandexGPT(prompt: String) async throws -> String { let url = URL(string: "https://api.yourapp.com/ai/complete")! var request = URLRequest(url: url) request.httpMethod = "POST" request.setValue("Bearer \(authToken)", forHTTPHeaderField: "Authorization") request.httpBody = try JSONEncoder().encode(YGPTRequest( prompt: prompt, maxTokens: 500, temperature: 0.7 )) let (data, _) = try await URLSession.shared.data(for: request) return try JSONDecoder().decode(CompletionResponse.self, from: data).text } 

На Android — аналогічно через Retrofit з OkHttp-інтерсептором для підстановки токена.

Чому варто використовувати потокову генерацію?

Режим stream: true в Yandex Foundation Models API повертає відповідь чанками — як у ChatGPT. Для мобільного UX це важливо: користувач бачить текст у міру генерації, не чекає 3–5 секунд. Ми гарантуємо, що потокова передача не збільшує навантаження на пристрій при правильній реалізації.

На iOS обробка Server-Sent Events через URLSessionDataDelegate:

class StreamingDelegate: NSObject, URLSessionDataDelegate { var onChunk: (String) -> Void var buffer = Data() func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { buffer.append(data) guard let text = String(data: buffer, encoding: .utf8) else { return } let lines = text.components(separatedBy: "\n") for line in lines where line.hasPrefix("data: ") { let json = String(line.dropFirst(6)) if let chunk = parseYGPTChunk(json) { DispatchQueue.main.async { self.onChunk(chunk) } } } } } 

На Android — OkHttp з EventSource (бібліотека okhttp-sse) або ручний парсинг BufferedReader по рядках.

Моделі та параметри

Yandex надає кілька варіантів: yandexgpt-lite — швидкий і дешевий, yandexgpt — повна версія, yandexgpt-32k — для довгих контекстів. Для більшості мобільних сценаріїв (чат-підказки, автозаповнення) yandexgpt-lite достатній і помітно швидше.

Модель Контекст Швидкість відповіді Застосування
yandexgpt-lite 8k токенів ~1–2 сек Підказки, саммарі
yandexgpt 8k токенів ~3–5 сек Складні завдання
yandexgpt-32k 32k токенів ~8–15 сек Довгі документи

Параметр temperature від 0 до 1: 0.2–0.4 — детерміновані відповіді (FAQ-бот), 0.7–0.9 — творчі тексти. Рекомендуємо системний промпт українською (або російською залежно від аудиторії) — це підвищує релевантність відповідей.

Докладніше про моделі — в документації Yandex Cloud API.

Кеш та обмеження

Yandex Cloud тарифікує по токенам. На мобільному клієнті необхідно кешувати повторювані запити — типовий патерн для FAQ або онбордингу. Простий LRU-кеш на 100 записів у пам'яті скорочує витрати при повторюваних сесіях. Ми використовуємо такий кеш у всіх проєктах — економія до 40% на API-запитах.

Rate limit Yandex Foundation Models — 10 RPS на фолдер за замовчуванням. При піковому навантаженні (багато користувачів одночасно) потрібна черга на бекенді, а не прямі виклики з кожного пристрою. Оцінимо ваш проєкт і допоможемо обрати архітектуру.

Що входить у роботу

  • Аудит сценаріїв: профілювання користувацьких запитів, оцінка необхідної глибини контексту.
  • Проєктування архітектури: проксі-сервіс, управління IAM-токенами, кешування.
  • Інтеграція у мобільний додаток (iOS/Android) з підтримкою потокової генерації.
  • Тестування якості відповідей на реальних даних, підбір системного промпту.
  • Документація по API та приклади коду.
  • Навчання команди замовника роботі з Yandex Cloud.

Процес роботи

  1. Аудит сценаріїв: де саме потрібен LLM — підтримка, генерація тексту, класифікація запитів.
  2. Вибір моделі та режиму (synchronous / stream).
  3. Розробка проксі-сервісу на бекенді з управлінням IAM-токеном.
  4. Інтеграція у мобільний додаток з UI для потокової генерації.
  5. Тестування якості відповідей на реальних користувацьких запитах, підбір системного промпту.
  6. Передача документації та фінальне демо.
Приклад архітектури для Android
// Retrofit інтерфейс interface YandexGPTProxy { @POST("ai/complete") suspend fun complete(@Body request: CompletionRequest): CompletionResponse } // ViewModel з кешуванням class ChatViewModel(private val api: YandexGPTProxy) : ViewModel() { private val cache = LruCache<String, String>(100) fun sendPrompt(prompt: String) = viewModelScope.launch { cache.get(prompt)?.let { /* use cached */ } val result = api.complete(CompletionRequest(prompt)) cache.put(prompt, result.text) } } 

Орієнтири по термінах

Етап Терміни (дні)
Базова інтеграція через проксі (без стрімінгу) 2–3 дні
Повноцінний чат-інтерфейс з потоковою генерацією 5–8 днів
Оптимізація кешування та обробка помилок +1–2 дні

Вартість розраховується індивідуально в залежності від складності та обсягу робіт. Отримайте консультацію: ми оцінимо ваш проєкт протягом одного робочого дня. Зв'яжіться з нами для обговорення деталей.