提示
下列模型支援函式呼叫:
gemini-1.0-pro
gemini-1.0-pro-001
gemini-1.5-flash-latest
gemini-1.5-pro-latest
編按:之後的模型應該都有
在實作函數調用(Function Calling)功能之前,必須先了解為什麼我們需要這個功能。想像一下,我們想要知道"今天會不會下雨",這樣的問題,我們直接詢問大型語言模型(LLMs),就能夠得到答案嗎?如果在無法存取到氣象局的資訊之前,LLMs 只能憑空捏造出對應的答案,你可以想像這會是一個怎樣的災難!
因此,我們需要將取得氣象局資訊的功能告訴 LLMs,當使用者的問題符合需要天氣資訊的意圖時,LLMs 就會呼叫這個功能,去取得氣象局所回應的資訊,並且結合這些真實的數據來回答使用者的問題。
在 Gemini 中實作函數調用(Function Calling)可以實現很多功能。我們這裡將從較簡單的例子——數學運算開始,到較複雜的用 API 呼叫氣象局的資訊。
假設我們希望 LLMs 能夠處理一些基本的數學運算。為了實現這一點,我們需要定義一個數學運算的函數,並將這個函數的資訊告訴 LLMs。當使用者輸入需要進行數學運算的問題時,LLMs 就會呼叫這個函數,並返回計算結果。
這是一個比較複雜的範例,涉及到 API 的呼叫。當使用者詢問天氣相關的問題時,LLMs 將會識別出這是一個需要天氣資訊的請求,然後呼叫預先定義的氣象局 API,取得最新的天氣資訊,並將結果返回給使用者。
下面是實現這個過程的基本工作流程圖:
graph LR
A[用戶輸入] --> B(處理輸入)
B --> C{是否符合函數調用?}
C -->|是| D[執行函數]
D --> E[生成回應]
E --> F[返回回應]
C -->|否| E
F --> G[輸出回應]
透過這樣的實作方式,我們可以讓 LLMs 在處理複雜問題時,不僅僅依賴預訓練的知識,還可以動態地調用外部函數,獲取最新、最準確的數據來回答使用者的問題。
我是 Wolke。我是一名專業程式開發者,專長是開發 AI 和程式解決方案。
我投入了不少時間在專業發展上。我是多本書的作者,其中包括《LINE聊天機器人+AI+雲端+開源+程式:輕鬆入門到完整學習》和《ChatGPT來襲,未來人人都需具備的運算思維!應用詠唱工程來釋放程式生產力—程式學習/開發篇》。也有出版線上課程,我熱衷於分享我的經驗和技術,幫助其他開發者更好地利用 AI 工具。
也在許多知名大學、論壇、社團擔任講者,如果貴方有需要也歡迎與我聯繫。
2023年 講座 紀錄
最後這篇文章若有切合你的需求,敬請訂閱按讚分享