Перейти к содержимому
arckep.ru — все нейросети в одном месте без VPN Перейти
>AISTUDY_
AUTHORСвежий выпуск №030 → Контекст, сессия, compact

Модуль 2.8 · Урок 1

Урок 1: GigaChat API — Начало работы

Проверено 20 августа 2026
ПрактикаУстановка
2.8 / Урок 1 из 4

Чему вы научитесь

  • Регистрироваться на платформе Sber для разработчиков
  • Получать авторизационные данные (Client ID и Client Secret)
  • Проходить OAuth2 авторизацию и получать access token
  • Работать с российским CA-сертификатом для HTTPS
  • Отправлять первые запросы к GigaChat API на Python
  • Различать модели GigaChat 2 Lite / Pro / Max в API и GigaChat-3-Ultra во Freemium
  • Ориентироваться в ценах PAYG и лимите Freemium 365 млн токенов в год

Содержание

Шаг 1: Регистрация на developers.sber.ru

GigaChat — LLM от Сбера, рассчитанная на русский язык. Инфраструктура в РФ. По 152-ФЗ (ч. 5 ст. 18) нельзя собирать персональные данные граждан РФ сразу в зарубежную базу. Это не запрет «любая обработка только в РФ»: после сбора в России уже правила трансграничной передачи. Чужие ПД россиян в иностранный чат лучше не класть.

Чтобы начать работу:

  1. Перейдите на developers.sber.ru
  2. Создайте аккаунт (используйте рабочий email)
  3. Подтвердите email
  4. Перейдите в раздел «API» → «GigaChat»
  5. Нажмите «Создать новое приложение»

Шаг 2: Получение авторизационных данных

После создания приложения вы получите:

ПараметрОписание
Client IDУникальный идентификатор вашего приложения
Client SecretСекретный ключ (храните в переменных окружения!)
ScopeGIGACHAT_API_PERS (физлица), GIGACHAT_API_B2B (юрлица пакет), GIGACHAT_API_CORP (юрлица pay-as-you-go)
RQ-UUIDУникальный идентификатор запроса (генерируется на клиенте)

[!] Никогда не коммитьте Client Secret в репозиторий! Используйте .env файлы или переменные окружения.

Шаг 3: OAuth2 Авторизация и получение access token

GigaChat использует OAuth2. Вот как получить access token:

sequenceDiagram
  participant C as Client
  participant A as Auth Server
  participant G as GigaChat API

  C->>A: POST /oauth
  A-->>C: access_token
  C->>G: POST /chat
  G-->>C: ответ
import requests
import uuid
import base64
import os
from dotenv import load_dotenv

load_dotenv()

# Ваши учётные данные
CLIENT_ID = os.getenv("GIGACHAT_CLIENT_ID")
CLIENT_SECRET = os.getenv("GIGACHAT_CLIENT_SECRET")

# Параметры авторизации
AUTH_URL = "https://ngw.devices.sberbank.ru:9443/api/v2/oauth"
RQ_UUID = str(uuid.uuid4())

# Создаём базовую авторизацию (Client ID:Client Secret в Base64)
credentials = f"{CLIENT_ID}:{CLIENT_SECRET}"
encoded_credentials = base64.b64encode(credentials.encode()).decode()

# Заголовки для авторизации
headers = {
    "Authorization": f"Basic {encoded_credentials}",
    "RQ-UUID": RQ_UUID,
    "Content-Type": "application/x-www-form-urlencoded"
}

# Тело запроса
data = {
    "grant_type": "client_credentials",
    "scope": "GIGACHAT_API_PERS"  # GIGACHAT_API_B2B или GIGACHAT_API_CORP для организаций
}

# Отправляем запрос авторизации
response = requests.post(AUTH_URL, headers=headers, data=data)

if response.status_code == 200:
    token_data = response.json()
    access_token = token_data["access_token"]
    expires_in = token_data["expires_in"]
    print(f"[+] Token получен! Действителен {expires_in} секунд")
    print(f"Token: {access_token[:20]}...")
else:
    print(f"[-] Ошибка авторизации: {response.status_code}")
    print(response.text)

Шаг 4: Работа с российским CA-сертификатом

GigaChat использует российский CA (удостоверяющий центр). В некоторых окружениях может потребоваться явно указать путь к сертификату:

import requests

# Если возникает ошибка SSL, используйте:
response = requests.get(
    url,
    headers=headers,
    verify="/path/to/russian-ca.pem"  # Путь к сертификату
)

# Или отключите проверку ([!] только для разработки!):
response = requests.get(url, headers=headers, verify=False)

В production всегда используйте проверку сертификата.

Шаг 5: Первый запрос к GigaChat API

Теперь отправим простой запрос:

import requests
import json
import uuid

ACCESS_TOKEN = "your_access_token_here"  # Получили на шаге 3
RQ_UUID = str(uuid.uuid4())

API_URL = "https://gigachat.devices.sberbank.ru/api/v1/chat/completions"

headers = {
    "Authorization": f"Bearer {ACCESS_TOKEN}",
    "Content-Type": "application/json",
    "RQ-UUID": RQ_UUID
}

payload = {
    "model": "GigaChat-2",  # или GigaChat-2-Pro, GigaChat-2-Max
    "messages": [
        {
            "role": "user",
            "content": "Привет! Расскажи, что ты умеешь делать?"
        }
    ],
    "temperature": 0.7,
    "max_tokens": 256
}

response = requests.post(API_URL, headers=headers, json=payload)

if response.status_code == 200:
    result = response.json()
    message = result["choices"][0]["message"]["content"]
    print(f"[AI] GigaChat: {message}")
else:
    print(f"[-] Ошибка: {response.status_code}")
    print(response.text)

Шаг 6: Сравнение моделей GigaChat

В API по-прежнему линейка GigaChat 2: GigaChat-2 (Lite), GigaChat-2-Pro, GigaChat-2-Max. С 15 июля 2026 во Freemium есть GigaChat 3 Ultra (ID GigaChat-3-Ultra). Старые имена GigaChat / GigaChat-Plus / GigaChat-Pro не используйте.

ХарактеристикаGigaChat-2 (Lite)GigaChat-2-ProGigaChat-2-Max
СкоростьБыстраяСредняяМедленная
Качество[+] Хорошее[+][+] Лучше[+][+][+] Лучшее
Размер контекста128K токенов128K токенов128K токенов
Стоимость за 1K токенов (PAYG)0,065 ₽0,5 ₽0,65 ₽
Мультимодальность[-][+] Vision[+] Vision
Рекомендуется дляЧаты, простые задачиАналитика, обработкаRAG, сложные задачи

GigaChat 2 Max показал сильные результаты в бенчмарке MERA в 2025 году. Во Freemium 2026 доступен флагман GigaChat-3-Ultra. На платных тарифах на дату проверки отдельной цены Ultra нет — смотрите тарифы юрлиц.

Шаг 7: Лимиты и цены

Бесплатный тир (Freemium):

  • Freemium для физлиц: 365 млн токенов на 12 месяцев (250 / 40 / 25 / 50 млн Lite / Pro / Max / Ultra), не 900 тысяч (тарифы физлиц)
  • Лимит на параллельные запросы — 1 поток для бесплатного тарифа
  • Достаточно для прототипирования и обучения

PAYG для юрлиц (с 1 февраля 2026) — за 1000 токенов:

  • Lite: 0,065 ₽
  • Pro: 0,5 ₽
  • Max: 0,65 ₽

Источник: тарифы юрлиц.

Пакет для юрлиц:

  • Для юрлиц доступны pay-as-you-go (от 0,065 ₽/1K) и крупные пакеты токенов (от нескольких миллионов рублей). Минимальный платёж — 600 ₽/мес.
  • Enterprise: контактируйте sales@sber.ru

Отслеживайте использование в личном кабинете: Приложения → Статистика.


Попробуйте сами

Создайте файл .env:

GIGACHAT_CLIENT_ID=your_client_id
GIGACHAT_CLIENT_SECRET=your_client_secret

Установите зависимости:

pip install requests python-dotenv

Запустите полный скрипт:

import requests
import uuid
import base64
import os
import json
from dotenv import load_dotenv

load_dotenv()

class GigaChatClient:
    def __init__(self, client_id, client_secret):
        self.client_id = client_id
        self.client_secret = client_secret
        self.access_token = None
        self.auth_url = "https://ngw.devices.sberbank.ru:9443/api/v2/oauth"
        self.api_url = "https://gigachat.devices.sberbank.ru/api/v1/chat/completions"

    def get_token(self):
        """Получить access token"""
        credentials = f"{self.client_id}:{self.client_secret}"
        encoded = base64.b64encode(credentials.encode()).decode()

        headers = {
            "Authorization": f"Basic {encoded}",
            "RQ-UUID": str(uuid.uuid4()),
            "Content-Type": "application/x-www-form-urlencoded"
        }

        data = {
            "grant_type": "client_credentials",
            "scope": "GIGACHAT_API_PERS"
        }

        response = requests.post(self.auth_url, headers=headers, data=data)
        if response.status_code == 200:
            self.access_token = response.json()["access_token"]
            return True
        else:
            print(f"Ошибка авторизации: {response.text}")
            return False

    def chat(self, message, model="GigaChat-2"):
        """Отправить сообщение"""
        if not self.access_token:
            if not self.get_token():
                return None

        headers = {
            "Authorization": f"Bearer {self.access_token}",
            "Content-Type": "application/json",
            "RQ-UUID": str(uuid.uuid4())
        }

        payload = {
            "model": model,
            "messages": [{"role": "user", "content": message}],
            "temperature": 0.7,
            "max_tokens": 256
        }

        response = requests.post(self.api_url, headers=headers, json=payload)

        if response.status_code == 200:
            return response.json()["choices"][0]["message"]["content"]
        else:
            print(f"Ошибка запроса: {response.status_code} - {response.text}")
            return None

# Использование
client = GigaChatClient(
    os.getenv("GIGACHAT_CLIENT_ID"),
    os.getenv("GIGACHAT_CLIENT_SECRET")
)

result = client.chat("На русском: напиши шутку про программистов")
print(f"Ответ: {result}")

Задачи для упражнения:

  1. Создайте клиент и отправьте сообщение на русском языке
  2. Сравните ответы для одного вопроса между моделями (GigaChat-2 vs GigaChat-2-Pro)
  3. Отслеживайте время ответа и используемые токены
  4. Попробуйте увеличить max_tokens до 1024 и задайте более сложный вопрос

Ключевые выводы

[+] Запомните:

  1. OAuth2 — стандарт авторизации; Client Secret нужно хранить в переменных окружения
  2. access_token действует ограниченное время (обычно 30 минут), требует обновления
  3. RQ-UUID — уникальный идентификатор каждого запроса, помогает отслеживать запросы в логах
  4. В API — GigaChat-2 / Pro / Max; во Freemium ещё GigaChat-3-Ultra. Scope PERS / B2B / CORP по-прежнему верны
  5. Цены в рублях — PAYG 0,065 / 0,5 / 0,65 ₽ за 1K (Lite / Pro / Max)
  6. Freemium — 365 млн токенов в год (включая Ultra), достаточно для прототипирования; PAYG юрлиц: 0,065 / 0,5 / 0,65 ₽ за 1k

Дополнительные материалы:


Следующий урок

В Уроке 2: YandexGPT API мы изучим альтернативу от Яндекса — её особенности, интеграцию с Yandex Cloud и Python SDK для удобной работы.

Узнаем, почему YandexGPT популярна в финтеке и когда её стоит выбирать вместо GigaChat.