Интеграция 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 documentation.

Кеш и ограничения

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 дня

Стоимость рассчитывается индивидуально в зависимости от сложности и объёма работ. Получите консультацию: мы оценим ваш проект в течение одного рабочего дня. Свяжитесь с нами для обсуждения деталей.