Российская LLM от Сбера: API, function calling, эмбеддинги. Сравнение с OpenAI API. Полный туториал.
GigaChat — российская LLM от Сбера, аналог GPT-4 для русского языка. Две версии: GigaChat Lite (быстрая, бесплатная) и GigaChat Pro (мощная, платная). Ключевое преимущество: данные хранятся и обрабатываются в РФ, сертификат Минцифры, соответствие 152-ФЗ. API совместимо с форматом OpenAI — миграция с GPT занимает 15 минут.
Регистрация через Сбер ID на developers.sber.ru. Создаёте проект, получаете Client ID и Client Secret. Авторизация по протоколу client_credentials (OAuth2). Токен живёт 30 минут, нужно обновлять.
import requests import uuid CLIENT_ID = "your-client-id" CLIENT_SECRET = "your-client-secret" AUTH_URL = "https://ngw.devices.sberbank.ru:9443/api/v2/oauth" API_URL = "https://gigachat.devices.sberbank.ru/api/v1" # Получаем токен rq_uid = str(uuid.uuid4()) auth_response = requests.post(AUTH_URL, data={ 'scope': 'GIGACHAT_API_PERS' }, headers={ 'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json', 'RqUID': rq_uid, 'Authorization': f'Basic {CLIENT_ID}:{CLIENT_SECRET}' }, verify=False) token = auth_response.json()['access_token'] # Первый запрос response = requests.post(f"{API_URL}/chat/completions", json={ "model": "GigaChat", "messages": [{"role": "user", "content": "Привет! Кто ты?"}], "temperature": 0.7 }, headers={ 'Authorization': f'Bearer {token}' }, verify=False) print(response.json()['choices'][0]['message']['content'])
GigaChat поддерживает function calling — ключевую технологию для AI-агентов. Вы описываете функции, которые агент может вызывать (поиск, калькулятор, запрос к БД), и GigaChat решает, какую функцию вызвать и с какими параметрами.
# Function Calling с GigaChat — даём агенту инструменты tools = [{ "type": "function", "function": { "name": "get_weather", "description": "Получить погоду для города", "parameters": { "type": "object", "properties": { "city": {"type": "string", "description": "Город на русском"} }, "required": ["city"] } } }] response = requests.post(f"{API_URL}/chat/completions", json={ "model": "GigaChat-Pro", "messages": [{"role": "user", "content": "Какая погода в Москве?"}], "functions": tools, "function_call": "auto" }, headers={'Authorization': f'Bearer {token}'}, verify=False) func_call = response.json()['choices'][0]['message']['function_call'] print(f"Вызов: {func_call['name']}({func_call['arguments']})")
GigaChat Pro сравним с GPT-4o-mini по качеству русского текста. Преимущества: цена (в 2-3 раза дешевле для русского языка), данные в РФ, compliance. Недостатки: меньше языков (русский + английский), меньшее контекстное окно (32K vs 128K у GPT-4o), нет vision. Вывод: для русскоязычных проектов с требованиями к хранению данных — GigaChat. Для мультиязычных проектов — OpenAI.
Полный цикл: получаем токен, описываем инструменты, создаём агента с памятью (история сообщений в списке), обрабатываем function calls в цикле. Готовый агент умеет искать информацию, считать, работать с локальными данными — всё на российском LLM.
GigaChat — зрелое российское решение для AI-агентов. API полностью совместимо с форматом OpenAI, миграция занимает 15 минут. Function Calling работает стабильно. Рекомендация: используйте GigaChat для русскоязычных проектов (особенно с требованиями 152-ФЗ), а OpenAI — для мультиязычных. Комбинированный подход: GigaChat для русскоязычного общения, OpenAI для английского и vision-задач.