Модуль 2.8 · Урок 1
Урок 1: GigaChat API — Начало работы
Содержание
- Чему вы научитесь
- Содержание
- Шаг 1: Регистрация на developers.sber.ru
- Шаг 2: Получение авторизационных данных
- Шаг 3: OAuth2 Авторизация и получение access token
- Шаг 4: Работа с российским CA-сертификатом
- Шаг 5: Первый запрос к GigaChat API
- Шаг 6: Сравнение моделей GigaChat
- Шаг 7: Лимиты и цены (изменения осени 2026)
- Попробуйте сами
- Ключевые выводы
- Следующий урок
Чему вы научитесь
- Регистрироваться на платформе 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) нельзя собирать персональные данные граждан РФ сразу в зарубежную базу. Это не запрет «любая обработка только в РФ»: после сбора в России уже правила трансграничной передачи. Чужие ПД россиян в иностранный чат лучше не класть.
Чтобы начать работу:
- Перейдите на developers.sber.ru
- Создайте аккаунт (используйте рабочий email)
- Подтвердите email
- Перейдите в раздел «API» → «GigaChat»
- Нажмите «Создать новое приложение»
Шаг 2: Получение авторизационных данных
После создания приложения вы получите:
| Параметр | Описание |
|---|---|
| Client ID | Уникальный идентификатор вашего приложения |
| Client Secret | Секретный ключ (храните в переменных окружения!) |
| Scope | GIGACHAT_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 для физлиц (через эндпоинт https://api.giga.chat/) доступна GigaChat 3 Ultra (ID GigaChat-3-Ultra). Кроме того, во второй половине 2026 года Сбер выпустил флагманы GigaChat 3.5 Ultra (открытые веса MoE 432B, активных 28B) и специализированную рассуждающую модель для кода и математики GigaChat 3.5 Reasoning (сентябрь 2026, 85 баллов на LiveCodeBench v6, Byte/RE). Старые имена GigaChat / GigaChat-Plus / GigaChat-Pro не используйте.
| Характеристика | GigaChat-2 (Lite) | GigaChat-2-Pro | GigaChat-2-Max | GigaChat 3.5 Reasoning (Cloud.ru) |
|---|---|---|---|---|
| Скорость | Быстрая | Средняя | Медленная | Рассуждающая (Chain-of-Thought) |
| Качество | [+] Хорошее | [+][+] Лучше | [+][+][+] Отличное | [+][+][+] Флагман для кода и логики |
| Размер контекста | 128K токенов | 128K токенов | 128K токенов | 128K токенов |
| Стоимость за 1K токенов (PAYG) | 0,065 ₽ (асинхр. 0,0325 ₽) | 0,5 ₽ (асинхр. 0,25 ₽) | 0,65 ₽ (асинхр. 0,325 ₽) | 0,096 ₽ вход / 0,289 ₽ выход (96 / 289 ₽ за 1 млн) |
| Мультимодальность | [-] | [+] Vision | [+] Vision | [-] Текст и код |
| Рекомендуется для | Чаты, простые задачи | Аналитика, обработка | RAG, сложные задачи | Алгоритмы, отладка, математика |
GigaChat 2 Max показал сильные результаты в бенчмарке MERA в 2025 году. Во Freemium 2026 доступен флагман GigaChat-3-Ultra. На платных тарифах условия приведены в разделе тарифы юрлиц и в облаке Cloud.ru Evolution Foundation Models.
Шаг 7: Лимиты и цены (изменения осени 2026)
Бесплатный тир (Freemium):
- Freemium для физлиц: 365 млн токенов на 12 месяцев (250 / 40 / 25 / 50 млн Lite / Pro / Max / Ultra), не 900 тысяч (тарифы физлиц)
- Лимит на параллельные запросы — 1 поток для бесплатного тарифа
- Достаточно для прототипирования и обучения
Важное изменение с 1 сентября 2026 для юрлиц и ИП:
- Покупка пакетов и подключение PAYG напрямую на
developers.sber.ruсохранены для действующих клиентов, а новые коммерческие клиенты подключают и оплачивают модели GigaChat на платформе Cloud.ru (сервис Evolution Foundation Models) (тарифы юрлиц, обзор тарифов). - В Cloud.ru API полностью совместим с OpenAI SDK и работает по постоянному API-ключу — без перевыпуска OAuth-токена каждые 30 минут.
PAYG для юрлиц на developers.sber.ru (синхронные / асинхронные запросы за 1000 токенов):
- Lite (
GigaChat-2): 0,065 ₽ (асинхронно — 0,0325 ₽) - Pro (
GigaChat-2-Pro): 0,5 ₽ (асинхронно — 0,25 ₽) - Max (
GigaChat-2-Max): 0,65 ₽ (асинхронно — 0,325 ₽) - Минимальный платёж при наличии расхода в расчётном периоде — 600 ₽/мес. В Cloud.ru для GigaChat 3.5 Reasoning действует раздельная тарификация: 96 ₽ за 1 млн входных и 289 ₽ за 1 млн выходных токенов (Byte/RE).
Источник: тарифы юрлиц.
Пакет для юрлиц:
- Для действующих юрлиц доступны pay-as-you-go (от 0,065 ₽/1K) и крупные пакеты токенов. Новым юрлицам подключение открыто в Cloud.ru Evolution Foundation Models.
- 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}")
Задачи для упражнения:
- Создайте клиент и отправьте сообщение на русском языке
- Сравните ответы для одного вопроса между моделями (GigaChat-2 vs GigaChat-2-Pro)
- Отслеживайте время ответа и используемые токены
- Попробуйте увеличить
max_tokensдо 1024 и задайте более сложный вопрос
Ключевые выводы
[+] Запомните:
- OAuth2 — стандарт авторизации; Client Secret нужно хранить в переменных окружения
- access_token действует ограниченное время (обычно 30 минут), требует обновления
- RQ-UUID — уникальный идентификатор каждого запроса, помогает отслеживать запросы в логах
- В API — GigaChat-2 / Pro / Max; во Freemium ещё GigaChat-3-Ultra. Scope
PERS/B2B/CORPпо-прежнему верны - Цены в рублях — PAYG 0,065 / 0,5 / 0,65 ₽ за 1K (Lite / Pro / Max)
- Freemium — 365 млн токенов в год (включая Ultra), достаточно для прототипирования; PAYG юрлиц: 0,065 / 0,5 / 0,65 ₽ за 1k
Дополнительные материалы:
Следующий урок
В Уроке 2: YandexGPT API мы изучим альтернативу от Яндекса — её особенности, интеграцию с Yandex Cloud и Python SDK для удобной работы.
Узнаем, почему YandexGPT популярна в финтеке и когда её стоит выбирать вместо GigaChat.