||

Gemini API 识图效果不如网页版?6 大 API 提升技巧让识别质量追平官网

很多接入 Gemini API 做识图业务的团队都遇到过同一个困惑:在 gemini.google.com 网页版上发同一张图、用同一段提示词,模型能精准识别细节、给出结构化答案;切到 gemini-3.5-flash API 上做同样的事,结果却明显粗糙,甚至漏掉关键信息。这种"网页强、API 弱"的体感差异,并不是模型本身被调弱了,而是网页版和 API 在工程层面的差距被你看见了。

本文围绕一个核心结论展开:网页版 Gemini 是一套综合 Agent,会自动做提示词优化、多步推理、工具调用与结果校验;API 调用的是裸模型,所见即所得。理解这个差距之后,6 个不止"调提示词"的 API 提升技巧就能让你的识图效果稳定追上官网体感。

gemini-api-image-recognition-vs-web-quality-guide 图示

为什么 Gemini API 识图效果不如网页版:Agent 与裸模型的差距

要把这个差距讲清楚,先得理解 gemini.google.com 在你提交一张图片到获得最终回答之间,到底替你做了多少事。从 Google 公开的 Agentic Vision 文档和我们在 API易(apiyi.com)上观察到的官网 vs API 响应差异看,网页版本质是一个围绕基础模型构建的产品级 Agent,它至少帮你完成了 5 件你没显式要求的事情:

  1. 自动改写你的提示词,把"识别这张图"补充为带角色、任务、输出格式的完整指令。
  2. 在内部用更高分辨率档位处理图像,确保细节不被压缩成模糊像素。
  3. 默认开启高强度推理预算(类似 thinking_level=high),让模型有时间"想"。
  4. 在需要时调用代码执行、网页搜索等内置工具做交叉验证,确认细节真实可信。
  5. 对输出结果做格式化与"重答"判断,遇到模糊回答会再问一遍模型。

而你直接调用 API 时,这 5 件事一件也不会自动发生。换句话说,你在调一个能力完整的"模型",但失去了一整套"工程脚手架"。下表把两种使用方式在关键链路上的差异列清楚:

对比维度 gemini.google.com 网页版 gemini-3.5-flash API
提示词处理 自动改写、补全角色与格式 完全照搬用户输入
图像分辨率 默认高档位 默认中等档位,需手动调高
推理预算 高强度,无显式上限 默认中等,可手动设 thinking_level
工具调用 默认接入搜索、代码执行 默认关闭,需显式启用
结果校验 Agent 多步验证 单次推理,无校验
计费透明度 包月套餐覆盖 按 Token 单独计费

我们建议在 API易(apiyi.com)这种聚合网关上同时跑一份相同的图像与提示词,对比 gemini-3.5-flash API、Claude Opus、GPT-5.5 三家的识图结果,可以快速判断当前任务到底是被模型能力卡住,还是被工程链路卡住。

Gemini API 识图技巧一:拉高 media_resolution 参数

Gemini 3 系列开始引入 media_resolution 参数,它直接控制 API 为图像分配多少 Token 来"看"。这个参数有 low、medium、high、ultra high 四档,默认通常是 medium。对识别小字、票据、电路图、UI 截图这类细节密集的图像,medium 往往不够,模型会把图像压缩到一个粗糙的特征图,导致细节丢失。

下表给出四档的实际差异,便于你按任务类型选择:

分辨率档位 Token 开销 适用场景 典型问题
low 最低 缩略图、Logo 识别 小字几乎全丢
medium(默认) 中等 普通照片、人像 细节模糊
high 较高 文档、表格、票据 信息基本可读
ultra high 最高 复杂图纸、密集 UI 接近官网识别

对识图业务来说,把这个参数从 medium 调到 high 通常就能立刻把识别精度提一个档位。如果你的预算允许,且任务确实涉及小字、密集表格,直接走 ultra high 也是合理选择。

# 通过 API易调用 gemini-3.5-flash,显式指定 high 媒体分辨率
from google import genai
from google.genai import types

client = genai.Client(
    api_key="YOUR_APIYI_KEY",
    http_options={"base_url": "https://api.apiyi.com"}
)

resp = client.models.generate_content(
    model="gemini-3.5-flash",
    contents=[image_part, "提取图中所有可见文字并按表格输出"],
    config=types.GenerateContentConfig(
        media_resolution="MEDIA_RESOLUTION_HIGH"
    )
)
print(resp.text)

在 API易(apiyi.com)侧调用时,参数透传到底层,不会被网关二次包装,你可以放心按官方文档传值。

Gemini API 识图技巧二:显式开启 thinking_level=high

Gemini 3.5 Flash 引入了 thinking_level 参数,控制模型在产出答案之前的内部推理深度。识图任务里,"想得够久"和"想得够仔细"往往就是看清细节和看错的差距。API 默认档位偏向速度而非质量,识图业务建议主动设为 high,让模型像网页版那样有充足时间做空间推理与计数。

thinking_level 推荐场景 体感差异
low 极简对话、风格判断 速度快,识别粗糙
medium 普通问答 平均水平
high(识图推荐) 文档、票据、计数、空间推理 接近官网体感

官方文档同时强调了一个反直觉的点:用了 thinking_level=high 之后,反而要把提示词写得更直接、更简洁,避免一堆"请你一步步推理、请你考虑各种情况"的旧式 chain-of-thought 套路。这些套路是给老模型补能力的,对 Gemini 3 系列容易让它"过度分析"。

🎯 参数选型建议:把 media_resolution=HIGHthinking_level=high 作为识图任务的默认组合,写进 API易(apiyi.com)侧调用模板。后续根据业务体感再向 ultra high 或 low 两端微调,避免在每个请求里反复试参数。

gemini-api-image-recognition-vs-web-quality-guide 图示

Gemini API 识图技巧三:把指令写进 system_instruction 而非 user prompt

API 上的另一个常见误区是把所有内容塞进 user prompt:角色设定、任务说明、输出格式、用户提问全部混在一段文本里。这种写法等于让模型每次都重新读一遍上下文,而网页版的"系统提示词"是缓存复用的。

正确的做法是把"你的稳定指令"放进 system_instruction

config = types.GenerateContentConfig(
    media_resolution="MEDIA_RESOLUTION_HIGH",
    thinking_level="high",
    system_instruction=(
        "你是一名严谨的图像分析助手。"
        "回答时只引用图像中明确可见的细节,不要凭空推断。"
        "输出结构化的 JSON,字段固定为 entities/attributes/text。"
    )
)

这样写带来两个收益:模型每次都按统一规则回答,结果更稳定;System Prompt Caching 启用后输入成本可下降 10 倍,对长期跑批的识图业务非常有价值。在 API易(apiyi.com)后台,可以按模型 ID 单独看到缓存命中率,方便观察优化效果。

Gemini API 识图技巧四:启用 code execution 让模型 "放大看图"

Google 在 Gemini 3 Flash 的 Agentic Vision 公告里给出过一个明确数据:在原生模型基础上启用代码执行工具,识图类任务平均能再拿 5%~10% 的质量提升。原理是模型可以在内部生成 Python 代码,对图片做裁剪、放大、旋转、像素读取等操作,再把处理后的子图重新喂给自己分析。这正是网页版默认在做的事。

API 默认不会开启代码执行,需要显式声明:

config = types.GenerateContentConfig(
    media_resolution="MEDIA_RESOLUTION_HIGH",
    thinking_level="high",
    tools=[types.Tool(code_execution=types.ToolCodeExecution())]
)

resp = client.models.generate_content(
    model="gemini-3.5-flash",
    contents=[image_part, "数出图中所有红色按钮的数量并列出位置"],
    config=config
)

对计数、空间推理、密集 UI 解析这种官方公认的"代码执行加分项"任务,这是性价比最高的一档优化。我们在 API易(apiyi.com)上观察到,启用代码执行后整体延迟会有所上升,建议在异步业务里默认开启,在同步业务里按需开启。

Gemini API 识图技巧五:大图用 File API 而非 base64 内联

对于体积超过几 MB 的图像,很多团队直接用 base64 把图嵌进请求体。这种做法在小图上没问题,但当总请求大小超过 20MB 时就会触发 Gemini 的限制,部分图像会被静默压缩,识别质量自然下降。

官方给出的判定边界很清晰:

图像大小 推荐传输方式 原因
小于 5MB base64 内联 请求轻量、调用简单
5~20MB File API 上传 避免请求体积膨胀
大于 20MB File API 必须 base64 编码会破坏请求
跨多次复用 File API 推荐 一次上传多次引用,省 Token

File API 的另一好处是同一张图可以在多个请求里复用,省去重复上传成本。在 API易(apiyi.com)网关后,File API 的 endpoint 走的是同一组凭证,无需为图片上传单独开 Google Cloud 账号。

gemini-api-image-recognition-vs-web-quality-guide 图示

Gemini API 识图技巧六:自己搭一条 Agent 链路做多步验证

走完前 5 个技巧后,你的单次 API 调用已经接近官网体感了。但网页版还有一招杀手锏:多步验证。它会在生成回答后用第二次推理校验关键事实,遇到不确定的回答会再做一次"重答"。这个能力 API 上没有现成开关,需要你自己搭一条简单的 Agent 链路。

一个最小可用的两步链路是:

  1. 第一次调用:让 gemini-3.5-flash 生成结构化识别结果(JSON 输出)。
  2. 第二次调用:把第一次的结果与原图同时回灌,问模型"基于这张图,下列结论是否每条都成立?"

如果第二次调用挑出任何"不成立"的字段,再触发第三次"重答"。这套链路在 API易(apiyi.com)上可以直接用同一份 base_url 与 API Key 串起来,不需要额外服务。对识别准确率要求高的业务(合同识别、医疗影像辅助标注、安全合规审查)来说,多步验证是把准确率从 90% 推到 98% 的关键一步。

任务类型 建议链路 单步参数
通用识图问答 单步 high + thinking_high
文档抽取 单步 + JSON 校验 ultra high + thinking_high
复杂计数 两步 + code execution high + thinking_high + tools
高准确率业务 三步链路(识别 → 校验 → 重答) ultra high + thinking_high + tools

实战参数模板:把 6 个技巧串成一次可复用调用

为了方便你直接套用,下面给一份"识图任务默认模板",已经把前面 6 个技巧串到位,适合大多数业务的起点:

from google import genai
from google.genai import types

client = genai.Client(
    api_key="YOUR_APIYI_KEY",
    http_options={"base_url": "https://api.apiyi.com"}
)

SYSTEM = (
    "你是严谨的图像分析助手。仅引用图像中明确可见的内容,"
    "不要凭空推断。输出严格 JSON,字段 entities/attributes/text。"
)

config = types.GenerateContentConfig(
    media_resolution="MEDIA_RESOLUTION_HIGH",
    thinking_level="high",
    system_instruction=SYSTEM,
    tools=[types.Tool(code_execution=types.ToolCodeExecution())],
    response_mime_type="application/json"
)

resp = client.models.generate_content(
    model="gemini-3.5-flash",
    contents=[image_part, "按 SYSTEM 要求识别这张图"],
    config=config
)
print(resp.text)

实际部署时建议在 API易(apiyi.com)侧把模板抽成统一的 SDK 调用层,业务方只传图与提问,参数由网关统一注入,避免每个业务都重新踩一遍坑。

gemini-api-image-recognition-vs-web-quality-guide 图示

常见问题 FAQ:Gemini API 识图与网页版差距答疑

Q1:把这些参数都打开后,API 还会比网页版差吗?

绝大多数业务能追平官网,但少数高难度任务(极小字、低光照、特殊艺术风格图)仍可能略差,因为网页版还会调用未公开的内部增强 Pipeline。对这类场景,可以在 API易(apiyi.com)上用其他厂商的视觉模型做横向对照,找到最适合的工作模型。

Q2:thinking_level=high 会让成本翻倍吗?

会增加内部推理 Token 用量,但只对输出阶段产生影响,且识图业务的整体成本里图像 Token 通常更占大头。把 thinking 调到 high 带来的准确率提升远大于增加的成本,特别是在替代人工复核的业务里。

Q3:base_url 怎么改?我用的是 Google 官方 SDK。

google-genai SDK 支持通过 http_options={"base_url": "https://api.apiyi.com"} 把请求转到 API易(apiyi.com)网关。Key 用 API易后台生成的即可,不需要单独的 Google Cloud 项目。

Q4:可以只优化提示词解决问题吗?

只调提示词的天花板很明显,无法覆盖分辨率、推理深度、工具调用这些"模型外"的能力。本文 6 个技巧里只有第三条与提示词相关,其余 5 条都是工程层的杠杆。

Q5:网页版能识别到的"图片中文水印",API 总是漏掉怎么办?

水印类细节往往依赖高分辨率与代码执行裁剪的组合。把 media_resolution 调到 ultra high,并启用 code execution,再用两步验证链路检查,通常能稳定识别。

总结:把网页版的工程能力补到 API 调用里

回到最初的问题:为什么 Gemini API 识图效果不如网页版?答案不是模型变弱了,而是网页版自带的工程脚手架太厚。当你直接调 gemini-3.5-flash API 时,提示词改写、分辨率档位、推理预算、工具调用、结果校验全都需要你自己显式补齐。理解这一点之后,6 个技巧的本质就是"把网页版替你做的事,搬到你自己的 API 调用链里"。

实操路径很清晰:先把 media_resolutionthinking_level 拉满,再把指令搬进 system_instruction 并开启缓存,对复杂识图任务启用 code execution,大图统一走 File API,最后用两到三步 Agent 链路兜住高准确率业务。这套组合拳跑下来,再回到 API易(apiyi.com)后台对比命中率与延迟,多数团队都能把识图业务的"网页 vs API"差距压缩到肉眼几乎看不出来的程度。

📌 作者署名:本文由 API易(apiyi.com)技术团队整理,更多 Gemini、Claude、GPT 系列模型的接入实战与调参指南,请关注 API易帮助中心。

类似文章