iT邦幫忙

2026 iThome 鐵人賽

DAY 16
0

接下來往自動化再邁進一步,今天開始認識 Tool Calling,主要是想要讓 Gemini 可以更動態的選擇功能。從原本利用 Prompt 規定 Gemini 四選一回傳適合的功能名稱,改成透過 Tool Calling,它就可以自行判斷是否需要呼叫 Tool 。

Tool Calling 的流程?

一個可以使用的 Tool 通常包含 Tool 的名稱(name)、用途(description)以及需要的參數(schema)。這些資訊會提供給 Gemini,讓它可以理解每個 Tool 是做什麼的,再根據使用者的問題判斷需要使用哪一個。

基本的流程會如下:

  1. 宣告可以使用的 Tool
    ↓
  2. 根據使用者提出問題,Gemini 判斷需要哪個 Tool
    ↓
  3. 回傳 functionCall, Java 取得需要的 Tool
    ↓
  4. executeTool() 執行對應分析

Function Declaration

https://ithelp.ithome.com.tw/upload/images/20260929/2018423540wpRpWKPM.png
這裡的 name 是 Tool 的名稱,而 description 則是告訴 Gemini 這個 Tool 可以做什麼。這次把原本的四個分析功能都放進 functionDeclarations , Gemini 就可以根據這些描述和使用者的問題判斷需要哪個 Tool。

Function Call

就像是 Gemini 跟 Java 的通訊系統一樣。透過 Function Call , Gemini 就可以告訴 Java 「我要使用這個 Tool 」。
https://ithelp.ithome.com.tw/upload/images/20260929/20184235hQGj53tPTV.png
這裡又用到前面學過的 Gson ,先確認回傳內容中有沒有 functionCall,有的話再取得裡面的 name,就可以知道 Gemini 想要使用哪一個 Tool。

原本以為 Tool Calling 就只是讓 AI,但實際做過後發現在讓 Gemini 選擇之前,還需要先描述有哪些 Tool、每個 Tool 可以做什麼。Gemini 判斷後也不是直接執行 Java 程式,而是先透過 functionCall 告訴 Java要使用哪個 Tool,再由 Java 執行真正的分析。


上一篇
如何讓篩選過的分析結果繼續被使用?
下一篇
延續簡易Tool Calling,處理 Function Response
系列文
30 天從資料處理、分析到生成式 AI 的整合應用與實作學習 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言