Руководство по использованию
Исправление ошибки "Model Not Found" (model_not_found) в OpenAI-совместимом интерфейсе HiAPI
Симптомы проблемы
Когда вы вызываете OpenAI-совместимый интерфейс HiAPI (POST /v1/chat/completions), а переданный model id не распознаётся или не может быть маршрутизирован HiAPI, интерфейс возвращает HTTP 400, а в теле ответа содержится код ошибки model_not_found, выглядящий так:
{
"error": {
"message": "The requested model does not exist or is not available. Check the exact model ID with GET /v1/models and try again. If the issue persists, contact support with request ID: ...",
"type": "hiapi_error",
"code": "model_not_found",
"request_id": "..."
}
}
Обратите внимание: это не то же самое, что «проблема с ключом». Если ваш API key недействителен или истёк, HiAPI возвращает HTTP 401 + permission_denied, а не model_not_found:
{
"error": {
"code": "permission_denied",
"message": "This API key is invalid. Check that it is correct or use another API key and try again. If the issue persists, contact support with request ID: ...",
"type": "hiapi_error",
"request_id": "..."
}
}
Если видите permission_denied, сначала исправляйте ключ, а model id не трогайте. Далее речь пойдёт только о model_not_found.
Распространённые причины
Отсортированы по фактической вероятности от высокой к низкой:
Опечатка / ошибка в регистре model id, либо скопированный slug из адресной строки веб-страницы. model id чувствителен к регистру и часто содержит точки, дефисы, слэши (например,
seedream-5.0-lite, а неseedream-5-0-lite). Копирование slug страницы модели из адресной строки браузера и использование его в качестве id — самый частый источник этой ошибки: короткий slug в URL страницы модели не обязательно совпадает с реальным API id.Эта модель вовсе не является диалоговой, она работает через другой интерфейс. Большинство моделей изображений / видео / аудио в HiAPI поддерживают только асинхронный интерфейс задач
POST /v1/tasks; а такие推理-модели, какgpt-5.6/gpt-6, поддерживают толькоPOST /v1/responses. Если отправить их на/v1/chat/completions, интерфейс отклонит запрос сinvalid_request(HTTP 400):{ "error": { "message": "The request is incomplete or incorrectly formatted. Please check it and try again...", "type": "hiapi_error", "param": "", "code": "invalid_request", "request_id": "..." } }Каждая модель, возвращаемая
GET /v1/models, содержит полеsupported_endpoint_types, и именно оно является единственным основанием для ответа на вопрос «какой интерфейс использовать для этой модели» (см. ниже).Модель выведена из эксплуатации или переименована. id написан абсолютно верно, но её уже нет в текущем списке
/v1/models— старые id из заметок и кэша могли устареть.Проблема с ключом / правами ошибочно принята за проблему с моделью. При недействительном ключе аккаунта возвращается
permission_denied(401), а неmodel_not_found(400). Сначала по коду ошибки определите категорию, затем исправляйте по существу.
Шаги исправления
Сначала получите актуальный список и точный id: с вашим ключом вызовите
GET https://api.hiapi.ai/v1/models. Это живой каталог, и именно туда сообщение об ошибке велит вам свериться — его авторитет выше любого жёстко прописанного id в вашем коде или заметках.По
supported_endpoint_typesопределите интерфейс. Каждая запись модели выглядит так:{ "id": "gpt-image-2/text-to-image", "object": "model", "owned_by": "custom", "supported_endpoint_types": ["task"] }task→ используйте асинхронныйPOST /v1/tasks, нельзя использовать chat/completions;openai→ используйтеPOST /v1/chat/completions(именно об этой ветке идёт речь в статье);openai-response→ используйтеPOST /v1/responses.
Отправьте запрос заново с id, буквально совпадающим с тем, что в списке. Мультизадачные модели в списке имеют суффикс типа задачи (например,
/text-to-image,/image-to-video), используйте полный id, как написано в списке, а не голый slug из URL страницы модели.Правильно выберите интерфейс: если тип
task— переходите на/v1/tasks, если типopenai-response— переходите на/v1/responses. Смена интерфейса решает проблему за один раз лучше, чем повторные попытки с id на chat/completions.Если код ошибки на самом деле
permission_denied(401), проблема в вашем ключе, а не в model id — отдельно сбросьте или замените API key.
Минимальный пример проверки
При диагностике этой ошибки первая команда всегда GET /v1/models — она бесплатна, без побочных эффектов и за один раз проверяет две вещи: работает ли ключ, существует ли этот id и какой интерфейс использовать.
curl -s https://api.hiapi.ai/v1/models \
-H "Authorization: Bearer $HIAPI_API_KEY"
- Возвращает
200+ список моделей → ключ в порядке, далее сверьте id и егоsupported_endpoint_typesв списке; - Возвращает
401+permission_denied→ проблема с ключом, сначала исправьте ключ.
Убедившись, что модель имеет тип task, правильный способ вызова — единый интерфейс задач (model можно указывать голым id, маршрутизация работает и без суффикса типа задачи):
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"input": { "prompt": "a red apple on a white table" }
}'
Обратите внимание: как только /v1/tasks принимает запрос, он реально создаёт платную задачу и возвращает taskId, поэтому это «официальный вызов после исправления», а не способ мимоходом проверить связность — для чистой проверки связности используйте приведённый выше GET /v1/models. Если id недоступен, ошибка /v1/tasks имеет другую плоскую структуру (отличную от chat/completions):
{ "code": 400, "data": null, "error_code": "MODEL_UNAVAILABLE", "message": "model not available via /v1/tasks" }
Связанные внутренние ссылки
- Документация Chat Completions API — справочник по полным запросам / ответам и поведению ошибок OpenAI-совместимого интерфейса.
- Документация по обзору моделей — узнайте о каталоге моделей и о том, как найти точный id.
- Документация API создания задач — справочник по полям
model,input,callbackдля/v1/tasks. - Маркетплейс моделей — просмотрите все доступные модели.
- Страница тарифов — проверьте доступность моделей и актуальные цены.
FAQ
Вопрос: Я скопировал id прямо из URL страницы модели, почему он не работает?
Ответ: В URL страницы модели обычно находится короткий slug, а реальный API id (особенно у мультизадачных моделей) имеет суффикс типа задачи, например gpt-image-2/text-to-image. Ориентируйтесь на id, возвращаемый GET /v1/models, а не на адресную строку браузера.
Вопрос: GET /v1/models/{id} для несуществующего id вдруг вернул HTTP 200 — это баг?
Ответ: Нет. Интерфейс запроса одной модели возвращает 200 даже если id не существует, но в теле ответа находится структура invalid_request_error / model_not_found, а не статус-код 404/400. Для этого интерфейса не смотрите только на HTTP статус-код, смотрите на body. Поведение интерфейса списка GET /v1/models и /v1/chat/completions описано выше.
Вопрос: Я направил OpenAI SDK на HiAPI и получаю model_not_found — это проблема на стороне OpenAI?
Ответ: Нет. Как только base_url OpenAI-совместимого SDK указывает на HiAPI, разрешение моделей полностью находится в ведении HiAPI. model_not_found означает, что HiAPI не смог сопоставить переданный вами id с зарегистрированной моделью — исправляйте по шагам выше.
Вопрос: Как быстро определить, какой интерфейс использовать для модели?
Ответ: Смотрите supported_endpoint_types модели в GET /v1/models: если содержит task — используйте POST /v1/tasks, если содержит openai — используйте POST /v1/chat/completions, если содержит openai-response — используйте POST /v1/responses.
Вопрос: Коды ошибок /v1/tasks и /v1/chat/completions одинаковы?
Ответ: Нет. /v1/chat/completions использует строчные code (например, model_not_found, invalid_request), обёрнутые в {"error": {...}}; /v1/tasks использует заглавный error_code (например, MODEL_UNAVAILABLE) в плоской структуре {"code","message","data","error_code"}. При написании обработки ошибок для двух интерфейсов не предполагайте, что один набор подойдёт для обоих.
Похожие статьи
Все статьи →-
Руководство по использованию
Руководство по началу работы с seedream-5.0-pro/image-to-image: возможности, цены и ключевые моменты интеграции
Границы возможностей модели редактирования изображений ByteDance, принципы тарификации и практика инженерной интеграции
-
Руководство по использованию
Руководство по использованию seedream-5.0-pro text-to-image: границы возможностей, интеграция API и контроль затрат
Практический взгляд для разработчиков: от ключевых параметров до оценки стоимости $0.05 за изображение
-
Руководство по использованию
Руководство по началу работы с Hailuo 2.3 Fast для генерации видео из изображений: границы возможностей, цены и практика интеграции
Ключевые моменты выбора и интеграции модели MiniMax для генерации видео из изображений для разработчиков