Создание и скачивание 3D-моделей
С помощью моделей GigaChat можно создавать 3D-модели в формате FBX на основе текстового описания. В этом разделе вы узнаете как генерировать и скачивать модели с помощью GigaChat API.
Генерация 3D-моделей
Чтобы сгенерировать модель, передайте в запросе POST /chat/completions встроенную функцию text2model3d и включить автоматический режим работы с функциями ("function_call": "auto").
При обнаружении подходящего сообщения, например «Сгенерируй 3D-модель шара», модель использует переданную функцию для генерации 3D-модели.
В отличие от создания изображений, наличие функции в массиве functions обязательно для генерации 3D-моделей.
Подробнее о функциях GigaChat API — в разделе Обращение к встроенным функциям
Созданная модель сохраняется в хранилище, а ответ от API будет содержать div-блок с идентификатором файла data-model-id:
<div data-model-id="e10675c7-4128-4dbf-9f68-b10876ac1951" fuse="true"/> Модель шара успешно создана. Представляю тебе реалистичный трехмерный шар.
Для скачивания файла используйте запрос GET /files/{file_id}/content.
Подробнее о хранилище файлов — в разделе Обработка файлов.
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": "Сгенерируй 3D-модель шара"
}
],
"function_call": "auto",
"functions": [
{
"name": "text2model3d"
}
]
}'
Генерация с помощью SDK:
from gigachat import GigaChat
from gigachat.models import Chat, Messages, MessagesRole, Function
giga = GigaChat(
credentials="<ключ_авторизации>",
verify_ssl_certs=False,
# Повышение времени ожидания, так как создание модели — длительный процесс
timeout=200
)
payload = Chat(
messages=[Messages(role=MessagesRole.USER, content="Сгенерируй 3D-модель шара")],
function_call="auto",
functions=[
Function(name="text2model3d")
]
)
response = giga.chat(payload)
print (response)