搭配 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 會根據工具結果傳回最終答案。

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

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

  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),請使用結構化輸出內容

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

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

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