iT邦幫忙

2025 iThome 鐵人賽

DAY 14
0

一、定義規格

要讓AI使用一個函式,我們必須用它能理解的結構化格式來描述這個工具。這通常是一個詳細說明函式名稱、用途以及所有參數的JSON結構。

例如用一個 get_tourist_attractions 函式來查詢景點。我們必須精確告知 AI這個函式需要一個名為 city 的參數,而且它是一個字串。

#  定義工具規格
tourist_tool_spec = {
    "name": "get_tourist_attractions",
    "description": "查詢特定城市的熱門景點、飯店或住宿地點。",
    "parameters": {
        "type": "OBJECT",
        "properties": {
            "city": {"type": "STRING", "description": "要查詢的城市名稱。"}
        },
        "required": ["city"]
    }
}

二、程式碼區塊

雖然模型可以理解JSON規格,但在實際運行中,我們需要確保模型可以識別並執行對應的Python函式。在程式碼中,這個被呼叫的 Python 函式就是 get_tourist_attractions。它的職責是執行 API 呼叫並回傳結果。

當使用者問台北的景點,模型會判斷需要使用這個工具,並生成 JSON:
{"name": "get_tourist_attractions", "args": {"city": "台北"}}
我們的程式會捕捉到這個JSON,然後執行我們寫好的Python函式。

三、傳遞工具給模型

最後必須將這些定義好的工具傳遞給模型。

model = genai.GenerativeModel(
    model='gemini-2.5-flash',
    tools=[tourist_tool_spec]  
)

透過這個方法就能告知模型遇到查詢景點的需求時,使用這個工具
明天會實作 get_tourist_attractions 內部與Google Maps API的實際串接邏輯,謝謝各位今天的觀看。


上一篇
【Day13】認識 Function Calling
下一篇
【Day15】如何串接 API
系列文
智慧旅遊顧問--結合 LLM 與 RAG 架構的台灣旅遊資訊助手17
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言