Использование SDK
Для работы с REST API GigaChat доступны одноименные библиотеки на Python , TypeScript/JavaScript и Java .
Перед началом работы убедитесь, что у вас установлены сертификаты НУЦ Минцифры.
SDK позволяет автоматически авторизовать запросы, и предоставляет методы для работы с GigaChat API. С их помощью можно:
- получить список доступных моделей;
- получить ответ модели на сообщение;
- загрузить файл в хранилище;
- скачать сгенерированное изображение;
- создать эмбеддинг;
- посчитать токены в сообщении.
Для работы с GigaChat также доступны партнерские пакеты LangChain, которые позволяют использовать модели GigaChat с фреймворком LangChain .
Подробнее — в документации GigaChain.
Начало работы
Чтобы начать работу с API с помощью SDK:
-
Установите или подключите в проект подходящую библиотеку:
- Python
- TS/JS
- Java
pip install gigachat
npm install gigachat
Подключите библиотеку в зависимости с помощью Gradle или Maven
Gradle:
implementation("chat.giga:gigachat-java:0.1.4")
Maven:
<dependency>
<groupId>chat.giga</groupId>
<artifactId>gigachat-java</artifactId>
<version>0.1.4</version>
</dependency> -
Инициализируйте объект GigaChat:
- Python
- TS/JS
- Java
from gigachat import GigaChat
giga = GigaChat(
credentials="ключ_авторизации",
scope="GIGACHAT_API_PERS",
model="GigaChat",
)import GigaChat from 'gigachat';
const giga = new GigaChat({
credentials: 'ключ_авторизации',
scope="GIGACHAT_API_PERS",
model: 'GigaChat',
});Базовый пример отправки запроса
public class CompletionExample {
public static void main(String[] args) {
GigaChatClient client = GigaChatClient.builder()
.authClient(AuthClient.builder()
.withOAuth(OAuthBuilder.builder()
.scope(Scope.GIGACHAT_API_PERS)
.authKey("ключ_авторизации")
.build())
.build())
.build();
System.out.println(client.completions(CompletionRequest.builder()
.model(ModelName.GIGA_CHAT)
.message(ChatMessage.builder()
.content("текст запроса")
.role(Role.USER)
.build())
.build()));
}
}
При работе с библиотеками на Python и TS/JS объект GigaChat принимает параметры:
-
credentials
— ключ авторизации для обмена сообщениями с GigaChat API. О том как получить ключ авторизации — в разделе Быстрый старт. -
scope
— версия API, к которой будет выполнен запрос. Необязательный параметр. Возможные значения:GIGACHAT_API_PERS
— версия API для физических лиц;GIGACHAT_API_B2B
— версия API для ИП и юрлиц при работе по предоплате.GIGACHAT_API_CORP
— версия API для ИП и юрлиц при работе по постоплате.
По умолчанию запросы передаются в версию для физических лиц.
-
model
— необязательный параметр, в котором можно явно задать модель GigaChat.
Примеры обращения к API с помощью библиотеки
Получить токен доступа
По умолчанию библиотека автоматически получает токен доступа при отправке первого запроса.
Вы можете получить токен принудительно для предварительной авторизации до отправки запросов с помощью метода get_token()
.
- Python
- Java
response = giga.get_token()
print(response)
public class GetTokenExample {
public static void main(String[] args) {
AuthClient client = AuthClient.builder()
.withOAuth(
OAuthBuilder.builder()
.scope(Scope.GIGACHAT_API_PERS)
.authKey("<ключ_авторизации>")
.build()).build();
client.getToken();
}
}
Метод выполнит запрос POST /api/v2/oauth
и вернет токен доступа, который вы сможете использовать для авторизации в сервисе.
Токен доступа действует 30 минут.
Получить список моделей
Метод выполняет запрос GET /models
и возвращает массив объектов с данными доступных моделей.
- Python
- TS/JS
- Java
response = giga.get_models()
print(response)
data=[Model(id_='GigaChat', object_='model', owned_by='salutedevices'), Model(id_='GigaChat-Max', object_='model', owned_by='salutedevices'), Model(id_='GigaChat-Plus', object_='model', owned_by='salutedevices'), Model(id_='GigaChat-Pro', object_='model', owned_by='salutedevices')] object_='list'
let response = await giga.getModels()
console.log(response)