| |

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-zh-hant 图示

爲什麼 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-zh-hant 图示

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-zh-hant 图示

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-zh-hant 图示

常見問題 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易幫助中心。

Similar Posts