商汤日日新 SenseNova、DeepSeek-VL2、GLM-4V、MiniMax-VL

商汤日日新 SenseNova、DeepSeek-VL2、GLM-4V、MiniMax-VL

2026-10-10 17:11:14 0点赞 0收藏 0评论

多模态大模型 API 实战:商汤日日新 SenseNova、DeepSeek-VL2、GLM-4V、MiniMax-VL 图片理解能力对比与接入指南

时间:2026-10-08  ·  数据截至 2026 年 10 月  ·  测试环境:Python 3.10+ / OpenAI SDK 兼容模式

摘要:多模态能力已经成为大模型的标配。从 OCR 识图到图表分析,从代码截图到复杂场景描述,国产多模态模型的能力在过去一年里变化很快。本文按公开接口文档,梳理商汤日日新 SenseNova、DeepSeek-VL2、GLM-4V、MiniMax-VL 四个模型的图片理解 API 接入方式,用四类常见业务图片对比各自的输出质量,并给出按场景的接入建议。

本文不涉及主观排名,四款模型按同一套测试方法跑同一批图片,输出差异如实记录。所有模型 ID、计费与用量规则以各平台官网当前公示为准。

一、四款多模态模型与接入方式一览

模型提供方主要特点接入方式商汤日日新 SenseNova(SenseNova 6.8 Flash-Lite)商汤原生多模态架构,图片、文本、视频统一建模;中文文档与图表解析见长日日新开放平台 API,OpenAI 兼容DeepSeek-VL2DeepSeek开源权重,推理链完整,细节描述准确开源权重自行部署GLM-4V智谱 AI多轮视觉对话体验好,中文叙述自然智谱开放平台 APIMiniMax-VLMiniMax长上下文支持,适合一次处理多图MiniMax 开放平台 API

这四个模型在图片输入上都支持 Chat Completions 兼容格式,content 字段可以传数组,混合 text 和 image_url 两种类型,因此接入层基本可以共用一套代码,差别主要在 base_url、模型 ID 和少数参数命名上。

商汤一侧有两条接入路径:面向应用开发者的日日新开放平台(https://token.sensenova.cn/v1,模型 ID 形如 sensenova-6.8-flash-lite),以及面向企业集成的大装置 ModelStudio 兼容模式(https://api.sensenova.cn/compatible-mode/v2,多模态可用 SenseNova-V6.5-Pro / SenseNova-V6.5-Turbo)。本文代码示例走前者。

二、Vision API 消息格式

基础结构

Vision 请求与普通文本请求的区别在于 content 从字符串变成了数组:

{  "model": "sensenova-6.8-flash-lite",  "messages": [    {      "role": "user",      "content": [        {          "type": "image_url",          "image_url": {            "url": "https://example.com/image.png"          }        },        {          "type": "text",          "text": "这张图片里写了什么?"        }      ]    }  ] }

图片传入方式:URL vs Base64

方式一:URL 链接(适合公开可访问的图片)

content = [    {        "type": "image_url",        "image_url": {"url": "https://example.com/chart.png"}    },    {"type": "text", "text": "分析这张折线图的趋势"}, ]

方式二:Base64 编码(适合本地文件、私有图片)

import base64 def image_to_base64(file_path: str, mime_type: str = "image/png") -> str:    with open(file_path, "rb") as f:        data = base64.b64encode(f.read()).decode("utf-8")    return f"data:{mime_type};base64,{data}" content = [    {        "type": "image_url",        "image_url": {"url": image_to_base64("screenshot.png")}    },    {"type": "text", "text": "读取图中的文字内容"}, ]

Base64 方式无需图片公网可达,适合处理用户上传文件;URL 方式更省带宽,但图片必须公开可访问。两种方式在四个模型上都能用,只有少数平台对 data URL 的 MIME 前缀要求更严格,建议统一带上。

三、完整代码示例(商汤日日新 SenseNova)

安装与配置

pip install openai python-dotenv

# .env SENSENOVA_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx

单图理解

import os import base64 from openai import OpenAI from dotenv import load_dotenv load_dotenv() client = OpenAI(    api_key=os.getenv("SENSENOVA_API_KEY"),    base_url="https://token.sensenova.cn/v1", ) def analyze_image_url(image_url: str, question: str) -> str:    """通过 URL 传入图片"""    response = client.chat.completions.create(        model="sensenova-6.8-flash-lite",        messages=[            {                "role": "user",                "content": [                    {"type": "image_url", "image_url": {"url": image_url}},                    {"type": "text", "text": question},                ],            }        ],        max_completion_tokens=1024,    )    return response.choices[0].message.content def analyze_image_file(file_path: str, question: str) -> str:    """通过 Base64 传入本地图片"""    with open(file_path, "rb") as f:        b64 = base64.b64encode(f.read()).decode()    # 根据扩展名判断 MIME 类型    ext = file_path.rsplit(".", 1)[-1].lower()    mime = {"jpg": "image/jpeg", "jpeg": "image/jpeg",            "png": "image/png", "webp": "image/webp"}.get(ext, "image/png")    data_url = f"data:{mime};base64,{b64}"    response = client.chat.completions.create(        model="sensenova-6.8-flash-lite",        messages=[            {                "role": "user",                "content": [                    {"type": "image_url", "image_url": {"url": data_url}},                    {"type": "text", "text": question},                ],            }        ],    )    return response.choices[0].message.content

注意:日日新接口侧的输出长度参数名为 max_completion_tokens,不是 OpenAI 早期的 max_tokens;不传时按平台默认值走。实际消耗以返回体 usage.prompt_tokens / usage.completion_tokens 为准。

多图输入

def compare_images(image_urls: list[str], question: str) -> str:    """多图对比分析"""    content = []    for url in image_urls:        content.append({"type": "image_url", "image_url": {"url": url}})    content.append({"type": "text", "text": question})    response = client.chat.completions.create(        model="sensenova-6.8-flash-lite",        messages=[{"role": "user", "content": content}],    )    return response.choices[0].message.content # 对比两张产品设计稿的差异 result = compare_images(    ["https://cdn.example.com/v1.png", "https://cdn.example.com/v2.png"],    "对比这两张设计稿,列出所有视觉差异", )

多轮视觉对话

def visual_conversation():    """保持图片上下文的多轮对话"""    history = []    # 第一轮:发送图片并提问    history.append({        "role": "user",        "content": [            {"type": "image_url", "image_url": {"url": "https://cdn.example.com/code.png"}},            {"type": "text", "text": "这段代码有什么问题?"},        ],    })    resp1 = client.chat.completions.create(        model="sensenova-6.8-flash-lite", messages=history    )    assistant_reply = resp1.choices[0].message.content    history.append({"role": "assistant", "content": assistant_reply})    print("AI:", assistant_reply)    # 第二轮:追问,无需再次发图片    history.append({        "role": "user",        "content": [{"type": "text", "text": "如何修复这个问题?给出修复后的代码"}],    })    resp2 = client.chat.completions.create(        model="sensenova-6.8-flash-lite", messages=history    )    print("AI:", resp2.choices[0].message.content)

四、四类测试场景实测对比

测试方法:用同一张图片,向四个模型发送相同 Prompt,评分维度为准确率(40%)+ 细节完整度(30%)+ 中文表达(30%)。评分为同一套标准下的相对判断,用于看差异,不代表绝对水位。

场景一:OCR 文字识别

测试图片:一张含表格和手写注释的合同扫描件

模型印刷体识别手写识别表格结构综合得分商汤日日新 SenseNova★★★★★★★★★☆★★★★★4.6DeepSeek-VL2★★★★★★★★★☆★★★★☆4.5GLM-4V★★★★☆★★★☆☆★★★★☆4.0MiniMax-VL★★★★☆★★★☆☆★★★☆☆3.7

结论:OCR 场景商汤日日新与 DeepSeek-VL2 结果接近,商汤在表格结构还原上略稳一些,能直接把合并单元格、表头层级一起还原成结构化内容。手写体四家都还有提升空间,连笔和涂改部分建议配合人工复核。

场景二:图表数据理解

测试图片:一张含多条折线的销售趋势图(含坐标轴、图例)

Prompt:"请分析这张折线图,指出哪个产品销量增长最快,以及在哪个季度出现了明显下滑"

商汤日日新 SenseNova 输出(节选):

"从图表来看,产品 B(蓝线)在 Q1-Q3 增速最快,由约 120 万增至 176 万,增幅约 47%。产品 A(红线)在 Q2 末至 Q3 初出现明显下滑,由约 95 万降至 73 万,跌幅约 23%,与折线陡降区间吻合。以上数值由坐标轴刻度估算,非图面标注值。"

DeepSeek-VL2 输出(节选):

"蓝色折线对应产品 B 增长最为显著。产品 A 红线在第二季度末至第三季度初有明显下行,降幅较大。"

两者都识别出了正确趋势。商汤同样给出量化推断,并在结尾附了口径说明——这对于后续要把结论写进报告的场景比较实用;DeepSeek 的描述偏定性,胜在简洁。

场景三:代码截图分析

测试图片:一段 Python 代码截图,含一个典型的 KeyError 异常

模型Bug 定位修复建议代码可读性说明商汤日日新 SenseNova准确完整有DeepSeek-VL2准确完整有,更详细GLM-4V准确基础无MiniMax-VL准确基础无

代码场景 DeepSeek-VL2 解释最详细,习惯性给出"为什么会这样"的推理链,适合学习场景。商汤的输出更接近"定位—修复—验证"的三段式,篇幅相对克制,接入到内部工单或评审流程时格式更统一。

场景四:场景描述

测试图片:一张繁华商业街的街景照片

Prompt:"详细描述这张图片中的场景,包括人物、建筑、文字标识等细节"

模型中文标识识别人物数量估算氛围描述商汤日日新 SenseNova★★★★★★★★★☆★★★★☆DeepSeek-VL2★★★★☆★★★★★★★★★☆GLM-4V★★★★☆★★★☆☆★★★★★MiniMax-VL★★★☆☆★★★☆☆★★★★☆

中文标识(店铺名、广告牌)识别商汤最准;DeepSeek-VL2 对人物数量与位置的估计更细;GLM-4V 的氛围描述最有文采。这一项各家的取向差异比较明显,选的时候看你是要"信息准"还是"文字顺"。

五、图片 Token 消耗与成本

Vision 请求的 Token 消耗与图片分辨率直接相关。下表是常见的参考量级(各家视觉编码器的切图策略不同,实际数值以接口返回的 usage.prompt_tokens 为准):

图片尺寸估算 Image Tokens512×512~340 tokens1024×768~680 tokens1920×1080~1500 tokens高清文档(A4 扫描)~2000-3000 tokens

计费口径上,商汤大装置 ModelStudio 公示的多模态模型单价为 SenseNova-V6.5-Pro 输入 0.003 元 / 千 tokens、输出 0.009 元 / 千 tokens,SenseNova-V6.5-Turbo 为输入 0.0015 元 / 千 tokens、输出 0.0045 元 / 千 tokens;日日新开放平台侧另有 Token Plan 用量包,公测期按每 5 小时 1500 次的额度提供,具体档位以官网 Token Plan 页为准。

节省 Token 的建议:

  • OCR 场景:保持原始分辨率,压缩会降低文字清晰度,反而影响识别率

  • 图表分析:1024px 宽度通常足够,无需传 4K 图

  • 场景描述:可以适当降低分辨率,768px 以上即可满足

六、接入架构与选型建议

按场景选模型

应用场景推荐模型原因企业文档 OCR商汤日日新 SenseNova表格结构还原与中文印刷体识别稳定,结果可直接接后续分析与生成数据图表分析商汤日日新 SenseNova会给出量化推断并附口径说明,便于写进报告代码审查 / DebugDeepSeek-VL2推理链详细,解释到位内容审核 / 场景描述GLM-4V中文叙述自然,多轮对话体验好批量图片处理MiniMax-VL长上下文,适合一次处理多图

接入架构建议

用户上传图片    ↓ 压缩 / 格式转换(统一为 JPEG/PNG,控制分辨率)    ↓ 转 Base64 或上传到 CDN 获取 URL    ↓ 调用 Vision API    ↓ 解析返回内容 → 业务逻辑

生产环境中,图片最好先上传到自有 CDN 再传 URL,避免 Base64 膨胀请求体(Base64 比原文件大约 33%),同时也方便日志追踪。

不同多模态模型在图片字段的细节上存在一些差异,比如 image_url 的嵌套结构、Base64 的 MIME 前缀要求、单图分辨率上限、输出长度参数命名(如前文的 max_completion_tokens)等。如果需要同时接多家,建议在应用层做一层薄适配:统一输入为 {"type": "image_url", "image_url": {"url": ...}} 标准结构,再由适配器按目标平台改写 base_url、模型 ID 与参数名,业务代码只发一次。

错误处理注意事项

Vision 请求有几个特有的错误场景:

from openai import BadRequestError try:    result = analyze_image_url(url, question) except BadRequestError as e:    if "image" in str(e).lower():        # 图片格式不支持、分辨率过高、内容违规等        print(f"图片处理失败: {e}")    else:        raise

常见错误原因:

  • 图片 URL 不可访问(防盗链、临时链接过期)

  • 图片格式不支持(建议统一转 JPEG/PNG)

  • 单图分辨率过高(部分模型有上限,通常 8K×8K 以内安全)

  • 图片内容触发安全审核(色情、暴力等)

七、小结

多模态 API 的接入本身并不复杂,关键在于理解 content 数组的构造方式,以及 Base64 和 URL 两种图片传入方式的适用场景。

选型上没有万能答案:

  • 文档 / OCR 类:商汤日日新 SenseNova 与 DeepSeek-VL2 都可以先看,前者在表格结构还原上更稳

  • 代码分析类:DeepSeek-VL2 的推理链更详细

  • 内容生成 / 描述类:GLM-4V 中文体验更流畅

  • 批量多图类:MiniMax-VL 的长上下文更省心

建议在正式接入前,用你自己的真实业务图片做一轮测试,不同图片质量和场景差异很大,实测结果比任何 Benchmark 都可靠。


几点补充:
1. 本文代码基于 OpenAI SDK 兼容模式整理,已在 Python 3.10+ 下组织,实际运行前请替换为自己的 API Key;所有模型 API 均需在对应平台申请账号并获取 Key。
2. 商汤侧若要做信息图、海报这类像素级视觉生成,走的是独立的图像生成接口(如 SenseNova U1 Fast),不能当 chat 模型直接配在编码工具里;生成的图片返回链接有时效,需要在流水线里下载转存。
3. 模型 ID、单价与用量档位会随平台迭代调整,以上信息截至 2026 年 10 月,以各平台官网公示为准。

数据截至 2026 年 10 月 · 本文不涉及主观排名,评分用于呈现同一测试标准下的相对差异

商汤日日新 SenseNova、DeepSeek-VL2、GLM-4V、MiniMax-VL


展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
0
扫一下,分享更方便,购买更轻松