ym88659208ym87991671
Использование SDK | Документация для разработчиков

Использование SDK

Обновлено 13 февраля 2025

Для работы с REST API GigaChat доступны одноименные библиотеки на Python и TypeScript/JavaScript. Они не только

Перед началом работы убедитесь, что у вас установлены сертификаты НУЦ Минцифры.

SDK позволяет автоматически авторизовать запросы, и предоставляет методы для работы с GigaChat API. С их помощью можно:

  • получить список доступных моделей;
  • получить ответ модели на сообщение;
  • загрузить файл в хранилище;
  • скачать сгенерированное изображение;
  • создать эмбеддинг;
  • посчитать токены в сообщении.

Для работы с GigaChat также доступны партнерские пакеты LangChain, которые позволяют использовать модели GigaChat с фреймворком LangChain.

Подробнее — в документации GigaChain.

Начало работы

Чтобы начать работу с API с помощью SDK:

  1. Установите библиотеку с помощью менеджера пакетов:

    pip install gigachat
  2. Инициализируйте объект GigaChat:

    from gigachat import GigaChat

    giga = GigaChat(
    credentials="ключ_авторизации",
    scope="GIGACHAT_API_PERS",
    model="GigaChat",
    )

Объект GigaChat принимает параметры:

  • credentials — ключ авторизации для обмена сообщениями с GigaChat API. О том как получить ключ авторизации — в разделе Быстрый старт.

  • scope — версия API, к которой будет выполнен запрос. Необязательный параметр. Возможные значения:

    • GIGACHAT_API_PERS — версия API для физических лиц;
    • GIGACHAT_API_B2B — версия API для ИП и юрлиц при работе по предоплате.
    • GIGACHAT_API_CORP — версия API для ИП и юрлиц при работе по постоплате.

    По умолчанию запросы передаются в версию для физических лиц.

  • model — необязательный параметр, в котором можно явно задать модель GigaChat.

Примеры обращения к API с помощью библиотеки

Получить токен доступа

По умолчанию библиотека автоматически получает токен доступа при отправке первого запроса.

Вы можете получить токен принудительно для предварительной авторизации до отправки запросов с помощью метода get_token().

giga.get_token()

Метод выполнит запрос POST /api/v2/oauth и вернет токен доступа, который вы сможете использовать для авторизации в сервисе. Токен доступа действует 30 минут.

Получить список моделей

Метод выполняет запрос GET /models и возвращает массив объектов с данными доступных моделей.

```python response = giga.get_models()

print(response)



```default
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'

Получить ответ на сообщение

Метод выполняет запрос POST /chat/completions и возвращает ответ модели, сгенерированный на основе переданных сообщений.

В одном фрагменте:
from gigachat import GigaChat

model = GigaChat(
credentials="ключ_авторизации",
model="GigaChat-Pro",
)

response = giga.chat("Расскажи о себе в двух словах?")

print(response.choices[0].message.content)
    Я нейросетевая модель, созданная компанией Сбер в 2023 году. Могу помогать с ответами на вопросы, решать задачи и поддерживать беседу.

В режиме потоковой генерации токенов:

for chunk in giga.stream("Расскажи о себе подробно"):
print(chunk.choices[0].delta.content, end="", flush=True)
    Я — нейросетевая модель, созданная компанией Сбер для помощи пользователям в решении различных задач и вопросов. Могу генерировать тексты, отвечать на вопросы, решать математические задачи, писать код, переводить тексты и многое другое. У меня есть несколько режимов работы, включая генеративный режим, режим математики, программирования, перевода и другие.

Мои возможности включают:
- Генерация текста: могу написать эссе, статью, рассказ или другой текст по вашему запросу.
- Решение математических задач: могу решить уравнения, системы уравнений, неравенства и т.д.
- Программирование: могу писать код на Python, JavaScript, SQL и других языках программирования.
- Перевод: могу перевести текст с русского на английский и обратно.
- Аналитика: могу анализировать данные и делать выводы на основе статистических данных.

Я обучался на огромном количестве данных, что позволяет мне предоставлять точные и полезные ответы. Если у вас есть конкретный запрос или вопрос, я готов помочь!

Загрузить файл в хранилище

Метод выполняет запрос POST /files и возвращает объект с данными загруженного файла. Загруженные файлы доступны только вам.

Подробнее о работе с файлами с помощью API — в разделе Обработка файлов.

file = giga.upload_file(open("cat.jpg", "rb"))

Скачать сгенерированное изображение

Метод выполняет запрос GET /files/{file_id}/content и возвращает файл изображения в бинарном представлении в формате JPG.

Подробнее о работе с файлами с помощью API — в разделе Обработка файлов.

image = giga.get_image(file_id='идентификатор_файла')

Создать эмбеддинг

Выполняет запрос POST /embeddings и возвращает векторное представление запроса.

Подробнее об использовании эмбеддингов — в разделе Векторное представление текста.

response = giga.embeddings(["Hello world!"])
print(response)

Подсчитать количество токенов в запросе

Выполняет запрос POST /tokens/count и возвращает объект с информацией о количестве токенов, подсчитанных заданной моделью в строках.

result = giga.tokens_count(input_=["12345"], model="GigaChat-Pro")
print(result)
    [TokensCount(tokens=6, characters=5, object_='tokens')]
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.