Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.crazyrouter.com/llms.txt

Use this file to discover all available pages before exploring further.

Vision via Chat

POST /v1/chat/completions
В продакшене Crazyrouter проверена работа image_url в стиле OpenAI на основных визуальных моделях:
  • gpt-4o, gpt-4o-mini, gpt-4.1, gpt-5.4 и другие визуальные модели OpenAI
  • Поддерживаются как data URL data:image/...;base64,..., так и публичные https:// URL
  • message.content сейчас возвращается обычной строкой
Рекомендуемый порядок: для локальных файлов сначала вызывайте эндпоинт загрузки изображений, чтобы получить временный URL media.crazyrouter.com, затем передавайте его в image_url; либо сразу отправляйте base64 data URL. Удалённые публичные URL тоже работают, но должны удовлетворять условиям ниже.

Через base64 data URL (самый надёжный путь)

curl https://crazyrouter.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [
      {
        "role": "user",
        "content": [
          {"type": "text", "text": "What color is this image?"},
          {
            "type": "image_url",
            "image_url": {
              "url": "data:image/png;base64,iVBORw0KGgoAAA..."
            }
          }
        ]
      }
    ],
    "max_tokens": 100
  }'
Пример ответа:
{
  "model": "gpt-4o-mini",
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "Red."
      }
    }
  ]
}

Через удалённый https URL

curl https://crazyrouter.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [
      {
        "role": "user",
        "content": [
          {"type": "text", "text": "Describe in 5 words."},
          {
            "type": "image_url",
            "image_url": {
              "url": "https://www.gstatic.com/webp/gallery/1.jpg"
            }
          }
        ]
      }
    ],
    "max_tokens": 40
  }'

Ограничения удалённых URL

URL должен быть доступен с серверов Crazyrouter, а не просто открываться в браузере. Типичные причины ошибок:
СбойПричинаРешение
Домен не резолвитсяПриватный/некорректный адресИспользовать публичный https URL
403 ForbiddenНекоторые CDN (wikimedia, приватные S3) блокируют серверный UA или требуют RefererИспользовать эндпоинт загрузки или base64
Content-Type не image/*URL возвращает HTML или редирект на страницу логинаУбедиться, что это прямая ссылка на изображение
Файл больше 20MBЛимит на размер одного файлаСжать или обрезать
Если видите ошибку Unable to process the image you provided. Please verify the image URL is publicly accessible, or upload it as base64., значит URL недоступен серверу — пройдитесь по таблице выше.

Рекомендуемый подход

  • Для внутренних ассетов, приватных и непроверенных по доступности изображений: сначала вызовите POST /v1/files/uploads и получите 72-часовой URL media.crazyrouter.com/..., затем передайте его в image_url
  • Для маленьких (< 1MB) и одноразовых изображений: отправляйте base64 data URL напрямую, экономя один лишний запрос
  • Несколько изображений, параметр detail и другие продвинутые опции: апстрим OpenAI это поддерживает, передавайте по официальной спецификации OpenAI