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

Обработка файлов

Обновлено 14 ноября 2024

Модели GigaChat умеют обрабатывать текстовые документы и изображения, и использовать их при генерации ответов. Для этого вы можете загрузить необходимые файлы в хранилище и передать запрос с идентификатором файла в выбранную модель GigaChat. При генерации ответа, модель будет учитывать указанное изображение.

Работа с хранилищем файлов

Хранилище файлов позволяет получить идентификатор файла, который можно использовать при запросе к модели. Для работы с хранилищем GigaChat API предоставляет методы:

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

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

Хранилище поддерживает текстовые документы и изображения разных форматов.

ФорматMIME-тип
txttext/plain
docapplication/vnd.openxmlformats-officedocument.wordprocessingml.document
docxapplication/msword
pdfapplication/pdf

На размеры файлов действуют ограничения:

  • максимальный размер одного текстового файла в запросе — 30 Мб;
  • максимальный размер одного изображения в запросе — 15 Мб.

Чтобы модель использовала файл для генерации, укажите его идентификатор в массиве attachments, в запросе на генерацию POST /chat/completions.

Пример запроса для загрузки файлов:

curl --location --request POST 'https://gigachat.devices.sberbank.ru/api/v1/files' \
--header 'Authorization: Bearer access_token' \
--form 'file=@"<путь_к_файлу>/example.jpeg"' \
--form 'purpose="general"'

В запросе обязательно нужно указать значение поля purpose="general". Это позволит использовать файл в запросах на генерацию ответов.

В ответ вы получите объект с описанием файла:

{
"bytes": 120000,
"created_at": 1677610602,
"filename": "file123",
"id": "6f0b1291-c7f3-43c6-bb2e-9f3efb2dc98e",
"object": "file",
"purpose": "general",
"access_policy": "private"
}

Описание параметров — в справке API.

Получение информации о файлах

Для получения информации о доступных в хранилище файлах GigaChat API предоставляет два метода: GET /files и GET /files/{file}.

Для получения списка всех доступных вам файлов используйте метод GET /files:

curl -L -X GET 'https://gigachat.devices.sberbank.ru/api/v1/files' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer access_token'

Для получения информации об отдельном файле используйте метод GET /files/{file}:

curl -L -X GET 'https://gigachat.devices.sberbank.ru/api/v1/files/:file' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer access_token'

Удаление файла из хранилища

Для удаления файла из хранилища используйте метод POST /files/{file}/delete. В параметрах пути укажите идентификатор файла, который был получен при его загрузке в хранилище:

curl -L -X POST 'https://gigachat.devices.sberbank.ru/api/v1/files/:file/delete' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer access_token'

После удаления файл нельзя будет использовать для генерации.

Использование файлов для генерации ответов

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

Для этого передайте идентификаторы файлов, которые нужно использовать для генерации, в массиве attachments.

Использование текстовых файлов

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

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

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 access_token' \
--data-raw '{
"model": "GigaChat",
"messages": [
{
"role": "user",
"content": "Расскажи вкратце, что изложено в документе?",
"attachments": [
"80e0bcd5-2b78-4fa7-8783-903995f56b4b",
"1460d895-2b26-4ce0-8b0d-cc7665a969df"
]
}
],
"stream": false,
"update_interval": 0
}'

Использование изображений

В одном сообщении (объект в массиве messages) можно передать только одно изображение. В одном запросе можно передать до 10 изображений, независимо от количества сообщений.

При этом общий размер запроса должен быть меньше 20 Мб.

Например, ваш запрос может включать текст промпта и два идентификатора изображений, которые ссылаются на файлы размерами 6 Мб и 12 Мб.

Примеры запросов на генерацию с использованием загруженных изображений.

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 access_token' \
--data-raw '{
"model": "GigaChat-Pro",
"messages": [
{
"role": "user",
"content": "Что изображено на рисунке?",
"attachments": [
"80e0bcd5-2b78-4fa7-8783-903995f56b4b"
]
}
],
"stream": false,
"update_interval": 0
}'

Тарификация изображений

При отправке изображений в GigaChat они преобразуются в токены. Количество токенов после преобразования зависит от размера и разрешения изображения. Максимальное количество токенов, которые могут быть потрачены на обработку изображения — 1792.

Токены оплачиваются в соответствии с тарифами GigaChat API.

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

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