Vision

诺玛AI supports visual input for multimodal models, letting you analyze images, screenshots, documents, and video content.

Supported models#

Model

Image

Video

Notes

`openai/gpt-4o`

High-quality image analysis

`openai/gpt-4o-mini`

Fast image analysis

`anthropic/claude-sonnet-4.6`

Strong document and code understanding

`google/gemini-pro-compatible-flash-lite-preview`

All-around multimodal

`google/gemini-pro-compatible-pro-preview`

Strongest multimodal reasoning

Image analysis#

Send an image by URL

cURL

Code
curl https://as.apinoma.com/v1/chat/completions \
  -H "Authorization: Bearer $APINOMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "Describe the contents of this image"},
        {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
      ]
    }]
  }'

Python

TypeScript

Send an image as Base64

Suitable for local files or screenshots:

Image detail level#

Control the analysis precision via the `detail` parameter:

Value

Notes

Use case

`auto`

Automatic (default)

General scenarios

`low`

Low precision, faster

Simple classification, label recognition

`high`

High precision, more detailed

Document OCR, detail analysis

Code
{
    "type": "image_url",
    "image_url": {
        "url": "https://example.com/document.jpg",
        "detail": "high"  # High-precision mode
    }
}

Comparing multiple images#

You can send multiple images in a single request:

Code
response = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "Compare the differences between these two images"},
            {"type": "image_url", "image_url": {"url": "https://example.com/before.jpg"}},
            {"type": "image_url", "image_url": {"url": "https://example.com/after.jpg"}}
        ]
    }]
)

Vision input with the Anthropic protocol#

Code
import anthropic
 
client = anthropic.Anthropic(
    base_url="https://as.apinoma.com/anthropic",
    api_key="<YOUR APINOMA_API_KEY>"
)
 
message = client.messages.create(
    model="anthropic/claude-sonnet-4.6",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "image",
                "source": {
                    "type": "base64",
                    "media_type": "image/jpeg",
                    "data": image_data
                }
            },
            {"type": "text", "text": "Describe this image"}
        ]
    }]
)

Common use cases#

  • Document OCR — extract text and tables from images
  • Code screenshot analysis — analyze code in a screenshot and suggest changes
  • UI review — analyze interface design and layout
  • Chart interpretation — analyze data charts and visualizations
  • Product recognition — recognize objects and scenes in images

Last updated on June 23, 2026