ym88659208ym87991671
Быстрый старт для ИП и юридических лиц | Документация для разработчиков

Быстрый старт для ИП и юридических лиц

Обновлено 24 июля 2024

Следуйте инструкциям из этого раздела и вы пройдете путь от регистрации в личном кабинете до первых запросов API и SDK.

Для работы с GigaChat API установите сертификаты НУЦ Минцифры.

Шаг 1. Создайте проект GigaChat API

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

Подробнее об авторизационных данных

Авторизационные данные — строка, полученная в результате кодирования в Base64 клиентского идентификатора (Client ID) и ключа (Client Secret) API. Вы можете использовать готовые данные из личного кабинета или самостоятельно закодировать идентификатор и ключ.

Авторизационные данные нужны для получения токена доступа с помощью запроса POST /api/v2/oauth.

При этом, если вы хотите протестировать API с помощью консоли в документации, для получения токена доступа потребуются именно идентификатор и ключ, которые используются в качестве логина и пароля соответственно. Консоль автоматически кодирует их в Base64.

Генерация токена в консоли документации

Это связано с тем, что запрос POST /api/v2/oauth работает по Basic-схеме аутентификации.

Для этого:

  1. Зарегистрируйтесь или авторизуйтесь в личном кабинете.

  2. Перейдите в корпоративное пространство (предоплата).

  3. Нажмите Создать проект в левом меню.

  4. Выберите GigaChat API Business в разделе AI-модели.

  5. Ознакомьтесь и примите условия пользовательского соглашения.

  6. В открывшемся окне введите название проекта.

  7. Для генерации клиентского ключа нажмите кнопку Сгенерировать новый Client Secret.

    Авторизационные данные могут получить только пользователи с ролями Владелец и Администратор — для остальных ролей кнопка Сгенерировать новый Client Secret будет неактивна.

    Подробнее о ролях и их возможностях — в разделе Настройка команды в пространстве.

В открывшемся окне скопируйте и сохраните значение полей Client Secret и Авторизационные данные.

Получение авторизационных данных

Клиентский ключ, а следовательно и авторизационные данные, отображаются только один раз и не хранятся в личном кабинете.

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

Шаг 2. Получите токен доступа

Токен доступа нужен для авторизации запросов к GigaChat API по Bearer-схеме. Токен получается в обмен на авторизационные данные с помощью запроса POST /api/v2/oauth.

При отправке запроса на получение токена доступа нужно указать версию АПИ, к которой будут выполняться запросы:

Токен действителен в течение 30 минут.

Пример запроса для получения токена доступа:

curl -L -X POST 'https://ngw.devices.sberbank.ru:9443/api/v2/oauth' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Accept: application/json' \
-H 'RqUID: <идентификатор_запроса>' \
-H 'Authorization: Basic <авторизационные_данные>' \
--data-urlencode 'scope=GIGACHAT_API_B2B'

Пример ответа:

{
"access_token": "<токен_доступа>",
"expires_at": 1706026848841
}

В справочной документации вы найдете подробное описание параметров запроса и ответа. Также сможете сгенерировать токен доступа с помощью своего идентификатора (Client ID) и клиентского ключа (Client Secret).

Используйте полученный токен доступа для авторизации запросов к GigaChat API.

Шаг 3. Запросы к GigaChat API

Перед работой с API в личном кабинете нужно приобрести пакеты токенов на минимальную сумму в 20 000 рублей.

Запросы к GigaChat API авторизуются с помощью токена доступа, который передан в заголовке Authorization. Подробное описание всех запросов к API — в справочной документации.

Пример запроса на получение списка моделей:

curl https://gigachat.devices.sberbank.ru/api/v1/models \
-H 'Authorization: Bearer <токен_доступа>' \

Запрос возвращает список моделей GigaChat:

{
"object": "list",
"data": [
{
"id": "GigaChat",
"object": "model",
"owned_by": "salutedevices"
},
{
"id": "GigaChat-Plus",
"object": "model",
"owned_by": "salutedevices"
},
{
"id": "GigaChat-Plus-preview",
"object": "model",
"owned_by": "salutedevices"
},
{
"id": "GigaChat-Pro",
"object": "model",
"owned_by": "salutedevices"
},
{
"id": "GigaChat-Pro-preview",
"object": "model",
"owned_by": "salutedevices"
},
{
"id": "GigaChat-preview",
"object": "model",
"owned_by": "salutedevices"
}
]
}

Модели GigaChat обладают разными возможностями и тарифицируются по-разному.

Генерация текста

За генерацию текста и изображений отвечает запрос POST /chat/completions. С помощью запросов на генерацию вы можете решать самые разные задачи: переводить, исправлять и стилизовать текст, генерировать краткое содержание статей и выделять из них основные идеи, создавать изображения и многое другое.

Запросы на генерацию тратят токены.

Токен — единица тарификации. Токен может быть символом, несколькими символами, фрагментом слова или словом целиком. В среднем в одном токене 3—4 символа, включая пробелы, знаки препинания и специальные символы.

Токены расходуются как на запрос, так и на ответ модели. Вы можете заранее оценить количество токенов в запросе с помощью запроса POST /tokens/count. Разные модели считают токены по-разному. Количество оставшихся токенов отображается в личном кабинете проекта GigaChat API. Если вы используете API как юридическое лицо или ИП, в вашем личном кабинете также будет доступен мониторинг потребления токенов.

Пример запроса на генерацию текста:

curl -L -X POST 'https://gigachat.devices.sberbank.ru/api/v1/chat/completions' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <токен_доступа>' \
--data-raw '{
"model": "GigaChat",
"messages": [
{
"role": "user",
"content": "Привет! Как дела?"
}
],
"stream": false,
"repetition_penalty": 1
}'

Пример ответа:

{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "Все отлично, спасибо. А как ваши дела?",
"role": "assistant"
}
}
],
"created": 1706096547,
"model": "GigaChat",
"object": "chat.completion",
"usage": {
"completion_tokens": 12,
"prompt_tokens": 173,
"system_tokens": 0,
"total_tokens": 185
}
}

Если вы хотите получить наиболее сбалансированный ответ, не передавайте параметры temperature и top_p. В таком случае модель применит значения по умолчанию.

Подробное описание параметров — в справке API.

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

Для создания эмбеддингов используется запрос POST /embeddings. Эмбеддинги нужны для определения смыслового сходства текстов, что позволяет решать задачи вроде поиска, извлечения данных из текстов и других.

При создании эмбеддинга расходуются токены, также как и при генерации контента. Запросы на создание эмбеддингов передаются в модель Embeddings.

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

Пример запроса:

curl -L -X POST 'https://gigachat.devices.sberbank.ru/api/v1/embeddings' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <токен_доступа>' \
--data-raw '{
"model": "Embeddings",
"input": [
"Расскажи о современных технологиях"
]
}'

Шаг 4. Использование GigaChat SDK (GigaChain)

GigaChain — это библиотека Python, которая позволяет упростить и автоматизировать работу с нейросетевой моделью GigaChat и другими большими языковыми моделями (LLM). GigaChain является версией библиотеки LangChain, которая адаптирована для работы с русским языком.

Для работы с SDK установите библиотеки gigachain и gigachat:

pip install gigachain
pip install gigachat

Библиотека gigachat — отдельная python-библиотека, которая позволяет отправлять запросы к GigaChat. Обмен данными с моделью обеспечивается с помощью GigaChat API.

Простой пример работы с чатом с помощью модуля GigaChat:

"""Пример работы с чатом через gigachain"""
from langchain.schema import HumanMessage, SystemMessage
from langchain.chat_models.gigachat import GigaChat

# Авторизация в сервисе GigaChat
chat = GigaChat(credentials='<авторизационные_данные>', verify_ssl_certs=False)

messages = [
SystemMessage(
content="Ты эмпатичный бот-психолог, который помогает пользователю решить его проблемы."
)
]

while(True):
# Ввод пользователя
user_input = input("User: ")
messages.append(HumanMessage(content=user_input))
res = chat(messages)
messages.append(res)
# Ответ модели
print("Bot: ", res.content)

Смотрите также

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.