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

Создание изображений

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

В ответ на определенным образом составленные промпты GigaChat API может возвращать изображения. Изображения генерируются в бинарном виде в формате JPG.

Изображения можно создавать как с системным промптом ("role": "system") так и без него.

В ответ GigaChat возвращает идентификатор созданного изображения, которое можно скачать с помощью запроса POST /files/:file_id/content.

Функциональность недоступна в GigaChain.

Запрос на создание изображения

Ниже приведены примеры запросов на создание изображений как с использованием системного промпта, так и без него.

Без системного промпта

Чтобы создать изображение без системного промпта достаточно в запросе POST /chat/completions передать сообщение пользователя ("role": "user") с промптом промпт, указывающим, что нужно создать изображение («нарисуй…»):

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": "Нарисуй логотип моей компании, которая занимается производством корма для котов."
}
],
"temperature": 1,
"top_p": 0.1,
"n": 1,
"stream": false,
"max_tokens": 512,
"repetition_penalty": 1,
"update_interval": 0
}'

С системным промптом

Если при создании изображения вам нужно передать системный промпт ("role": "system"), например, для создания контекста, то он обязательно должен содержать фразу:

Если тебя просят создать изображение, ты должен сгенерировать специальный блок: <fuse>text2image(query: str, style: str)</fuse>,\nгде query — текстовое описание желаемого изображения, style — необязательный параметр, задающий стиль изображения.

Пример:

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": "system",
"content": "Ты профессиональный художник. Если тебя просят создать изображение, ты должен сгенерировать специальный блок: <fuse>text2image(query: str, style: str)</fuse>,\nгде query — логотип моей компании, которая занимается производством корма для котов, style — абстракция."
}
],
"temperature": 1,
"top_p": 0.1,
"n": 1,
"stream": false,
"max_tokens": 512,
"repetition_penalty": 1,
"update_interval": 0
}'

Скачивание изображения

Ответ модели будет содержать идентификатор получившегося изображения в теге <img>, в аттрибуте src:

{
"choices": [
{
"message": {
"content": "<img src=\"1d72amtvbcc2jj2dbcdqwk2t00d2tj0r5pxze88t0r0kynrg00c2211em740pqabbwc26njsa9a7jngz11a741tp0na2m0rzb1a2a10da8djt08wbgd2enq2a5gpr\" fuse=\"true\"/>",
"role": "assistant"
},
"index": 0,
"finish_reason": "stop"
}
],
"created": 1707384246,
"model": "GigaChat:3.1.24.3",
"object": "chat.completion",
"usage": {
"prompt_tokens": 100,
"completion_tokens": 38,
"total_tokens": 138,
"system_tokens": 0
}
}

Для скачивания изображения передайте полученный идентификатор в запросе GET /files/{file_id}/content:

curl -L -X GET 'https://gigachat.devices.sberbank.ru/api/v1/files/<идентификатор_изображения>/content' -o "<имя_файла>.jpg" \
-H 'Accept: application/jpg' \
-H 'Authorization: Bearer <токен_доступа>'

Ответ на запрос будет содержать бинарное представление файла в формате JPG.

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

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