Всё началось с вопроса коллеги: "А GigaChat вообще можно к n8n прикрутить?"
Мы посмотрели в список встроенных интеграций n8n. OpenAI — есть. Anthropic — есть. Mistral, Groq, Ollama — пожалуйста. GigaChat — а вот и нет.
"Ну значит нельзя", — сказал бы нормальный человек и пошёл дальше.
Но мы же не нормальные. Мы разработчики. И когда нам говорят "нельзя" — мы слышим "пока никто не попробовал".
Спойлер: подключить можно. И это даже работает. Рассказываю, как мы провели вечер пятницы с пользой (ну, относительной).
Честный ответ: просто захотелось попробовать.
Но если нужны аргументы:
Оплата в рублях. Никаких танцев с бубном вокруг иностранных карт. Просто счёт, просто оплата. Бухгалтерия счастлива, вы счастливы, все счастливы.
Бесплатный лимит. Миллион токенов в год для физлиц. Для экспериментов — за глаза.
Данные остаются в России. Если у вас параноидальный безопасник (а у кого его нет?) — вот ему аргумент.
Интересно же. Серьёзно, когда вы последний раз делали что-то просто потому что интересно?
Приступаем!
Первый босс на нашем пути — регистрация.
Заходим на developers.sber.ru/studio
Логинимся через Сбер ID (или телефон, если вы не в экосистеме)
Создаём проект → выбираем GigaChat API
В настройках жмём "Получить ключ"
Копируем Authorization Key
Ключ показывают один раз. Если не скопировали — придётся генерировать заново. Спросите меня, откуда я это знаю.
Вот тут мы споткнулись.
У OpenAI всё просто: получил API-ключ — пользуйся вечно (ну, пока не отзовёшь). У GigaChat — двухэтапная авторизация, как в шпионском фильме:
Сначала меняем Authorization Key на Access Token
Потом используем Access Token для запросов
И знаете что? Access Token живёт 30 минут. Полчаса — и он превращается в тыкву.
То есть нельзя просто прописать токен в настройках и забыть. Нужна логика обновления. В пятницу вечером. Когда хотелось просто "быстренько попробовать".
Ладно, справимся.
Добрые люди уже написали готовую ноду. Ставится за минуту:
Settings → Community Nodes → Install → n8n-nodes-gigachat
Нода сама разбирается с токенами. Магия? Магия.
Но мы же хотели разобраться, как оно внутри работает. Так что идём дальше.
Создаём отдельный workflow, который будет обновлять токен каждые 25 минут (с запасом, чтобы не словить ошибку на границе).
Нода 1 — Schedule Trigger: Запускаем каждые 25 минут. Можно было бы и каждые 29, но мы не любим жить на грани.
Нода 2 — HTTP Request:
Method: POST URL: https://ngw.devices.sberbank.ru:9443/api/v2/oauth Headers: Authorization: Basic ВАШ_КЛЮЧ RqUID: {{ $uuid }} Content-Type: application/x-www-form-urlencoded Body: scope=GIGACHAT_API_PERS
RqUID — это уникальный идентификатор запроса. Зачем он нужен? Хороший вопрос. Видимо, чтобы было интереснее.
Нода 3 — Set: Сохраняем токен. Потом используем в других workflow.
Теперь, когда у нас есть свежий токен, можно поговорить с GigaChat:
Method: POST URL: https://gigachat.devices.sberbank.ru/api/v1/chat/completions Headers: Authorization: Bearer {{ ваш_токен }} Content-Type: application/json Body: { "model": "GigaChat", "messages": [ {"role": "user", "content": "Привет! Как дела?"} ] }
Ответ приходит в знакомом OpenAI-совместимом формате. Приятно, когда не нужно переучиваться.
Раз уж всё работает — давайте сделаем что-то полезное. Или хотя бы прикольное.
Идея: бот получает заявку с сайта и оценивает, насколько клиент "горячий". Шкала от 1 до 10, где 10 — это "уже достал карту", а 1 — "случайно нажал".
Ты — ассистент по оценке заявок. Проанализируй заявку и верни JSON: { "score": число от 1 до 10, "category": "консультация" | "покупка" | "спам", "vibe": краткое описание вайба заявки (1 предложение с юмором) } Заявка: Имя: {{ $json.name }} Сообщение: {{ $json.message }}
Имя: Сергей Сообщение: Здравствуйте, интересует цена на ваши услуги, бюджет около 50 тысяч, нужно сделать до конца месяца
Ответ GigaChat:
{ "score": 8, "category": "покупка", "vibe": "Человек знает чего хочет и когда, осталось только не облажаться" }
Работает. И даже с юмором у модели всё неплохо.
Имя: Анонимус Сообщение: а можно скидку???
{ "score": 3, "category": "консультация", "vibe": "Классический охотник за скидками, вероятно сравнивает с ещё десятью конкурентами" }
Имя: ООО Рога и Копыта Сообщение: Добрый день. Прошу выслать коммерческое предложение на корпоративный адрес. Объём закупки — 200 единиц ежемесячно.
{ "score": 9, "category": "покупка", "vibe": "B2B-клиент мечты, не хватает только подписи кровью" }
GigaChat понимает контекст и даже шутит в тему.
GigaChat использует сертификаты Минцифры. На некоторых серверах нужно их установить:
wget https://gu-st.ru/content/Other/doc/russian\_trusted\_root\_ca.cer cp russian_trusted_root_ca.cer /usr/local/share/ca-certificates/ update-ca-certificates
Или в HTTP Request включить "Ignore SSL Issues". Не для прода, но для тестов сойдёт.
🔥Ставьте лайк и пишите, как вам отечественные нейросети! Мы продолжаем писать полезные и интересные статьи!
Источник


