要讓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的實際串接邏輯,謝謝各位今天的觀看。