Руководство по использованию
Генерация изображений товаров для электронной коммерции с помощью gpt-6-astra через API hiapi
Он не создаёт фотографии — но пишет всё остальное содержимое карточки товара.
GPT-6 Astra не генерирует изображения — вот где он действительно полезен в стеке электронной коммерции
Если вы пришли сюда в надежде, что GPT-6 Astra нарисует фотографии товаров, — он этого не умеет. Это чисто текстовая модель рассуждений, доступная через эндпоинт /v1/responses, которая вообще не выдаёт изображения, аудио или видео. Но для команд электронной коммерции это не тупик. Каждое изображение товара живёт на странице, которой также нужны описание, alt-текст, ответы службы поддержки и три версии одних и тех же торговых аргументов для трёх рекламных каналов — и GPT-6 Astra создан именно для этого слоя. В этом руководстве рассматривается текстовая часть рабочего процесса с изображениями товаров: пакетная генерация описаний, извлечение структурированных данных для карточек товаров и ответы на вопросы клиентов — с реальными примерами запросов к Responses API. Если вам нужны сами фотографии, используйте его в паре с такой моделью изображений, как GPT Image 2, а GPT-6 Astra пусть обрабатывает весь текст вокруг фотографии.
Почему Responses API, а не Chat Completions
GPT-6 Astra доступен только через POST /v1/responses — то же семейство эндпоинтов, которое OpenAI использует для своих новых моделей рассуждений, — а не через старый формат Chat Completions. Если вы подключаете его к конвейеру товаров, важны три различия:
- Используйте
input, а неmessages. Вы передаёте массив входных элементов, а не списокmessages. Переделайте свой клиент Chat Completions, а не переиспользуйте как есть код построения запросов. - На практике по умолчанию
stream=true, для состояния —store=false. Модель передаёт событияresponse.output_text.deltaпо мере поступления текста и событиеresponse.output_item.done, когда структурированный элемент завершён. Приstore=falseсервер ничего не сохраняет между вызовами — если вы ведёте многоходовой диалог службы поддержки, вам нужно самостоятельно воспроизводить предыдущие реплики пользователя и ассистента в следующем массивеinput. - Используйте
reasoning.effort, а неtemperature. В этой интеграции нет параметровtemperature,top_pилиmax_output_tokens. Качеством/задержкой вывода вы управляете черезreasoning.effort, принимающий одно из значенийlow,medium,high,xhighилиmax(вариантаnoneнет — рассуждения нельзя отключить). Для коротких детерминированных задач вроде генерации описаний обычно достаточноlowилиmedium; оставьтеhighи выше для случаев, требующих суждения, например для черновиков ответов службы поддержки по политически чувствительным вопросам.
Базовый URL — https://api.hiapi.ai/v1, ключ тот же, что и для других ваших моделей hiapi.
Сценарий 1: пакетная генерация описаний товаров со структурированным выводом
Самое прямое применение в электронной коммерции — масштабное превращение таблиц характеристик в тексты карточек товаров в фирменном стиле. Вместо того чтобы разбирать свободный текст, возвращаемый моделью, используйте text.format.type=json_schema, чтобы каждый ответ приходил в форме, которую ваша CMS может принимать напрямую — заголовок, краткое описание, подробное описание и список ключевых пунктов, всё за один вызов.
import json
import requests
resp = requests.post(
"https://api.hiapi.ai/v1/responses",
headers={
"Authorization": f"Bearer {HIAPI_KEY}",
"Content-Type": "application/json",
},
json={
"model": "gpt-6-astra",
"store": False,
"reasoning": {"effort": "low"},
"input": [
{
"role": "system",
"content": "You write concise, factual e-commerce listing copy. "
"Never invent specs that aren't in the input.",
},
{
"role": "user",
"content": "Product: ceramic pour-over coffee dripper, 400ml, "
"matte white, dishwasher safe, fits standard filters. "
"Write listing copy for this product.",
},
],
"text": {
"format": {
"type": "json_schema",
"name": "listing_copy",
"schema": {
"type": "object",
"properties": {
"title": {"type": "string"},
"short_description": {"type": "string"},
"long_description": {"type": "string"},
"bullet_points": {
"type": "array",
"items": {"type": "string"},
},
},
"required": [
"title",
"short_description",
"long_description",
"bullet_points",
],
"additionalProperties": False,
},
}
},
},
stream=False,
)
data = resp.json()
Запустите этот код для своего каталога товаров по SKU — и вы получите единообразные тексты, проверенные по схеме, а не прозу, скопированную из окна чата. В системной подсказке строго запретите выдумывать характеристики — если не дать модели запрет, она с удовольствием распишет функции, которых вы ей вовсе не предоставляли.
Сценарий 2: ответы на вопросы клиентов на основе собственных документов
Для ассистента службы поддержки ключевой шаблон — цикл воспроизведения при store=false. На каждом ходу вы отправляете в input текущий диалог плюс любые результаты инструментов; модель не помнит ничего, что вы не отправили. Это намеренный компромисс — ценой немного более дорогих входных токенов из-за повторной отправки, но зато состояние диалога принадлежит вашему приложению, а не поставщику (что полезно, если вам нужно обезличивать, ветвить или восстанавливать диалоги из собственной базы данных).
history = [
{"role": "system", "content": "Answer only from the provided product FAQ context. "
"If the answer isn't in context, say so and offer to escalate."},
]
def ask(user_message: str, faq_context: str) -> str:
history.append({"role": "user", "content": f"Context:\n{faq_context}\n\nQuestion: {user_message}"})
resp = requests.post(
"https://api.hiapi.ai/v1/responses",
headers={"Authorization": f"Bearer {HIAPI_KEY}", "Content-Type": "application/json"},
json={
"model": "gpt-6-astra",
"store": False,
"reasoning": {"effort": "medium"},
"input": history,
},
)
answer = resp.json()["output"][-1]["content"][0]["text"]
history.append({"role": "assistant", "content": answer})
return answer
Для любых действий, требующих проверки статуса заказа или инициирования возврата, объявите их как функции в tools — модель вернёт function_call, ваш бэкенд выполнит его, а затем, прежде чем модель продолжит, вы передадите результат через function_call_output с тем же call_id. Это гарантирует, что модель никогда не получит прямого доступа к вашей базе данных заказов.
Сценарий 3: маркетинговые варианты текста для разных каналов
Одни и те же факты о товаре требуют разных формулировок на странице товара, в заголовке письма и в 30-символьном заголовке объявления. Поскольку GPT-6 Astra передаёт события response.output_text.delta по мере поступления, вы можете генерировать несколько вариантов для каналов за один вызов и отрисовывать их сразу по мере поступления контента, не дожидаясь полного ответа, — что полезно, если это используется для живого предпросмотра во внутреннем инструменте. Здесь также держите reasoning.effort на уровне low; для подбора тона в коротких текстах не нужно более сильное рассуждение, и это обеспечивает низкую задержку, пока маркетологи итерируют в реальном времени.
Как рассчитывается стоимость
GPT-6 Astra тарифицируется по токенам, и здесь есть жёсткий порог тарифа, а не маржинальная надбавка — это стоит понимать до того, как вы начнёте пакетно обрабатывать большой каталог товаров в одном запросе:
| Уровень | Ввод | Вывод | Кэшированный ввод | Запись в кэш |
|---|---|---|---|---|
| Стандартный (≤272 000 входных токенов/запрос) | $2,50 / 1 млн токенов | $12,50 / 1 млн токенов | $0,25 / 1 млн токенов | $3,125 / 1 млн токенов |
| Длинный контекст (>272 000 входных токенов/запрос) | $5,00 / 1 млн токенов | $18,75 / 1 млн токенов | $0,50 / 1 млн токенов | $6,25 / 1 млн токенов |
Этот порог проверяется по общему объёму ввода запроса — включая чтение и запись кэша — и как только он превышен, весь запрос тарифицируется по ставке длинного контекста, а не только токены сверх 272 000. Для описанных выше сценариев (генерация описания одного товара, один ход диалога службы поддержки, один вариант текста) вы далеки от этой черты; это влияет в основном тогда, когда вы загружаете весь каталог или длинный документ в один вызов. Перед тем как браться за пакетные задачи, проверьте актуальные тарифы на hiapi.ai/pricing, поскольку эти ставки основаны на использовании и могут меняться.
Как это сочетается с остальной частью стека
Ничто из вышеперечисленного не заменяет настоящую модель изображений — у GPT-6 Astra нет доступа к /v1/tasks и он не может создавать визуальный вывод. Если вашему рабочему процессу нужны товарные фотографии или лафстайл-изображения в дополнение к этим текстам, это требует отдельного вызова модели изображений, такой как GPT Image 2, и их форматы запросов и эндпоинты несовместимы. Полные сведения о конфигурации, включая ID модели и точную форму запроса, см. в руководстве по API GPT-6 Astra и на странице модели.
Часто задаваемые вопросы
Может ли GPT-6 Astra генерировать изображения товаров?
Нет. Это текстовая модель, доступная через /v1/responses, которая не выдаёт изображения, аудио или видео. Для визуальной части карточек товаров используйте модель изображений.
Чем input отличается от массива messages, который я использовал в Chat Completions?
input — это поле запроса Responses API для реплик диалога и контента; это не прямая замена messages, поэтому клиентский код Chat Completions требует переделки, а не просто изменения имени поля.
Нужно ли отключать рассуждения для простых задач вроде генерации описаний?
Отключить их нельзя — варианта reasoning.effort=none не существует. Для коротких задач с низким риском используйте low; это самый быстрый и дешёвый из пяти уровней.
Означает ли store=false, что я потеряю историю диалога?
Нет, это означает, что платформа не хранит её за вас. Ваше приложение воспроизводит нужные ему ходы в следующем массиве input — это даёт вам контроль над тем, какой контекст включать (а также возможность обезличивать или ветвить диалоги), ценой повторной оплаты этих токенов как входных.
Можно ли получить скидку за кэширование, повторяя одну и ту же системную подсказку во многих вызовах для описаний товаров?
Не гарантируется. Попадание в кэш зависит от серверной политики и времени, а не только от буквального повторения — проверяйте cached_tokens в объекте usage ответа, а не предполагайте, что скидка обязательно применится.
Что произойдёт, если загрузить весь каталог товаров в один запрос? Если общий объём входных токенов (включая любое кэшированное содержимое) превышает 272 000, весь запрос — ввод, вывод и использование кэша — тарифицируется по ставке длинного контекста, а не только часть сверх порога. Для большинства вызовов по одному товару или одному диалогу это не применимо, но перед загрузкой большого каталога в один вызов стоит проверить количество токенов.
Похожие статьи
Все статьи →-
Руководство по использованию
Руководство по началу работы с seedream-5.0-pro/image-to-image: возможности, цены и ключевые моменты интеграции
Границы возможностей модели редактирования изображений ByteDance, принципы тарификации и практика инженерной интеграции
-
Руководство по использованию
Руководство по использованию seedream-5.0-pro text-to-image: границы возможностей, интеграция API и контроль затрат
Практический взгляд для разработчиков: от ключевых параметров до оценки стоимости $0.05 за изображение
-
Руководство по использованию
Руководство по началу работы с Hailuo 2.3 Fast для генерации видео из изображений: границы возможностей, цены и практика интеграции
Ключевые моменты выбора и интеграции модели MiniMax для генерации видео из изображений для разработчиков