Руководство
HiAPI invalid_request: как исправить неверно выбранный интерфейс модели?
Сверьте model ID, поддерживаемые точки входа и тело запроса, различайте ошибки интерфейса, параметров и ключа; приложен код диагностики только для чтения.
Кратко
invalid_request — это ошибка класса запроса. Неверно выбранный интерфейс — одна из возможных причин, но также нужно проверить тело запроса и model ID с учётом сообщения об ошибке. Сначала сверьте поддерживаемые моделью точки входа, затем формируйте поля в соответствии с этой точкой входа.
Перед запуском примера на Python выполните в том же окружении Python python -m pip install requests.
Как выбрать одну из трёх точек входа
Ниже приведены три часто используемые точки генерации в HiAPI; какие точки входа поддерживает конкретная модель, смотрите на её странице модели и в публичном каталоге моделей.
| Точка входа | Ключевые поля тела запроса | Назначение |
|---|---|---|
/v1/tasks |
model + input |
Задачи изображений, видео, аудио |
/v1/chat/completions |
model + messages |
Модели, поддерживающие протокол чата |
/v1/responses |
model + input |
Модели, поддерживающие Responses |
Значения task, openai, openai-response в supported_endpoint_types соответствуют трём точкам входа выше. В каталоге могут встречаться и другие типы протоколов; при встрече с не указанным типом откройте документацию по подключению этой модели.
Только чтение: проверка поддерживаемых моделью точек входа
Задайте HIAPI_MODEL как полный model ID со страницы модели и запустите следующий скрипт. Он только читает публичный каталог и не отправляет задачи генерации.
import os
import requests
model_id = os.environ["HIAPI_MODEL"]
response = requests.get("https://api.hiapi.ai/api/pricing", timeout=30)
response.raise_for_status()
models = response.json()["data"]
model = next((m for m in models if m.get("model_name") == model_id), None)
if model is None:
raise SystemExit("Model not present in the public catalog; check its exact model ID")
print("model:", model["model_name"])
print("supported_endpoint_types:", model.get("supported_endpoint_types", []))
Четыре шага исправления запроса
- Проверьте домен и путь фактического запроса, убедитесь, что Base URL не содержит повторно добавленного
/v1. - Сверьтесь с полным ID и поддерживаемыми точками входа на странице модели; отображаемое имя не может напрямую заменять API model ID.
- Скорректируйте тело запроса:
messagesчата нельзя копировать в интерфейс задач как есть; параметры задачи должны находиться внутриinput. - Перечитайте возвращённый HTTP-статус и поля ошибки; если сбой сохраняется, зафиксируйте ID запроса, model ID, путь интерфейса и очищенное от чувствительных данных тело запроса.
Различие ошибок интерфейса, параметров и ключа
| Симптом | Следующий шаг |
|---|---|
| 400, сообщение о недопустимом запросе | Проверьте интерфейс, JSON, обязательные поля и типы полей |
| Явное сообщение о неподдержке текущего протокола | Используйте точку входа, поддерживаемую по объявлению модели |
| 401, ключ недействителен или отсутствует | Проверьте заголовок Bearer и переменные окружения во время выполнения |
Интерфейс задач возвращает MODEL_UNAVAILABLE |
Проверьте model ID, статус доступности и права доступа аккаунта |
Ответ об отказе интерфейса задач может содержать error_code верхнего уровня; другие точки входа могут использовать error.code. Не определяйте все ошибки только по одному полю.
Частые вопросы
invalid_request обязательно означает неверно выбранный интерфейс?
Не обязательно. Поля запроса, JSON или отсутствие обязательных элементов также могут привести к отклонению запроса. Сначала прочитайте message, затем проверьте точку входа.
Достаточно ли изменить только URL?
Нужно также скорректировать тело запроса в соответствии с соответствующим интерфейсом. Структуры messages и input интерфейса задач различаются.
Что делать, если модели нет в публичном каталоге?
Сверьте полный ID, страницу модели и область видимости аккаунта; не заменяйте автоматически на модель с похожим названием.
Генерирует ли этот проверочный код контент?
Нет. Код только читает публичный каталог; процесс задачи запускается только при фактической отправке запроса генерации.
Продолжить диагностику
Похожие статьи
Все статьи →-
Руководство
Примеры Recraft Creative Upscale: увеличение пейзажей и акварели
Посмотрите изменения текстур деревянного дома, озера и акварельного городка, отличите полный результат от предпросмотра и проверьте перерисованные детали.
-
Руководство
Недействительный ключ OpenAI API: 401, переменные окружения и проверка конфигурации проекта
Различайте OpenAI 401, 403 и 429, проверяйте переменные окружения, настройки организации и проекта, а также проверяйте учётные данные запросом только на чтение.
-
Руководство
Kling 4.0: полный набор промптов — 6 сценариев, которые можно скопировать и сразу получить видео
Товары для электронной коммерции, еда, пейзажи путешествий, бытовые зарисовки, пустые кадры со звуком и видео из изображения — для каждого сценария есть реальное готовое видео, полный промпт и ссылка с автозаполнением.