Skip to content
All docs

Guides

Pictures

DeepSeek reads up to 10 pictures per request, as links or data URLs, in OpenAI’s image_url format. GLM reads text only.

Checked 26 October 2026

Send a picture

Make the message’s content a list of parts: the pictures as image_url parts and your question as a text part.

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://nokeep.ai/v1",
    api_key=os.environ["NOKEEP_API_KEY"],
)

reply = client.chat.completions.create(
    model="deepseek-v4.1-flash-uncensored",
    messages=[{
        "role": "user",
        "content": [
            {"type": "image_url", "image_url": {"url": "https://example.com/receipt.jpg"}},
            {"type": "text", "text": "What does this receipt add up to?"},
        ],
    }],
)
print(reply.choices[0].message.content)

A picture on your computer

Send it as a data URL: the file’s bytes in base64 after data:image/jpeg;base64,.

Python
import base64

with open("receipt.jpg", "rb") as f:
    url = "data:image/jpeg;base64," + base64.b64encode(f.read()).decode()

part = {"type": "image_url", "image_url": {"url": url}}

A request can be up to 12 MB. Several large pictures as data URLs pass that quickly; links keep the request small.

Limits

  • Up to 10 pictures per request, across all its messages. More is 400 too_many_images.
  • Pictures sent to glm-5.3-flash-uncensored are refused with 400 unsupported_input, which names DeepSeek. Nothing is dropped without saying so.
  • Video and audio parts are refused the same way. Neither model reads them.
  • A picture is billed as the input tokens the model reads it as.