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.
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)
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}"},
}
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"),
]
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 %}
```"},
]
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"),
]
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"),
]
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_effortconscientemente: extrações simples raramente precisam demax.
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)