Руководство
Как использовать Claude Opus 4.8 через hiapi API
Что вы построите
Рабочую интеграцию, которая вызывает Claude Opus 4.8 через OpenAI-совместимый Chat Completions API от hiapi — это флагманская модель в текущей линейке Claude 4.8 от Anthropic. Один запрос возвращает реальное дополнение, а также производственные режимы, которые понадобятся после того, как демо заработает (потоковая передача, вызов инструментов, адаптивное мышление).
Предварительное условие: ключ hiapi API. Получите его в консоли — это строка вида sk-..., и один и тот же ключ работает для всех включённых моделей вашей учётной записи, а не только для этой.
Всё ниже было фактически проверено на работающем API на момент написания.
Минимальный рабочий пример
Claude Opus 4.8 — это текстовая модель на стандартном эндпоинте Chat Completions, а не асинхронный процесс /v1/tasks, который hiapi использует для моделей изображений/видео/аудио. Один запрос, один ответ, без опроса.
curl https://api.hiapi.ai/v1/chat/completions \
-H "Authorization: Bearer sk-<your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-4-8",
"messages": [
{"role": "user", "content": "Review this function for edge cases and suggest a fix."}
],
"max_tokens": 1024
}'
Ответ (сокращён):
{
"id": "msg_011CfFm8abLRcYtLVSky81As",
"model": "claude-opus-4-8",
"object": "chat.completion",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "..." },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 10, "completion_tokens": 4, "total_tokens": 14 }
}
Тот же вызов на Python, только с requests:
import requests
resp = requests.post(
"https://api.hiapi.ai/v1/chat/completions",
headers={"Authorization": "Bearer sk-<your-api-key>"},
json={
"model": "claude-opus-4-8",
"messages": [
{"role": "user", "content": "Review this function for edge cases and suggest a fix."}
],
"max_tokens": 1024,
},
timeout=60,
)
resp.raise_for_status()
data = resp.json()
print(data["choices"][0]["message"]["content"])
print(data["usage"]) # prompt_tokens / completion_tokens / total_tokens
Отправляйте голый ID модели claude-opus-4-8 — без префикса провайдера, без суффикса маршрутизации. hiapi указывает для этой модели два бэкенд-маршрута (default и aws) для избыточности, но они используют один и тот же ID модели; выбирать между ними не нужно.
Поскольку формат запроса совместим с OpenAI, это также без изменений работает с официальными Python/JS SDK openai — просто укажите base_url на https://api.hiapi.ai/v1 и передайте свой ключ hiapi.
Производственные режимы
Потоковая передача
Установите "stream": true и читайте Server-Sent Events. Каждый фрагмент содержит элемент delta.content; поток завершается в последнем фрагменте с finish_reason: "stop", после чего идёт маркер [DONE]:
curl https://api.hiapi.ai/v1/chat/completions \
-H "Authorization: Bearer sk-<your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-4-8",
"messages": [{"role": "user", "content": "Count 1 to 3"}],
"stream": true,
"max_tokens": 20
}'
data: {"choices":[{"delta":{"content":"","role":"assistant"},"finish_reason":null,"index":0}]}
data: {"choices":[{"delta":{"content":"1"},"finish_reason":null,"index":0}]}
data: {"choices":[{"delta":{"content":", 2, 3"},"finish_reason":null,"index":0}]}
data: {"choices":[{"delta":{},"finish_reason":"stop","index":0}]}
data: [DONE]
Накапливайте choices[0].delta.content по фрагментам, чтобы восстановить полный текст. Финальное data-событие (после finish_reason) содержит итоговые значения usage, а не delta.
Вызов инструментов
Объявите функции так же, как в OpenAI, затем на следующем ходу повторите сообщение tool_calls ассистента и сообщения с результатами tool:
curl https://api.hiapi.ai/v1/chat/completions \
-H "Authorization: Bearer sk-<your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-4-8",
"messages": [{"role": "user", "content": "What is the status of task demo-123?"}],
"max_tokens": 200,
"tools": [{
"type": "function",
"function": {
"name": "get_task_status",
"description": "Look up a task by ID.",
"parameters": {
"type": "object",
"properties": {"task_id": {"type": "string"}},
"required": ["task_id"],
"additionalProperties": false
}
}
}],
"tool_choice": "auto"
}'
Ответ возвращается с finish_reason: "tool_calls" и содержит имя функции и JSON-кодированные аргументы в choices[0].message.tool_calls. Выполните свою функцию локально, затем в следующем запросе отправьте результат обратно как сообщение role: "tool" с совпадающим tool_call_id — модель продолжит с этого места.
Адаптивное мышление
Claude Opus 4.8 поддерживает опциональные раунды рассуждения. Добавьте "thinking": {"type": "adaptive"} и выберите уровень усилий через output_config.effort (low, medium или high — все подтверждены как рабочие):
{
"model": "claude-opus-4-8",
"messages": [{"role": "user", "content": "Compare two approaches and state the trade-offs."}],
"thinking": {"type": "adaptive"},
"output_config": {"effort": "high"}
}
Прежде чем строить на этой функции, стоит знать две вещи. Во-первых, «адаптивное» означает, что модель сама решает, заслуживает ли промпт размышления — на уровнях low и даже medium простой вопрос может вообще не вернуть поле reasoning_details, поэтому не предполагайте, что оно будет в каждом запросе. Во-вторых, в отличие от некоторых других текстовых моделей на hiapi, Opus 4.8 не возвращает читаемую человеком цепочку рассуждений: элементы reasoning.text в массиве reasoning_details возвращаются пустыми, заполняются только элементы signature. Считайте reasoning_details непрозрачным состоянием продолжения — если вы переносите сессию в последующие вызовы инструментов, передавайте его как есть — и не разбирайте его и не показывайте пользователю.
Обработка ошибок
Ошибка аутентификации возвращает HTTP 401 с конвертом hiapi_error:
{
"error": {
"code": "permission_denied",
"message": "This API key is invalid. Check that it is correct or use another API key and try again.",
"type": "hiapi_error"
}
}
Проверяйте response.status_code перед обращением к response.json()["choices"], а при необходимости эскалации логируйте error.request_id — команда поддержки сможет отследить конкретный вызов.
Идемпотентность и повторные попытки
Вызовы Chat Completions, в отличие от задач /v1/tasks, не идемпотентны по ID запроса — повторный запрос это новое дополнение и новая тарификация. Для производственного трафика оберните в своём коде логику повторных попыток с экспоненциальной задержкой для случаев 5xx/таймаутов и ограничьте max_tokens, чтобы шторм повторов (или долго выполняющиеся вызовы адаптивного мышления) не приводил к неограниченным расходам.
Связанные материалы
- Claude Opus 4.8 на hiapi — актуальные цены и карточка модели.
- Аутентификация — как работают ключи hiapi API и как их ротировать.
- Как использовать Claude Sonnet 4.6 через hiapi API — та же схема интеграции для более экономичной линейки Claude на hiapi, если вашим задачам не нужна такая мощная модель, как Opus 4.8.
- Цены hiapi — актуальные ставки за токен для Claude Opus 4.8 и всех других включённых моделей.
Часто задаваемые вопросы
Является ли claude-opus-4-8 точным ID модели, который нужно отправлять?
Да — отправьте голую строку claude-opus-4-8 в поле model. Не нужен ни префикс провайдера, ни суффикс маршрутизации; hiapi внутренне разрешает её в правильный бэкенд-маршрут.
Используется ли здесь тот же процесс /v1/tasks, что и для моделей изображений и видео hiapi?
Нет. Текстовые модели, такие как Claude Opus 4.8, используют синхронный эндпоинт POST /v1/chat/completions — один запрос, один ответ (или один SSE-поток). /v1/tasks применяется только к медиамоделям (изображения, видео, аудио), которые работают асинхронно и возвращают URL для опроса или колбэк.
Могу ли я использовать OpenAI SDK вместо сырых curl/requests?
Да. Поскольку эндпоинт совместим с OpenAI, укажите base_url официального SDK openai на https://api.hiapi.ai/v1 и используйте свой ключ hiapi как api_key — для базового чата, потоковой передачи или вызова инструментов никаких других изменений в коде не требуется.
Что выбрать: Opus 4.8 или Sonnet 4.6? Opus 4.8 — более способный и дорогой уровень; выбирайте его для более сложных задач рассуждения, программирования или агентных сценариев, когда точность важнее задержки или стоимости за токен. Для высоконагруженного трафика или трафика, чувствительного к задержке, Claude Sonnet 4.6 предлагает ту же форму API по более низкой цене.
Всегда ли thinking возвращает видимую цепочку рассуждений?
Ни в одном из смыслов: адаптивное мышление может полностью пропустить рассуждение для запросов, признанных простыми, а когда оно действительно размышляет, reasoning_details у Opus 4.8 в настоящее время возвращает пустые текстовые поля — заполняется только signature. Не создавайте интерфейс, предполагающий, что читаемая цепочка присутствует всегда.
Где посмотреть текущие цены перед запуском больших пакетов? На странице цен hiapi перечислены актуальные ставки за токен для Claude Opus 4.8 — проверьте её перед бюджетированием, так как в этой статье не зашиты жёстко потенциально устаревшие цифры.
Похожие статьи
Все статьи →-
Руководство
Как вызвать 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
Практическая демонстрация с упором на запросы: построение вызова от промпта до видеоклипа, отправка запроса, опрос статуса завершения и скачивание результата