Данная библиотека реализует методы REST API GigaChat. Она является частью GigaChain
Вот часть того, что она поддерживает:
- чат
- обработку потоковой передачи токенов
- работу с функциями;
- создание эмбеддингов;
- работу с GigaChat Vision
Tip
Больше примеров работы с библиотекой gigachat — в папке examples.
npm install gigachat
Для работы с библиотекой вам понадобится ключ авторизации API.
Чтобы получить ключ авторизации:
- Создайте проект GigaChat API в личном кабинете Studio.
- В интерфейсе проекта, в левой панели выберите раздел Настройки API.
- Нажмите кнопку Получить ключ.
В открывшемся окне скопируйте и сохраните значение поля Authorization Key. Ключ авторизации, отображается только один раз и не хранятся в личном кабинете. При компрометации или утере ключа авторизации вы можете сгенерировать его повторно.
Подробно о том, как создать проект GigaChat API — в официальной документации, в разделах Быстрый старт для физических лиц и Быстрый старт для ИП и юридических лиц.
Передайте полученный ключ авторизации в параметре credentials
при инициализации объекта GigaChat.
Пример показывает как отправить простой запрос на генерацию с помощью библиотеки GigaChat:
import GigaChat from 'gigachat';
import { Agent } from 'node:https';
const httpsAgent = new Agent({
rejectUnauthorized: false, // Отключает проверку корневого сертификата
// Читайте ниже как можно включить проверку сертификата Мин. Цифры
});
const client = new GigaChat({
timeout: 600,
model: 'GigaChat',
credentials: 'ваш_ключ_авторизации',
httpsAgent: httpsAgent,
});
client
.chat({
messages: [{ role: 'user', content: 'Привет, как дела?' }],
})
.then((resp) => {
console.log(resp.choices[0]?.message.content);
});
Для авторизации запросов, кроме ключа, полученного в личном кабинете, вы можете использовать:
- credentials
- имя пользователя и пароль для доступа к сервису;
- сертификаты TLS;
- токен доступа (access token), полученный в обмен на ключ авторизации в запросе
POST /api/v2/oauth
.
Для этого передайте соответствующие параметры при инициализации.
Пример авторизации с credentials:
const client = new GigaChat({
credentials: 'креды',
scope: 'GIGACHAT_API_PERS / GIGACHAT_API_B2B / GIGACHAT_API_CORP',
});
Пример авторизации с помощью логина и пароля:
const client = new GigaChat({
baseUrl: 'BASE URL апи',
user: 'юзернейм',
password: 'пароль',
});
Авторизация с помощью сертификатов по протоколу TLS (mTLS):
import GigaChat from 'gigachat';
import { Agent } from 'node:https';
import fs from 'node:fs';
const httpsAgent = new Agent({
ca: fs.readFileSync('certs/ca.pem'),
cert: fs.readFileSync('certs/tls.pem'),
key: fs.readFileSync('certs/tls.key'),
passphrase: 'пароль от приватного ключа',
});
const client = new GigaChat({
baseUrl: 'BASE URL апи',
httpsAgent: httpsAgent,
});
Авторизация с помощью токена доступа:
const client = new GigaChat({
baseUrl: 'BASE URL апи',
accessToken: 'токен',
});
![NOTE] Токен действителен в течение 30 минут.
По умолчанию, библиотека GigaChat получает токен доступа при первом запросе к API.
Если вам нужно получить токен и авторизоваться до выполнения запроса, инициализируйте объект GigaChat и вызовите метод get_token()
.
const client = new GigaChat({
credentials: 'креды',
scope: 'GIGACHAT_API_PERS / GIGACHAT_API_B2B / GIGACHAT_API_CORP',
});
await giga.updateToken();
В таблице описаны параметры, которые можно передать при инициализации объекта GigaChat:
Параметр | Описание |
---|---|
credentials |
Ключ авторизации для обмена сообщениями с GigaChat API. Ключ авторизации содержит информацию о версии API, к которой выполняются запросы. Если вы используете версию API для ИП или юрлиц, укажите это явно в параметре scope |
scope |
Версия API, к которой будет выполнен запрос. По умолчанию запросы передаются в версию для физических лиц. Возможные значения:
|
model |
необязательный параметр, в котором можно явно задать модель GigaChat. Вы можете посмотреть список доступных моделей с помощью метода get_models() , который выполняет запрос GET /models .Стоимость запросов к разным моделям отличается. Подробную информацию о тарификации запросов к той или иной модели вы ищите в официальной документации |
baseUrl |
Адрес API. По умолчанию запросы отправляются по адресу https://gigachat.devices.sberbank.ru/api/v1/ , но если вы хотите использовать модели в раннем доступе, укажите адрес https://gigachat-preview.devices.sberbank.ru/api/v1 |
httpsAgent |
Настройки HTTPS, которые добавляются при подключении к серверу API (подключение по сертификату, отключение проверки корневого сертифаката и т.д). В браузере не поддерживается! |
dangerouslyAllowBrowser |
Флаг, включащий библиотеку в браузере. По умолчанию, данная библиотека в браузере не работает, так как так можно разоблачить ваш GigaChat токен. |
timeout |
Таймаут (в секундах), который используется при подключении |
Также клиент автоматически подтягивает настройки из следующих переменных окружения:
- GIGACHAT_CREDENTIALS
- GIGACHAT_SCOPE
- GIGACHAT_BASE_URL
- GIGACHAT_MODEL
- GIGACHAT_TIMEOUT
Не работает в браузере
По умолчанию, библиотека в браузере выкидывает Exception. Чтобы его отключить инициализируйте клиент так:
const client = new GigaChat({
timeout: 600,
model: 'GigaChat',
credentials: 'ваш_ключ_авторизации',
dangerouslyAllowBrowser: true,
});
Также в браузере нельзя создавать клиент с настройками HTTPS, то есть нельзя будет отключить игнорирование сертификатов.