使用 Gemini API 搭配工具

工具可擴展 Gemini 模型的效能,讓模型在現實世界中採取行動、存取即時資訊,以及執行複雜的運算工作。模型可在標準要求-回應互動,以及使用 Live API 的即時串流工作階段中,使用工具。

工具是模型可用來回答查詢的特定功能 (例如 Google 搜尋或執行程式碼)。Gemini API 提供全套全方位管理式內建工具,您也可以使用函式呼叫定義自訂工具。

如要建構多步驟、目標導向的系統,請參閱「代理總覽」。

可用的內建工具

工具 說明 應用實例
Google 搜尋 根據網路上的時事和事實生成回覆,減少幻覺。 回答近期事件相關問題,並透過多種來源驗證事實。
Google 地圖 建構位置辨識助理,可尋找地點、規劃路線及提供豐富的當地特色。 規劃有多個停靠點的旅遊行程,並根據使用者條件尋找當地商家。
執行程式碼 允許模型編寫及執行 Python 程式碼,解決數學問題或準確處理資料。 解出複雜的數學方程式,精確處理及分析文字資料。
網址背景資訊 引導模型讀取及分析特定網頁或文件的內容。 根據特定網址或文件回答問題,從不同網頁擷取資訊。
電腦使用 (預先發布版) 啟用 Gemini 即可查看畫面,並生成動作與網路瀏覽器 UI 互動 (用戶端執行)。 自動執行重複的網頁式工作流程,測試網頁應用程式使用者介面。
檔案搜尋 為自己的文件建立索引並進行搜尋,啟用檢索增強生成 (RAG)。 搜尋技術手冊、根據專有資料回答問題。

如要瞭解特定工具的相關費用,請參閱定價頁面。

工具執行的運作方式

模型可在對話期間透過工具要求執行動作。流程會因工具是內建 (由 Google 管理) 還是自訂 (由您管理) 而有所不同。

內建工具流程

如果是內建工具 (Google 搜尋、Google 地圖、網址背景資訊、檔案搜尋、執行程式碼),整個程序會在一次 API 呼叫中完成:

  1. 你傳送提示:「GOOG 最新股價的平方根是多少?」
  2. Gemini 判斷需要工具,並在 Google 伺服器上執行工具 (例如搜尋股價,然後執行 Python 程式碼來計算平方根)。
  3. Gemini 根據工具結果,傳回最終答案。

自訂工具流程 (函式呼叫)

如果是自訂工具和 Computer Use,應用程式會處理執行作業:

  1. 您會連同函式 (工具) 宣告傳送提示。
  2. Gemini 可能會傳回結構化 JSON,呼叫特定函式 (例如 {"name": "get_order_status", "args": {"order_id": "123"}}),且一律會附上專屬的 id。
  3. 您在應用程式或環境中執行函式。
  4. 您會將函式結果連同函式呼叫的 id 一併傳回給 Gemini。
  5. Gemini 會根據結果生成最終回覆,或呼叫其他工具。

詳情請參閱函式呼叫指南。

結合內建和自訂工具的流程

如果要求結合了內建工具和自訂工具 (函式呼叫),模型會使用工具情境循環,協調不同環境的執行作業:

  1. 您傳送提示,並宣告要啟用的內建工具和自訂函式,然後設定旗標來啟用組合支援。
  2. Gemini 會執行內建工具,並在產生任何用戶端函式呼叫時將控制權交給使用者 (執行順序取決於提示和模型判斷)。並傳回含有下列內容的回覆:
    • 確認工具呼叫
    • 工具回應的結果 (如果模型生成兩個平行函式呼叫,這可能會在 JSON 之後)
    • 呼叫函式的結構化 JSON
    • 加密想法簽名,保留脈絡
  3. 您在應用程式或環境中執行函式。
  4. 您會傳回 Gemini 回覆的所有部分,以及函式呼叫結果。
  5. Gemini 會使用所有合併的脈絡資訊生成最終回覆。

請參閱工具組合指南,瞭解如何啟用內建和自訂工具組合的支援功能,以及內容循環的範例。

結構化輸出與函式呼叫

Gemini 提供兩種生成結構化輸出的方法。當模型需要連線至您自己的工具或資料系統,執行中繼步驟時,請使用函式呼叫。如果需要模型最終回覆嚴格遵循特定結構定義 (例如轉譯自訂 UI),請使用結構化輸出。

使用工具產生結構化輸出內容

您可以結合結構化輸出與內建工具,確保模型回覆內容以外部資料或運算結果為依據,同時遵守嚴格的結構定義。

如需程式碼範例,請參閱「使用工具產生結構化輸出內容」。