Разработка AI-ассистента в мобильном приложении на базе GigaChat (Сбер)

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

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Разработка AI-ассистента в мобильном приложении на базе GigaChat (Сбер)
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    874
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Разработка AI-ассистента в мобильном приложении на базе GigaChat (Сбер)

GigaChat — языковая модель Сбера, API которой специально ориентирован на B2B-применение с размещением данных в российском контуре. Для финансовых, медицинских и государственных приложений, где хранение данных за рубежом юридически невозможно, GigaChat становится основным вариантом наряду с YandexGPT.

Авторизация: OAuth 2.0 с клиентскими учётными данными

GigaChat API требует OAuth 2.0. Схема: получаем access_token через POST https://ngw.devices.sberbank.ru:9443/api/v2/oauth с Authorization: Basic {base64(client_id:client_secret)} и scope (GIGACHAT_API_PERS для физлиц, GIGACHAT_API_CORP для юрлиц).

Токен живёт 30 минут. На мобильном клиенте его нельзя хранить и тем более получать напрямую — client_id и client_secret должны быть только на сервере. Серверный прокси для GigaChat — обязательный компонент, не опция.

# Серверная сторона (Python) — получение токена
import httpx, base64, time

class GigaChatAuth:
    def __init__(self, client_id: str, client_secret: str):
        self._credentials = base64.b64encode(
            f"{client_id}:{client_secret}".encode()
        ).decode()
        self._token = None
        self._expires_at = 0

    async def get_token(self) -> str:
        if time.time() < self._expires_at - 60:
            return self._token
        async with httpx.AsyncClient(verify=False) as client:  # Сбер использует собственные CA
            resp = await client.post(
                "https://ngw.devices.sberbank.ru:9443/api/v2/oauth",
                headers={"Authorization": f"Basic {self._credentials}"},
                data={"scope": "GIGACHAT_API_CORP"}
            )
        data = resp.json()
        self._token = data["access_token"]
        self._expires_at = data["expires_at"] / 1000  # ms -> s
        return self._token

Обратите внимание: verify=False в Python httpx — Сбер использует корневые сертификаты из реестра Минцифры, которые не входят в системные доверенные хранилища большинства ОС. Для продакшена нужно добавить российские корневые CA явно.

GigaChat API: chat completions

После получения токена — стандартный POST /api/v1/chat/completions:

{
  "model": "GigaChat",
  "messages": [
    {"role": "system", "content": "Ты помощник финансового аналитика."},
    {"role": "user", "content": "Объясни показатель P/E ratio"}
  ],
  "stream": true,
  "temperature": 0.7,
  "max_tokens": 1024
}

Доступные модели: GigaChat (базовая), GigaChat-Plus, GigaChat-Pro. Разница — в качестве ответов и скорости, схожая с тем, как Lite/Pro у Яндекса.

Стриминг — через SSE, формат совместим с OpenAI: data: {...} с delta.content. Это удобно: если у вас уже есть OpenAI-совместимый SSE-парсер, он работает с GigaChat без изменений.

Функции (Function Calling)

GigaChat поддерживает function calling через параметр functions в запросе. Синтаксис отличается от OpenAI: поле называется functions (не tools), а вызов приходит в function_call (не tool_calls). При миграции с OpenAI это первое место, где сломается код.

{
  "functions": [{
    "name": "get_account_balance",
    "description": "Получить баланс счёта клиента",
    "parameters": {
      "type": "object",
      "properties": {
        "account_id": {"type": "string"}
      },
      "required": ["account_id"]
    }
  }],
  "function_call": "auto"
}

Работа с изображениями

GigaChat Pro поддерживает передачу изображений через file_id. Файл сначала загружается через POST /api/v1/files с purpose: general, получаем id, затем используем в сообщении:

{
  "role": "user",
  "content": [
    {"type": "text", "text": "Что на этом документе?"},
    {"type": "image_url", "image_url": {"url": "https://gigachat.ru/files/{file_id}/content"}}
  ]
}

Файл удаляется автоматически через 24 часа.

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

Серверный прокси с OAuth + базовый текстовый ассистент — 1,5–2 недели (с учётом настройки корневых сертификатов и тестирования OAuth). С function calling и изображениями — 3–4 недели.