HiAPI
Блог

Руководство

Как использовать Claude Sonnet 4.6 через hiapi API

Sep 17, 2026
Как использовать Claude Sonnet 4.6 через hiapi API

Что вы создадите

Рабочий пример интеграции: вызов Claude Sonnet 4.6 через совместимый с OpenAI Chat Completions API от hiapi — один запрос возвращает реальный результат дополнения, а также охватывает production-паттерны, которые вы действительно будете использовать после того, как демо заработает (потоковый вывод, вызов инструментов, адаптивное мышление).

Предварительные требования: ключ hiapi API. Получите его в консоли — это просто строка sk-..., один и тот же ключ работает для всех включённых моделей вашей учётной записи, а не только для этой.

Всё ниже в этой статье было проверено на работающем API в момент написания.

Минимальный рабочий пример

Claude Sonnet 4.6 — это текстовая модель на стандартном эндпоинте 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-sonnet-4-6",
    "messages": [
      {"role": "user", "content": "Explain how an HTTP cache works in three short paragraphs."}
    ]
  }'

Ответ (сокращённо):

{
  "id": "msg_bdrk_011Cf8Bo25qCVFFQF5ETk8Wf",
  "model": "claude-sonnet-4-6",
  "object": "chat.completion",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "..." },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": 13, "completion_tokens": 4, "total_tokens": 17 }
}

Тот же вызов на Python с единственной зависимостью requests:

import requests

resp = requests.post(
    "https://api.hiapi.ai/v1/chat/completions",
    headers={"Authorization": "Bearer sk-<your-api-key>"},
    json={
        "model": "claude-sonnet-4-6",
        "messages": [
            {"role": "user", "content": "Explain how an HTTP cache works in three short paragraphs."}
        ],
    },
    timeout=60,
)
resp.raise_for_status()
data = resp.json()
print(data["choices"][0]["message"]["content"])
print(data["usage"])  # prompt_tokens / completion_tokens / total_tokens

Поскольку структура совместима с OpenAI, этот код без изменений работает и с официальным Python/JS SDK openai — достаточно указать base_url как https://api.hiapi.ai/v1 и передать свой ключ hiapi.

Production-паттерны

Потоковый вывод

Установите "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-sonnet-4-6",
    "messages": [{"role": "user", "content": "Count 1 to 3"}],
    "stream": true
  }'
data: {"choices":[{"delta":{"content":"","role":"assistant"},"finish_reason":null,"index":0}]}

data: {"choices":[{"delta":{"content":"Here"},"finish_reason":null,"index":0}]}

data: {"choices":[{"delta":{"content":" you"},"finish_reason":null,"index":0}]}

data: {"choices":[{"delta":{},"finish_reason":"stop","index":0}]}

data: [DONE]

Накопив choices[0].delta.content по всем блокам, вы восстановите полный текст.

Вызов инструментов

Объявите функции так же, как в 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-sonnet-4-6",
    "messages": [{"role": "user", "content": "What is the status of task demo-123?"}],
    "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 Sonnet 4.6 поддерживает включаемый по требованию этап рассуждения. Добавьте "thinking": {"type": "adaptive"} и выберите уровень усилия через output_config.effort (low, medium, high или max):

{
  "model": "claude-sonnet-4-6",
  "messages": [{"role": "user", "content": "Compare two approaches and state the trade-offs."}],
  "thinking": {"type": "adaptive"},
  "output_config": {"effort": "high"}
}

Читаемая трасса рассуждений возвращается через choices[0].message.reasoning_content; исходный массив 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 запроса — повторный запрос это новое дополнение. Для production-трафика оберните вызов в собственные повторные попытки с backoff, обрабатывая 5xx/тайм-ауты, и задайте ограничение max_tokens, чтобы шторм повторных попыток не привёл к неограниченному счёту.

См. также

  • Справочник по модели Claude Sonnet 4.6 — полная таблица параметров, схема ответа и другие примеры запросов непосредственно из документации hiapi.
  • Аутентификация — как работают ключи hiapi API и как их ротировать.
  • Цены hiapi — актуальные ставки за токен для Claude Sonnet 4.6 и всех остальных включённых моделей.

Частые вопросы

claude-sonnet-4-6 — это точный ID модели, который нужно отправлять? Да — отправляйте в поле model строку без префикса claude-sonnet-4-6. hiapi за совместимым с OpenAI интерфейсом маршрутизирует её в Claude Sonnet 4.6 от Anthropic, поэтому никакой префикс провайдера не нужен.

Используется ли здесь тот же процесс /v1/tasks, что и для моделей изображений и видео hiapi? Нет. Текстовые модели вроде Claude Sonnet 4.6 используют синхронный эндпоинт POST /v1/chat/completions — один запрос, один ответ (или один поток SSE). /v1/tasks применяется только к медиамоделям (изображения, видео, аудио), которые работают асинхронно и возвращают URL для опроса или callback.

Можно ли использовать OpenAI SDK вместо нативных curl/requests? Да. Поскольку эндпоинт совместим с OpenAI, достаточно указать base_url официального SDK openai как https://api.hiapi.ai/v1 и передать свой ключ hiapi как api_key — для базового чата, потокового вывода или вызова инструментов другие изменения кода не нужны.

Поддерживает ли Claude Sonnet 4.6 ввод изображений? Да, через блоки содержимого — задайте content сообщения как массив, содержащий блок с type: "image_url", где image_url.url указывает на публичный URL изображения, рядом с вашими текстовыми блоками.

Что будет, если опустить thinking? Согласно текущей версии, адаптивное мышление включается по требованию — опустите поле thinking (или установите thinking.type в disabled), и модель ответит сразу, без reasoning_content в ответе.

Где посмотреть текущие цены перед запуском больших пакетных задач? На странице цен hiapi перечислены актуальные ставки за токен для Claude Sonnet 4.6 — проверьте их перед планированием бюджета, так как ставки могут меняться, а эта статья не фиксирует число, которое может устареть.

Похожие статьи

Все статьи →

Начните работать с постоянными артефактами ИИ

Получите API-ключ и вызывайте модели изображений, видео и аудио через один API на основе tasks.

Читать документацию API