Интеграция GigaChat API в мобильное приложение

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Интеграция GigaChat API в мобильное приложение
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    761
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    649
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1071
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    884
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    460

Интеграция GigaChat API в мобильное приложение

GigaChat от Сбера — альтернатива OpenAI для российского рынка с несколькими специфичными особенностями: OAuth 2.0-авторизация через https://ngw.devices.sberbank.ru:9443/api/v2/oauth, собственный формат multipart-запросов для работы с изображениями, и возможность работы внутри закрытого контура без передачи данных за рубеж. Последнее критично для финтех- и медицинских приложений.

Авторизация: куда не наступить

OAuth-токен GigaChat живёт 30 минут. Первая грабля — хранить токен прямо в мобильном приложении и получать его там же. Client Secret для GigaChat нельзя встраивать в APK или IPA — по тем же причинам, что и любые сервисные ключи. Обязательная схема: бэкенд хранит credentials и обновляет токен, мобильный клиент работает через проксирующий API.

Сертификат Сбера для ngw.devices.sberbank.ru не включён в стандартные trust stores Android и iOS. При первой интеграции это даёт SSLHandshakeException / URLError.serverCertificateUntrusted без понятного сообщения. Решение — либо Certificate Pinning с добавлением сбербанковского CA, либо проксирование через собственный домен с валидным TLS.

// Android: OkHttp с кастомным TrustManager для Сбер-сертификата
val sberCertStream = context.assets.open("sber_ca.crt")
val cf = CertificateFactory.getInstance("X.509")
val sberCert = cf.generateCertificate(sberCertStream)

val keyStore = KeyStore.getInstance(KeyStore.getDefaultType()).apply {
    load(null, null)
    setCertificateEntry("sber", sberCert)
}
val tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()).apply {
    init(keyStore)
}
val sslContext = SSLContext.getInstance("TLS").apply {
    init(null, tmf.trustManagers, null)
}
val client = OkHttpClient.Builder()
    .sslSocketFactory(sslContext.socketFactory, tmf.trustManagers[0] as X509TrustManager)
    .build()

Работа с API: формат запросов

GigaChat поддерживает OpenAI-совместимый формат (/chat/completions), что упрощает перенос логики с GPT-4. Разница — в параметре model: используются GigaChat, GigaChat-Plus, GigaChat-Pro.

// iOS: запрос к GigaChat через проксирующий бэкенд
struct GigaChatMessage: Codable {
    let role: String
    let content: String
}

struct GigaChatRequest: Encodable {
    let model: String
    let messages: [GigaChatMessage]
    let stream: Bool
    let temperature: Double
}

let request = GigaChatRequest(
    model: "GigaChat",
    messages: [
        GigaChatMessage(role: "system", content: systemPrompt),
        GigaChatMessage(role: "user", content: userInput)
    ],
    stream: true,
    temperature: 0.7
)

Потоковый режим возвращает Server-Sent Events — обработка аналогична YandexGPT: парсинг data: строк через URLSessionDataDelegate на iOS или EventSource на Android.

Особенности для мобильного UX

GigaChat умеет работать с изображениями (GigaChat-Pro). Загрузка через multipart POST на /files возвращает file_id, который передаётся в сообщении как attachment. Для мобильного приложения это означает: сначала загрузить фото, получить id, затем отправить в чат — два отдельных запроса.

Лимиты токенов: GigaChat — 8k, GigaChat-Pro — 32k. На мобильном клиенте обрезайте историю диалога до разумного количества сообщений (10–15 последних), иначе входной контекст быстро переполнится.

Процесс работы

Проектирование прокси-сервиса с управлением OAuth-токеном и его автоматическим обновлением. Решение SSL-вопроса (CA Сбера или свой домен). Выбор модели под сценарий. Интеграция потокового чата в мобильное приложение с типичным bubble-UI. Тестирование на качество русскоязычных ответов — GigaChat особенно хорош для деловой переписки и финансовых текстов.

Ориентиры по срокам

Настройка авторизации и базовых запросов — 2–3 дня. Полный чат с историей, потоковой генерацией и обработкой изображений — 6–10 дней.