GLM-5.3-FlashVision:将图像发送到1M-Context模型

大多数视觉模型要求您选择。您可以发送图像,也可以发送大量文本,但擅长其中一项的模型很少是擅长另一项的模型。GLM-5.3-Flash不会让你选择。它接受图像作为1、048、576-token上下文窗口内的内容块,与其他所有内容的请求相…

用 Apifox,节省研发团队的每一分钟

GLM-5.3-FlashVision:将图像发送到1M-Context模型

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

大多数视觉模型要求您选择。您可以发送图像,也可以发送大量文本,但擅长其中一项的模型很少是擅长另一项的模型。

GLM-5.3-Flash不会让你选择。它接受图像作为1、048、576-token上下文窗口内的内容块,与其他所有请求相同。这种组合,本机图像输入加上一百万个room 令牌,打开了这两种功能本身都无法实现的工作流程。

本指南涵盖了有效负载、值得构建的工作流程以及尚未经过验证的部分。

AI Coding 交流群

如果你也在用 AI 写代码,或者正在研究 Cursor、Claude Code 这些工具,欢迎加入以下交流群。群里平时会聊一些 AI 编程的实际用法、开发工作流,还有各种新工具和新玩法。

本机的,不基于适配器的

Z.ai早期的视觉作品作为单独的模型发布。GLM-5V-Turbo和GLM-4.6V是具有不同模型 ID 的不同端点,使用它们意味着将图像流量路由到文本流量以外的其他地方。GLM-5.3是该模型的较大兄弟,通过适配器路由视觉,而不是本地处理它。

GLM-5.3-Flash是GLM-5系列中的第一个模型,其中图像是同一模型的一流输入,在同一调用中,共享同一上下文。

实际上,这意味着一个型号 ID、一条计费行、一组费率 limit,最重要的是,一个上下文窗口同时包含您的图像和文本。如果您在旧路径上维护某些内容, 我们的GLM-5V-TurboAPI指南GLM-4.6V指南 涵盖这些模型。

有效载荷

图像输入通过键入的内容块进行。而不是 content 作为一个字符串,它变成一个数组:

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ["ZAI_API_KEY"],
    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)

对于本地或私有镜像,使用base64数据URL:

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}"},
    }

多个图像意味着多个块。URLs没有快捷方式数组:

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"),
]

顺序很重要。该模型按顺序读取数组,因此将框架文本放在它引用的图像之前,并在发送多个图像时明确标记图像。 “图像1就是设计”为模型提供了一些锚定其答案的东西。

基本设置和身份验证包含在 我们的API指南.

值得构建的工作流程

截图调试

显而易见的一个,也是一个 Z.ai 靠着。它自己的材料描述了观察“界面、渲染结果和交互反馈”的模型,这是一种编码代理框架,而不是照片描述框架。

在同一请求中发送损坏的渲染和生成它的源:

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"```jsx\n{component_source}\n```"},
]

该模型对实际渲染进行推理,而不是对它的描述进行推理。这消除了大多数前端调试对话中最有损耗的步骤,即人类将视觉问题翻译成文字。

设计比较

两张图片和一个问题。在 CI 中作为视觉回归的软检查很有用,其中差异工具告诉您像素发生了变化,模型告诉您变化是否重要。

对可靠性要现实一些。比较屏幕截图的模型是一个判断调用,而不是一个 assertion。使用它来分类人们应该查看哪些差异,而不是单独控制部署。

文档及其规格

这就是1M上下文发挥作用的地方。在提示中以文本形式放置长规格,以图像形式放置渲染的工件,然后询问他们是否同意。

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"),
]

您无法在具有128K窗口和基于适配器的视觉的模型上执行40-page规范和一个提示中的图像。这就是实际的新功能。

Z.ai的发行说明还提到办公文档和金融研究工作流程作为模型代理行为的目标。

图表和仪表板

读取图表图像并返回结构化数据是标准的提取任务。请求JSON并验证它:

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

根据模式验证输出而不是信任它。图表读取正是模型自信地生成错误数字的任务,而结构验证即使无法捕获值错误,也可以捕获形状错误。

对于专门的文档提取,专家仍然可能击败通才。 GLM-OCR用于文档理解 覆盖了那条路。

视频和文件

Z.ai的文档使用相同的内容块机制列出了视频和文件输入以及图像。

对此要小心。与许多人现在已经运行的图像输入相比,此模型中的视频支持是新的、文档很少、并且在公共场合很少使用。提供商支持也各不相同:模型功能与您通过哪个网关调用的可用功能不同。

如果视频对您的应用程序很重要,请在围绕它进行设计之前直接针对您自己的媒体和提供商进行测试。不要将功能表中的一行视为工作特征。

跌倒的地方

原生多模态与可靠多模态不同。在发货之前,有四种故障模式值得了解。

图表中的可信数字。 从绘制的线上读取值是最有可能产生流畅、格式精确、错误答案的任务。模式验证捕获格式错误的输出;它无法捕捉到一个看似合理但根本不正确的数字。如果数字很重要,请从基础数据而不是图片中获取它们。

小文字。 密集的 UI 屏幕截图、低分辨率捕获的表格以及 compressed 图像中的代码都会降级。缩小规模以节省代币会使情况变得更糟,因此成本杠杆和准确性之间存在直接的紧张关系。裁剪到感兴趣的区域,而不是缩小整个框架。

空间精度。 模型很好地描述了布局,但却很糟糕地衡量它。 “按钮与输入重叠”通常是正确的。 “按钮是12像素太左​​”通常不是。

顺序和引用混乱。 如果一个请求中有多个图像,模型可能会将细节归因于错误的图像。在文本块中明确标记它们,并在精度很重要时保持较低的计数。

这些都不是GLM-5.3-Flash独有的。它们是视觉语言模型的标准limit,57Intelligence Index分数也不例外。设计工作流程,以便发现错误答案而不是采取行动。

成本

图像消耗上下文令牌并作为输入计费。没有单独的图像附加费。

标价为每百万输入代币0.15美元,或在 9 月9、2026期间推出折扣期间 $0.075。高分辨率图像消耗大量的令牌,因此分辨率是一个成本杠杆:发送前缩小尺寸,除非请求的重点是细节。

reasoning_effort 默认为 max,它将推理记为输出标记。为了从图像中直接提取, low 通常是正确的设置并且物质上更便宜。 我们的定价细目 覆盖两个杠杆。

控制形象成本

图像作为输入令牌进行计费,因此分辨率是直接的成本杠杆,并且明显的优化与上面的准确性注释相冲突。

可行的操作顺序:

  1. 在缩放之前进行裁剪。 以全分辨率发送相关区域优于以一半分辨率发送整个屏幕。您会丢失模型不需要的上下文并保留它所需的细节。
  2. 将解决方案与问题相匹配。 “布局坏了?”经受住了激进的缩小规模。 “这个错误信息说明了什么?”没有。
  3. 不要重新发送未更改的图像。 在多轮对话中,发送一次的图像已经在上下文中。每回合重新连接它都会付出代价。
  4. reasoning_effort 故意地。 它默认为 max,并推理账单作为输出。直接提取很少需要它。

usage 每个响应上的对象都会为您提供每次调用的真实令牌计数,这是找出图像实际成本而不是从其文件大小猜测的唯一方法。

测试多模式呼叫

手动测试多模式请求并不令人愉快。base64数据URL有数千个字符,这使得 curl命令不可读并且实际上无法通过编辑重新运行。响应是自由格式的文本,因此很容易错过回归。

有两个习惯会有所帮助。保留一小组固定的参考图像和预期答案,以便您可以判断行为何时发生变化。并根据模式验证结构化提取,而不是目测它。

Apifox 这是一个实用的家。将图像有效负载存储在已保存的请求中,而不是 shell 命令中,将API key保留为环境变量,并将 assertions 附加到提取提示返回的JSON上。当您切换模型或提供商更新某些内容时,重新运行套件会告诉您视觉路径是否仍然有效,而不是让您从用户那里找出答案。

常问问题

GLM-5.3也支持图片吗? 不是原生的。GLM-5.3通过单独的适配器引导视觉。 Flash 是一种原生的多模式,其内容包括 我们的比较.

每个请求多少张图片? 多个,每个都是自己的 image_url 堵塞。实用的 limit是您的背景预算。

URL还是base64? 两者都有效。当图像已托管且可访问时,使用公共URL;使用base64来获取本地或私有镜像。

它接受视频吗? Z.ai 记录视频输入,但它是新的并且很少使用。首先根据您自己的媒体和提供商进行验证。

图片的收费是否不同? 无附加费。它们消耗输入令牌,因此分辨率会影响成本。

开发必备:API 全流程管理神器 Apifox

介绍完上文的内容,我想额外介绍一个对开发者同样重要的效率工具 —— Apifox。作为一个集 API 文档、调试、设计、测试、Mock、自动化测试于一体的工具,Apifox 是目前提升研发效率的首选。

如果你正在开发项目,不妨试试其极其友好的界面设计,它完全兼容 Postman 和 Swagger 数据格式,导入数据非常方便,,即使是新手也能很快上手,点击这里即可注册使用

Apifox

值得一提的是,除了个人和常规团队使用,针对有高安全合规要求、或需要在内网环境协作的企业,Apifox 还提供了深度定制的私有化部署方案

获取专属报价与部署方案

icon 详细的私有化部署系统架构与安全白皮书
icon 针对您公司规模的专属报价单
icon 免费的 1v1 专属产品演示 (Demo) 机会
获取部署方案
* 提交后,我们的客户经理将在 1 个工作日内与您联系
林俊锋 企业微信
@Apifox 专属顾问
扫码备注: 私有化 + 公司名