Gemini API Python 調用教學:安裝 google-genai SDK、流式輸出、多輪對話與傳圖片

用官方 google-genai SDK 調 Gemini API:安裝配置、第一個請求、系統指令與思考等級、流式輸出、多輪對話、傳圖片和查看 token 用量,按 2026 年 10 月官方預設的 Interactions API 寫法。

NNathaniel bigo··原創首發·AI 輔助撰寫
11 分鐘讀完
資料核對於 2026-10-10 · 依據官方文檔與公開資料整理 其他 帳號
本文根據 Gemini API 官方文檔(Quickstart、Interactions API、Text generation、Files API、Libraries)和官方 SDK 倉庫 googleapis/python-genai 整理,資料核對於 2026-10-10。示例代碼基於官方示例改寫並加了中文註釋;模型 ID 更新很快,以官方 Models 頁為準。

適用於誰

  • 會一點 Python,想在腳本或後端裏調用 Gemini 的開發者;
  • 搜「gemini api python」「python sdk」「python 調用」的人;
  • 看過舊教學裏的 google.generativeai 或 generate_content,不確定現在該用哪種寫法的人。

還沒有密鑰的,先看本站《Gemini API Key 怎麼獲取:在 AI Studio 創建密鑰、設定環境變量與安全限制》。

結論先說

  1. 官方 SDK 是 google-genai:pip install -U google-genai,導入寫 from google import genai。舊的 google-generativeai 包已棄用,不再提供新功能。
  2. 官方現在預設推薦 Interactions API:client.interactions.create(model=..., input=...),回覆文本在 interaction.output_text。官方說明它自 2026 年 6 月起正式可用(GA),建議所有新項目使用。
  3. 舊的 generateContent 寫法仍然完全受支持,官方稱它為 legacy(舊版)接口,老項目不用急着改。
  4. 多輪對話可以讓伺服器記歷史:把上一輪的 interaction.id 傳給 previous_interaction_id 即可;但系統指令和生成參數每一輪都要重新傳。
  5. 密鑰放環境變量 GEMINI_API_KEY,SDK 自動讀取。

一、安裝與配置

bash
python -m venv .venv
source .venv/bin/activate          # Windows: .venv\Scripts\activate
pip install -U google-genai

export GEMINI_API_KEY="你的API密鑰"   # Windows PowerShell: $env:GEMINI_API_KEY="你的API密鑰"
  • Python 版本:SDK 倉庫要求 3.10 及以上。
  • 官方說明 Interactions API 需要 google-genai 2.3.0 及以上版本,裝最新版即可。
  • 環境變量 GEMINI_API_KEY 和 GOOGLE_API_KEY 都能被自動識別,兩個都設時後者優先。

二、第一個請求

新建 quickstart.py:

python
from google import genai

client = genai.Client()  # 自動讀取環境變量裏的密鑰

interaction = client.interactions.create(
    model="gemini-3.8-flash",
    input="用三句話解釋什麼是向量數據庫",
)
print(interaction.output_text)

運行 python quickstart.py。幾個要點:

  • output_text 是 SDK 提供的便捷屬性,直接給出最終文本;
  • 完整結果在 interaction.steps 裏,是一個按時間排列的「步驟」列表,包括模型的思考(thought)、工具調用和最終輸出(model_output);
  • 模型 ID 用官方 Models 頁列出的名字。截至 2026-10-10,最新的穩定版文本模型是 gemini-3.8-flash,更便宜的是 gemini-3.5-flash-lite,gemini-3.1-pro-preview 是預覽版。

三、系統指令與思考等級

python
interaction = client.interactions.create(
    model="gemini-3.8-flash",
    system_instruction="你是一名耐心的 Python 老師,用中文回答,並配一個最小可運行的例子。",
    input="列表推導式怎麼用?",
    generation_config={
        "thinking_level": "low",   # gemini-3.8-flash 可選 low / medium / high,預設 medium
    },
)
print(interaction.output_text)
  • Gemini 3 系列預設開啟思考。想更快、更省,把 thinking_level 調低;複雜推理再調高。Gemini 3.8 Flash 不支持 minimal。
  • 舊教學裏常見的 temperature、top_p、top_k:官方說明從 Gemini 3.6 Flash、3.5 Flash-Lite 起已棄用並被忽略,新代碼不要再傳。
  • 系統指令的寫法見本站《Google AI Studio 系統指令怎麼寫:System instructions 與運行設定(思考等級、溫度、聯網搜尋)》。

四、流式輸出

加上 stream=True,返回的是一串事件,文本片段在 step.delta 事件裏:

python
stream = client.interactions.create(
    model="gemini-3.8-flash",
    input="寫一段 200 字左右的秋天散文",
    stream=True,
)
for event in stream:
    if event.event_type == "step.delta" and event.delta.type == "text":
        print(event.delta.text, end="", flush=True)
print()

流裏還會有 interaction.created、step.start、step.stop、interaction.completed 等事件,只想顯示文字時按上面這樣過濾就夠了。

五、多輪對話

方式一:伺服器儲存歷史(官方推薦)

python
first = client.interactions.create(
    model="gemini-3.8-flash",
    input="我家裏有 2 只狗。",
)
print(first.output_text)

second = client.interactions.create(
    model="gemini-3.8-flash",
    input="那我家一共有多少隻爪子?",
    previous_interaction_id=first.id,   # 接上一輪
)
print(second.output_text)

要知道的三件事:

  • previous_interaction_id 只帶上對話歷史。system_instruction、generation_config、tools 只對當次請求生效,每一輪都要重新傳。
  • 預設 store=true,交互記錄會儲存在伺服器上:官方寫明免費層保留 1 天,付費層保留 55 天,到期自動刪除,也可以調用刪除接口提前刪。過了保留期的對話就接不上了。
  • 官方說這種方式更容易命中隱式緩存,有助於降低多輪對話的成本。

方式二:自己管理歷史(無狀態)

不想把對話存在伺服器上,就設 store=False,每次把完整歷史傳過去。官方強調:模型返回的所有步驟(包括 thought 思考步驟)必須原樣放回歷史裏,不能刪改,因為裏面帶有延續推理所需的簽名。

python
history = [
    {"type": "user_input", "content": [{"type": "text", "text": "我家裏有 2 只狗。"}]}
]
first = client.interactions.create(model="gemini-3.8-flash", store=False, input=history)

for step in first.steps:               # 把模型返回的步驟原樣追加
    history.append(step.model_dump())

history.append(
    {"type": "user_input", "content": [{"type": "text", "text": "一共有多少隻爪子?"}]}
)
second = client.interactions.create(model="gemini-3.8-flash", store=False, input=history)
print(second.steps[-1].content[0].text)   # 官方示例的取法:最後一個步驟裏的文本

六、傳圖片和文件

先用 Files API 上載,再把文件地址放進 input:

python
uploaded = client.files.upload(file="photo.jpg")

interaction = client.interactions.create(
    model="gemini-3.8-flash",
    input=[
        {"type": "text", "text": "這張圖裏有什麼?用中文描述。"},
        {"type": "image", "uri": uploaded.uri, "mime_type": uploaded.mime_type},
    ],
)
print(interaction.output_text)

小圖片也可以不上載,讀成 base64 後用 {"type": "image", "data": 圖片的base64字符串, "mime_type": "image/jpeg"} 直接放進請求。官方給出的邊界:

  • 整個請求(文件、提示詞、系統指令加在一起)超過 100 MB 時必須用 Files API,PDF 的界限是 50 MB;
  • Files API 每個項目可存 20 GB,單個文件最大 2 GB,文件儲存 48 小時後自動刪除;
  • Files API 本身不收費,在 Gemini API 可用的地區都能用。

同樣的寫法可以傳音頻("type": "audio")等其他類型,Gemini 3.8 Flash 支持文本、圖片、影片、音頻和 PDF 輸入。

七、看 token 用量

python
print(interaction.usage)   # 含輸入、輸出、思考 token 數

# 發送前先估算輸入 token
count = client.models.count_tokens(model="gemini-3.8-flash", contents="你好,世界")
print(count.total_tokens)

官方說明開啟思考時,輸出費用按「輸出 token + 思考 token」計算,思考 token 數在 interaction.usage.total_thought_tokens。統計 token 的請求本身不計費。

八、報錯和重試

  • 官方排錯頁說明,Python SDK 預設會對超時、網絡問題、429 和 5xx 這類暫時性錯誤自動重試,最多 4 次,首次等待約 1 秒,最長 60 秒。
  • 400、402、403 這類錯誤重試沒有用,要先解決問題本身(參數寫錯、預付餘額用完、密鑰無權限)。
  • 遇到 429 的完整排查方法見本站《Gemini API 429 錯誤怎麼解決:RESOURCE_EXHAUSTED 的原因與 400 / 403 / 503 排查表》。

九、舊寫法 generateContent 還能用嗎

能用。官方的說法是 generateContent 現在屬於 legacy 接口,但仍然完全受支持;同時也說明今後新模型、新工具和智能體功能會先在 Interactions API 上線。舊寫法長這樣:

python
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents="用三句話解釋什麼是向量數據庫",
)
print(response.text)

chat = client.chats.create(model="gemini-3.8-flash")   # SDK 在本地幫你記歷史
print(chat.send_message("我家裏有 2 只狗。").text)

反過來,有幾項功能官方寫明目前只有 generateContent 支持:Batch API、Python 的自動函數調用、顯式上下文緩存、自定義安全設定。用到這些就繼續用舊接口。

如果你的代碼裏還是 import google.generativeai as genai,那是更早的舊 SDK,官方已在 2025 年 11 月 30 日棄用,建議按遷移指南換到 google-genai。

常見問題

Q:報找不到模型(404)?

檢查模型 ID 是否和官方 Models 頁一致。預覽版模型的名字帶 -preview 後綴,下線後會直接不可用,下線時間表在官方 Deprecations 頁。

Q:能在 Jupyter / Colab 裏用嗎?

能。官方提醒 Colab 的地區限制按 Colab 實例所在的地區判斷,而不是按用戶所在地。

Q:免費能調用嗎?

項目沒綁定結算帳號時處於免費層,可以免費調用部分模型,但有速率限制,而且提交的內容會被 Google 用於改進產品。詳見本站《Gemini API 免費額度是多少:免費層級、RPM / TPM / RPD 速率限制與限額查詢》。

Q:Gemini API 在哪些地區可用?

以官方 Available regions 頁面的列表為準,目前沒有列出中國大陸。請遵守所在地法律和服務條款。

參考資料

  • Gemini API quickstart(官方):https://ai.google.dev/gemini-api/docs/quickstart
  • Gemini API quickstart(generateContent 版,官方):https://ai.google.dev/gemini-api/docs/generate-content/quickstart
  • Interactions API(官方):https://ai.google.dev/gemini-api/docs/interactions-overview
  • Text generation(官方):https://ai.google.dev/gemini-api/docs/text-generation
  • Gemini API libraries(官方):https://ai.google.dev/gemini-api/docs/libraries
  • Migrate to the Google GenAI SDK(官方):https://ai.google.dev/gemini-api/docs/migrate
  • Files API(官方):https://ai.google.dev/gemini-api/docs/files
  • Gemini thinking(官方):https://ai.google.dev/gemini-api/docs/thinking
  • Understand and count tokens(官方):https://ai.google.dev/gemini-api/docs/tokens
  • Models(官方):https://ai.google.dev/gemini-api/docs/models
  • Gemini deprecations(官方):https://ai.google.dev/gemini-api/docs/deprecations
  • Troubleshooting guide(官方):https://ai.google.dev/gemini-api/docs/troubleshooting
  • googleapis/python-genai(官方 SDK 倉庫):https://github.com/googleapis/python-genai
需要開通或續費?谷歌帳號 →

Nathaniel 的更多內容

  1. 01

    AI 學習路線:零基礎從哪開始,6 個階段、每階段該讀哪幾篇教學(2026)

    AI 學習路線怎麼走?給零基礎的人一條循序漸進的路徑:先選一個助手用順,再學提問,再用進日常工作,按需學做圖做影片,守住私隱與版權,最後進階自動化和編程。每個階段都配了本站對應的教學。

    其他 AI 工具0
  2. 02

    AI 瀏覽器有哪些:Perplexity Comet、Opera Neon、Dia、Brave Leo 與 Edge Copilot 的官方說法對照

    AI 瀏覽器有哪些?按官方頁面整理 Perplexity Comet、Opera Neon、Dia、Brave Leo 和 Edge 裏的 Copilot:官方自述的定位、支持的平台、免費還是訂閱,以及 Gemini、Claude 的 Chrome 方案和已停用的 ChatGPT Atlas。

    其他 AI 工具0
  3. 03

    即夢國際版 Dreamina 是什麼:官方站入口、能生成什麼、免費積分和模型(2026)

    即夢國際版 Dreamina 是什麼?官方站是 dreamina.capcut.com,是一個圖片、影片和數字人一體的 AI 創作平台。按官方首頁和 FAQ 講:能生成什麼、免費用戶每天 120 積分、列出的 Seedance 與 Seedream 模型,以及和國內即夢怎麼區分。

    其他 AI 工具0
  4. 04

    Kimi K3 Coding Plan 是什麼、怎麼用:Kimi Code 會員、模型 ID、套餐價格和額度規則

    Kimi K3 Coding Plan 是什麼?按 Kimi 官方文檔核對:官方現在叫 Kimi Code,是 Kimi 會員權益裏的編程服務,Plus 及以上才有;講 K3 等模型 ID、國內新套餐價格、三種客戶端、第三方工具接入和額度規則。

    Kimi0
  5. 05

    DeepSeek V4 Pro 和 Flash 的區別與 API 價格:官方價格頁逐項對照(高峰與空閒時段)

    DeepSeek V4 Pro 和 Flash 有什麼區別、API 怎麼收費?按 DeepSeek 官方價格頁(2026-10-19 查詢)列出兩個模型的版本、上下文、圖像理解、並發和每百萬 token 價格,說明高峰與空閒時段的計費差別和舊模型名怎麼處理。

    其他 AI 工具0
  6. 06

    GPT-6 Pro(Astra)怎麼用、哪些套餐有:怎麼選到 Pro 檔、用量限制和 Pro 三檔價格

    GPT-6 Pro(Astra)怎麼用、哪些套餐有?按 OpenAI 幫助中心核對:聊天裏 Pro 檔給 Pro 100、Pro 200、Business 和 Enterprise;Plus 在 Work 和 Codex 裏含 Astra。講怎麼選到、用量上限和官方 Pro 價格。

    ChatGPT0

同模型

  1. 01

    Nano Banana 官網入口在哪、免費能用嗎:Google 官方入口、Nano Banana 2 與 2.1 的免費和付費區別

    Nano Banana 官網地址是什麼、免費能用多少?Nano Banana 是 Google Gemini 的圖像模型,官方入口是 gemini.google.com 和官方介紹頁。按官方頁面核對:免費版用 Nano Banana 2,2.1 需要 Google AI 套餐,API 沒有免費層。

    Gemini0
  2. 02

    Gemini 3.5 Pro 是什麼、發佈了嗎、怎麼用:官方說法梳理,以及現在 Gemini 裏該選哪個模型

    Gemini 3.5 Pro 發佈了嗎?按 Google 官方網誌、Gemini 更新記錄和 API 模型列表核對:截至 2026-10-19 官方沒有宣佈 3.5 Pro 已發佈,最新的是 Gemini 4 Argon。講清官方說過什麼,以及 Gemini 應用裏各套餐現在能選哪些模型。

    Gemini0
  3. 03

    Gemini 打不開、無法登入、無法使用怎麼辦:帳號類型、年齡、瀏覽器和官方兩條登入提示

    Gemini 怎麼打不開?無法登入、無法使用怎麼辦?按官方「Sign in to Gemini Apps」頁排查:帳號類型、年齡、支持的瀏覽器、國家和語言名單,以及「Can't access this service」「Something went wrong」兩條提示的官方解釋。

    Gemini0
  4. 04

    Gemini 無法生成圖片怎麼辦:入口、年齡與地區、提示詞、模型和額度逐項排查

    Gemini 無法生成圖片怎麼辦?按官方幫助中心逐項排查:有沒有登入、年齡和地區是否滿足、生圖入口在哪、提示詞怎麼寫才會出圖、Flash-Lite 的 Nano Banana 2 Lite 有什麼限制、圖片被移除和額度用完時怎麼辦。

    Gemini0
  5. 05

    Gemini 分享對話怎麼操作:生成公開連結、對方能看到什麼、怎麼刪除分享連結

    Gemini 的「分享對話」會生成一個任何人都能打開的公開連結。本文按官方幫助中心講清:分享步驟、連結裏包含哪些內容(整段對話、上載的圖片、Canvas 作品)、別人能做什麼、連結什麼時候會自動失效、怎麼查看和刪除自己所有的公開連結。

    Gemini0
  6. 06

    Gemini API Key 怎麼獲取:在 AI Studio 創建密鑰、設定環境變量與安全限制

    調用 Gemini API 先要在 Google AI Studio 創建 API Key。本文講清創建入口、密鑰與項目的關係、2026 年新的授權密鑰規則、環境變量怎麼設、怎麼測試,以及密鑰被封或泄露後的處理。

    Gemini0

同產品的其他教學

  1. 01

    AI圖片放大與高清修復:Midjourney、ChatGPT、Gemini 怎麼出高解像度圖

    AI 生成的圖不夠清晰,想打印或做大圖怎麼辦?本文按官方文檔講清 Midjourney 的 Subtle / Creative 放大和 HD 直出、Gemini 與 ChatGPT 的解像度選項、Flow 的影片放大,以及「AI 放大會編造細節」的注意事項。

    Gemini其他 AI 工具0
  2. 02

    AI影片運鏡提示詞大全:推拉搖移跟升降、環繞、甩鏡怎麼寫(中英對照)

    AI 影片的運鏡提示詞怎麼寫?本文按 Google 官方影片提示指南整理鏡頭運動、機位角度、鏡頭光學效果三張中英對照表,每個術語配效果說明和例句,並給出組合運鏡的寫法和常見翻車原因,適用於 Veo、即夢、可靈等工具。

    Gemini其他 AI 工具0
  3. 03

    NotebookLM 學習卡是什麼:抽認卡(閃卡)與測驗的生成、複習和下載

    NotebookLM(現名 Gemini Notebook)的學習卡是什麼、怎麼用?本文按官方幫助講清抽認卡和測驗的生成步驟、難度與數量設定、「答對了 / 沒答對」進度記錄、只練錯題、下載 CSV,以及手機上怎麼刷卡。

    Gemini0
  4. 04

    ChatGPT 和 Gemini 哪個好用:按官方頁面對比套餐、額度、上下文和功能,怎麼選

    ChatGPT 和 Gemini 哪個好用?本文只整理兩家官方頁面能查到的差異:套餐名稱、免費版額度、付費檔用量倍數、額度多久刷新、上下文窗口數字,以及各自的特色功能入口。不給「誰更強」的結論,文末附一份用自己任務測試的清單。

    ChatGPTGemini0
  5. 05

    Gemini 臨時對話怎麼用:能儲存嗎、關掉後能找回嗎、數據保留多久

    Gemini 的臨時對話不進聊天記錄、不用於訓練模型,但離開後就再也打不開。本文按官方幫助中心講:怎麼開啟、誰能用、臨時對話裏不能做什麼、想儲存內容該怎麼辦、Google 實際保留 72 小時是怎麼回事,以及它和關閉活動記錄的區別。

    Gemini0
  6. 06

    Gemini Live 怎麼用:如何開啟語音對話、共享攝像頭和螢幕、後台通話與字幕

    Gemini Live 是手機上的實時語音對話:可以隨時打斷、讓它看攝像頭畫面或手機螢幕、在後台和鎖屏時繼續聊。本文按官方幫助中心講開啟條件、操作步驟、能調用哪些應用、字幕與聲音設定,以及常見的「沒有 Live 按鈕」等問題。

    Gemini0

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~