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

Быстрый старт для физических лиц

Обновлено 5 февраля 2024

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

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

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

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

Авторизационные данные — это пара идентификатор (Client ID) и секрет (Client Secret) закодированные в base64.

Если у вас уже есть личный кабинет, авторизуйтесь и создайте проект GigaChat API по ссылке.

Если у вас нет личного кабинета, для создания проекта:

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

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

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

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

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

    В интерфейсе проекта можно:

    • Ознакомиться с условиями действующего тарифа. Каждому новому пользователю по умолчанию подключается тариф Freemium. Об условиях тарифа и доступных тарифных планах читайте в разделе Тарифы и оплата.
    • Приобрести дополнительные пакеты токенов.
    • Узнать свой идентификатор — значение поля Client ID в панели справа.
    • Узнать версию API, к которой предоставляется доступ. Версия указана в поле Scope в панели справа. Для физических лиц значение поля — GIGACHAT_API_PERS.
    • Сгенерировать секрет.
  6. Для генерации секрета нажмите кнопку Сгенерировать новый 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_PERS'

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

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

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

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

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

Запросы к GigaChat API авторизуются с помощью токена доступа, который передан в заголовке Authorization:

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

Подробное описание всех запросов к API — в справочной документации.

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

За генерацию текста отвечает запрос POST /chat/completions.

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

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

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

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:latest",
"messages": [
{
"role": "user",
"content": "Привет! Как дела?"
}
],
"temperature": 1.0,
"top_p": 0.1,
"n": 1,
"stream": false,
"max_tokens": 512,
"repetition_penalty": 1
}'

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

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

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

Для создания эмбеддингов используется запрос 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 в настройках своего браузера.