DEV Community

Cover image for GLM-5.3-Flash Vision: Enviando Imagens para um Modelo de Contexto de 1M
Lucas
Lucas

Posted on Originally published at apidog.com

GLM-5.3-Flash Vision: Enviando Imagens para um Modelo de Contexto de 1M

A maioria dos modelos de visão exige uma escolha: imagem ou muito texto. O GLM-5.3-Flash combina imagens como blocos de conteúdo com uma janela de contexto de 1.048.576 tokens na mesma solicitação.

Experimente o Apidog hoje

Isso permite enviar imagens, código, especificações extensas e instruções juntos. A seguir, veja como estruturar o payload, quais fluxos valem a pena e onde aplicar cautela.

Visão nativa no mesmo modelo

Modelos anteriores da Z.ai, como GLM-5V-Turbo e GLM-4.6V, usavam endpoints e IDs separados para visão. O GLM-5.3 roteia visão por adaptadores.

O GLM-5.3-Flash é o primeiro da série GLM-5 a aceitar imagens como entrada nativa no mesmo modelo, chamada e contexto do texto. Isso significa um ID de modelo, uma linha de cobrança, limites de taxa unificados e contexto compartilhado.

Para os modelos anteriores, consulte os guias da API GLM-5V-Turbo e GLM-4.6V.

Enviando imagens no payload

Use blocos de conteúdo tipados. Em vez de uma string, content passa a ser um array:

from openai import OpenAI
import os

client = OpenAI(
    [REDACTED CREDENTIAL],
    base_url="https://api.z.ai/api/paas/v4/",
)

response = client.chat.completions.create(
    model="glm-5.3-flash",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "What is wrong with this layout on mobile?"},
                {
                    "type": "image_url",
                    "image_url": {"url": "https://example.com/mobile-view.png"},
                },
            ],
        }
    ],
)

print(response.choices[0].message.content)

Enter fullscreen mode Exit fullscreen mode

Para imagens locais ou privadas, envie uma URL de dados em base64:

import base64
from pathlib import Path

def image_block(path: str) -> dict:
    data = base64.b64encode(Path(path).read_bytes()).decode("utf-8")
    suffix = Path(path).suffix.lstrip(".").replace("jpg", "jpeg")
    return {
        "type": "image_url",
        "image_url": {"url": f"data:image/{suffix};base64,{data}"},
    }

Enter fullscreen mode Exit fullscreen mode

Cada imagem precisa de seu próprio bloco image_url:

content = [
    {"type": "text", "text": "Image 1 is the design. Image 2 is what we built. List the differences."},
    image_block("design.png"),
    image_block("built.png"),
]

Enter fullscreen mode Exit fullscreen mode

A ordem importa: o modelo processa o array sequencialmente. Coloque o contexto antes da imagem e rotule cada uma explicitamente, especialmente em comparações.

Veja a configuração e autenticação no guia da API.

Fluxos de trabalho úteis

Depuração de capturas de tela

Envie a renderização quebrada e o código-fonte que a gerou na mesma solicitação:

content = [
    {"type": "text", "text": "This component renders incorrectly below 400px. Here is the screenshot and the source."},
    image_block("bug-mobile.png"),
    {"type": "text", "text": f"```
{% endraw %}
jsx\n{component_source}\n
{% raw %}
```"},
]

Enter fullscreen mode Exit fullscreen mode

Isso permite analisar a renderização real, sem depender de uma descrição humana do problema visual. A Z.ai posiciona esse uso para interfaces, resultados de renderização e feedback de interação.

Comparação de design

Envie o design e a implementação, depois peça diferenças. Na CI, isso pode ajudar a triar regressões visuais: uma ferramenta de diff detecta pixels alterados, enquanto o modelo indica se a alteração parece relevante.

Use o resultado como triagem, não como critério único para bloquear deploys.

Documentos e especificações extensas

A janela de 1M de tokens permite combinar uma especificação longa com um artefato renderizado:

content = [
    {"type": "text", "text": f"Specification:\n\n{spec_text}"},
    {"type": "text", "text": "Below is the generated report. Does it satisfy every requirement above? List gaps."},
    image_block("generated-report.png"),
]

Enter fullscreen mode Exit fullscreen mode

Uma especificação de 40 páginas e uma imagem no mesmo prompt não caberiam em um modelo com contexto de 128K e visão por adaptadores. As notas de lançamento da Z.ai também citam documentos de escritório e pesquisa financeira como fluxos agentivos.

Gráficos e painéis

Para extração estruturada, solicite JSON e valide-o:

content = [
    {"type": "text", "text": "Extract the series in this chart as JSON: [{label, values: [...]]. Return only JSON."},
    image_block("quarterly.png"),
]

Enter fullscreen mode Exit fullscreen mode

Valide a resposta contra um esquema. Isso detecta erros de formato, embora não detecte valores plausíveis, mas incorretos. Para extração dedicada de documentos, um especialista pode superar um generalista; veja GLM-OCR para compreensão de documentos.

Vídeo e arquivos

A documentação da Z.ai lista vídeo e arquivos usando o mesmo mecanismo de blocos de conteúdo.

Porém, suporte a vídeo é novo, pouco documentado e menos testado publicamente do que imagens. Além disso, a capacidade do modelo não garante que qualquer gateway a exponha. Teste diretamente com sua mídia e seu provedor antes de basear uma aplicação nesse recurso.

Limitações importantes

  • Valores de gráficos: o modelo pode retornar números bem formatados e errados. Quando os valores importam, obtenha-os da fonte de dados, não da imagem.
  • Texto pequeno: tabelas densas, capturas de baixa resolução e código comprimido perdem qualidade. Corte a região relevante em vez de reduzir a imagem inteira.
  • Precisão espacial: o modelo costuma identificar problemas de layout, mas não é confiável para medidas exatas, como deslocamentos de 12 pixels.
  • Referências entre imagens: várias imagens podem causar confusão de ordem. Rotule-as e mantenha a quantidade baixa quando precisão for essencial.

Essas limitações são comuns em modelos de linguagem com visão. A pontuação de 57 no Índice de Inteligência não elimina a necessidade de validar resultados antes de executá-los.

Custo

Imagens consomem tokens de entrada e não têm sobretaxa separada.

O preço de tabela é de US$ 0,15 por milhão de tokens de entrada, ou US$ 0,075 durante o desconto de lançamento até 9 de setembro de 2026. Imagens em alta resolução podem consumir muitos tokens, portanto resolução é uma alavanca direta de custo.

reasoning_effort usa max por padrão, cobrando raciocínio como tokens de saída. Para extração direta de imagens, low costuma ser suficiente e mais barato. Veja a análise de preços.

Como controlar o custo das imagens

  • Corte antes de escalar: preserve a resolução da região relevante e elimine contexto desnecessário.
  • Ajuste a resolução à pergunta: verificar um layout tolera redução; ler uma mensagem de erro pequena, não.
  • Não reenvie imagens inalteradas: em conversas com múltiplas interações, uma imagem já enviada permanece no contexto.
  • Defina reasoning_effort conscientemente: extrações simples raramente precisam de max.

Use o objeto usage da resposta para medir o consumo real de tokens por chamada.

Testando chamadas multimodais

Requisições multimodais são difíceis de testar manualmente: URLs base64 são grandes e respostas livres tornam regressões fáceis de ignorar.

Mantenha um conjunto fixo de imagens de referência e resultados esperados. Para extração estruturada, valide a resposta com um esquema em vez de apenas inspecioná-la visualmente.

Apidog ajuda a operacionalizar esses testes: salve payloads de imagem em requisições, armazene a chave como variável de ambiente e anexe asserções ao JSON retornado. Ao trocar de modelo ou após uma atualização do provedor, reexecute o conjunto para confirmar que o fluxo visual continua funcionando.

FAQ

O GLM-5.3 também suporta imagens? Não nativamente. Ele roteia visão por adaptadores separados. O Flash é multimodal nativo; veja a comparação.

Quantas imagens posso enviar por requisição? Múltiplas, cada uma em seu próprio bloco image_url. O limite prático é o orçamento de contexto.

URL ou base64? Ambos funcionam. Use URL pública para imagens hospedadas e acessíveis; use base64 para imagens locais ou privadas.

Ele aceita vídeo? A Z.ai documenta entrada de vídeo, mas o recurso é novo e pouco exercitado. Valide-o com sua própria mídia e provedor.

Imagens são cobradas de forma diferente? Não há sobretaxa. Elas consomem tokens de entrada, e a resolução afeta o custo.

Top comments (0)