Руководство
Как использовать gpt-6-astra через API hiapi: примеры запросов на curl и Python, готовые к запуску
gpt-6-astra — это текстовая модель с возможностями рассуждения, уже доступная на hiapi и вызываемая через эндпоинт, совместимый с OpenAI: /v1/responses. В этом руководстве приведены готовые к запуску примеры запросов на curl и Python, одно неочевидное требование, на котором легко споткнуться (обязательно использовать потоковую передачу), а также практические шаблоны для продакшена перед запуском.
Что вы построите
Скрипт, который отправляет подсказку в gpt-6-astra и читает ответ модели через потоковый ответ. Здесь нет ни опроса, ни идентификаторов задач — это синхронный чат-вызов, только доставляемый в виде Server-Sent Events, а не в виде блокирующего JSON-ответа.
Предварительные условия: ключ API hiapi. Получите его в консоли — каждый запрос ниже должен передавать его в заголовке Authorization.
Минимальный работающий пример
gpt-6-astra поддерживает только один эндпоинт — POST /v1/responses — и принимает только "stream": true. Независимо от того, что ещё есть в теле запроса, отправка "stream": false вернёт ошибку 400 invalid_request; у этой модели на hiapi нет непоточного режима. Проектируйте свой клиент вокруг чтения потока событий, а не вокруг одного JSON-ответа.
curl
curl -N -X POST "https://api.hiapi.ai/v1/responses" \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-astra",
"input": [
{
"type": "message",
"role": "user",
"content": [
{ "type": "input_text", "text": "Explain one practical way to check an AI-generated answer against its source." }
]
}
],
"stream": true,
"store": false,
"reasoning": { "effort": "medium" }
}'
-N отключает буферизацию вывода curl, поэтому вы увидите события сразу по мере их поступления, а не получите всё разом в конце. Тип ответа — text/event-stream, каждая строка data: представляет собой JSON-объект, а строка event: указывает его тип. Упрощённый результат запуска выглядит так:
event: response.created
data: {"type":"response.created","response":{"id":"resp_...","status":"in_progress", ...}}
event: response.output_text.delta
data: {"type":"response.output_text.delta","delta":"OK", ...}
event: response.completed
data: {"type":"response.completed","response":{"status":"completed","usage":{"input_tokens":12,"output_tokens":5,"total_tokens":17}, ...}}
Нужный вам текст поступает потоком через повторяющиеся события response.output_text.delta — объедините поля delta по порядку, чтобы получить полный ответ. response.completed несёт финальный блок usage для отслеживания затрат.
Python
import json
import requests
payload = {
"model": "gpt-6-astra",
"input": [
{
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "Explain one practical way to check an AI-generated answer against its source.",
},
],
},
],
"stream": True,
"store": False,
"reasoning": {"effort": "medium"},
}
with requests.post(
"https://api.hiapi.ai/v1/responses",
headers={
"Authorization": "Bearer sk-your-api-key",
"Content-Type": "application/json",
},
json=payload,
stream=True,
timeout=60,
) as resp:
resp.raise_for_status()
answer = []
for line in resp.iter_lines():
if not line or not line.startswith(b"data: "):
continue
event = json.loads(line[len(b"data: "):])
if event.get("type") == "response.output_text.delta":
answer.append(event["delta"])
elif event.get("type") == "response.completed":
usage = event["response"]["usage"]
print(f"\n\ntokens: {usage['input_tokens']} in / {usage['output_tokens']} out")
print("".join(answer))
resp.raise_for_status() перехватывает сбои на уровне HTTP (аутентификация, ограничения скорости) ещё до того, как вы начнёте разбирать строки SSE — некорректный поток и отклонённый запрос — это два разных режима сбоя, и в обработке ошибок их нужно различать.
В теле запроса два поля заслуживают особого упоминания:
input— это массив объектов сообщений, а не плоская строка — каждый элемент требуетtype: "message",roleи массив содержимого из типизированных частей (для простого текста —input_text).reasoning.effort(low/medium/high) необязателен, но управляет тем, сколько внутренних рассуждений модель выполняет перед ответом. Если не задать его, hiapi применит значение по умолчанию; если вы балансируете между задержкой и качеством ответа, задайте его явно.
Замечания для продакшена
- Потоковая передача не является опциональной. Не создавайте ветку кода, которая при повторной попытке откатывается к
stream: false— для этой модели она будет отказывать каждый раз. Если ваш фреймворк или SDK предполагает единственный JSON-ответ, оберните приведённый выше цикл SSE и буферизуйте объединённый текст перед передачей дальше. - Сбои аутентификации однозначны. Недействительный или отозванный ключ возвращает HTTP 401 с
"code": "permission_denied"в теле ошибки — проверяйте этот код, а не сопоставляйте строку сообщения по шаблону, поскольку строка может меняться. store: falseделает запрос не сохраняющим состояние. hiapi не сохраняет ответ на стороне сервера, поэтому в последующих вызовах нетprevious_response_idдля связывания. Если вам нужен многораундовый контекст, повторно отправляйте предыдущие раунды как дополнительные сообщенияinput, а не полагайтесь на состояние диалога на стороне сервера.- Устанавливайте клиентский таймаут независимо от потоковой передачи. Соединение SSE может зависнуть при разрыве связи, когда ни одна из сторон не отправила чистый сигнал закрытия; установка
timeoutна исходномrequests.post(как в примере выше) предотвращает застревание на первом байте, но вам также следует отслеживать максимальную длительность потока в своём коде для эшелонированной защиты. - Повторно используйте
prompt_cache_keyдля повторяющегося системного контекста. Тело ответа содержитprompt_cache_key; если вы отправляете одни и те же инструкции при каждом вызове, удержание запросов на одном и том же ключе позволяет hiapi применять кэширование подсказок вместо их повторной обработки каждый раз.
Связанные материалы
- Страница модели gpt-6-astra — полный справочник параметров и актуальные цены
- Документация по API hiapi — аутентификация, другие семейства моделей и полный список эндпоинтов
- Цены hiapi — ставки за токен для gpt-6-astra и всех других моделей
Часто задаваемые вопросы
Поддерживает ли gpt-6-astra /v1/chat/completions?
Нет. Вызов через /v1/chat/completions вернёт ошибку 400 unsupported_endpoint с предложением использовать /v1/responses. На hiapi она зарегистрирована только для Responses API.
Могу ли я получить один JSON-ответ вместо потока?
Для этой модели — нет. "stream": false отклоняется напрямую (invalid_request) независимо от того, заданы ли другие параметры. Стройте интеграцию вокруг потребления потока SSE и сборки итогового текста на клиенте, как показано выше.
Поддерживает ли gpt-6-astra вызов инструментов?
Модель принимает массив tools в структуре запроса Responses API (если не задан, в объекте ответа он отображается как пустой массив). Если вы подключаете вызов функций, определяйте свои инструменты так же, как для любой модели, совместимой с OpenAI Responses API, и следите за событием response.output_item.added с типом function_call в потоке.
Как выглядят ошибки ограничения скорости или квоты?
Как и другие ошибки hiapi, они возвращаются в формате JSON с type: "hiapi_error" и полем code, по которому можно ветвить обработку, а также request_id — при обращении в поддержку укажите этот ID, чтобы они могли отследить конкретный запрос на стороне сервера.
Могу ли я использовать ту же структуру запроса с другими моделями рассуждения на hiapi?
Структура запроса /v1/responses является общей для семейств моделей hiapi, совместимых с OpenAI Responses — достаточно заменить поле model, чтобы переключить модель. Доступность зависит от модели, поэтому перед тем как предполагать, что какая-то модель уже доступна, проверьте её собственную страницу.
Похожие статьи
Все статьи →-
Руководство
Как вызвать hailuo-2.3-fast/image-to-video через HiAPI API: практика с curl и Python
Первый рабочий запрос к быстрому и недорогому уровню генерации видео по изображению — от ID модели до загрузки MP4
-
Руководство
Как вызывать hailuo-2.3/text-to-video через API HiAPI: curl, Python и рабочие примеры запросов
-
Руководство
Использование Kandinsky 6.0 Pro для преобразования текста в видео на HiAPI: руководство по curl и Python
Практическая демонстрация с упором на запросы: построение вызова от промпта до видеоклипа, отправка запроса, опрос статуса завершения и скачивание результата