iT邦幫忙

2024 iThome 鐵人賽

DAY 17
0

4-4 Gemini Function Calling 技術說明

提示
https://ithelp.ithome.com.tw/upload/images/20240811/2004616031ygyxYpDK.png

支援的模型

下列模型支援函式呼叫:

  • gemini-1.0-pro
  • gemini-1.0-pro-001
  • gemini-1.5-flash-latest
  • gemini-1.5-pro-latest

編按:之後的模型應該都有

Function Calling

前言

在實作函數調用(Function Calling)功能之前,必須先了解為什麼我們需要這個功能。想像一下,我們想要知道"今天會不會下雨",這樣的問題,我們直接詢問大型語言模型(LLMs),就能夠得到答案嗎?如果在無法存取到氣象局的資訊之前,LLMs 只能憑空捏造出對應的答案,你可以想像這會是一個怎樣的災難!

因此,我們需要將取得氣象局資訊的功能告訴 LLMs,當使用者的問題符合需要天氣資訊的意圖時,LLMs 就會呼叫這個功能,去取得氣象局所回應的資訊,並且結合這些真實的數據來回答使用者的問題。

實作

在 Gemini 中實作函數調用(Function Calling)可以實現很多功能。我們這裡將從較簡單的例子——數學運算開始,到較複雜的用 API 呼叫氣象局的資訊。

數學運算範例

假設我們希望 LLMs 能夠處理一些基本的數學運算。為了實現這一點,我們需要定義一個數學運算的函數,並將這個函數的資訊告訴 LLMs。當使用者輸入需要進行數學運算的問題時,LLMs 就會呼叫這個函數,並返回計算結果。

用 API 呼叫氣象局資訊範例

這是一個比較複雜的範例,涉及到 API 的呼叫。當使用者詢問天氣相關的問題時,LLMs 將會識別出這是一個需要天氣資訊的請求,然後呼叫預先定義的氣象局 API,取得最新的天氣資訊,並將結果返回給使用者。

工作流程

下面是實現這個過程的基本工作流程圖:

graph LR
    A[用戶輸入] --> B(處理輸入)
    B --> C{是否符合函數調用?}
    C -->|是| D[執行函數]
    D --> E[生成回應]
    E --> F[返回回應]
    C -->|否| E
    F --> G[輸出回應]

  1. 用戶輸入:使用者輸入需要解決的問題。
  2. 處理輸入:LLMs 分析輸入內容。
  3. 是否符合函數調用:判斷輸入內容是否需要呼叫函數。
    • :執行相應的函數。
    • :直接生成回應。
  4. 執行函數:呼叫相關函數獲取數據或執行操作。
  5. 生成回應:根據函數返回的結果生成回應內容。
  6. 返回回應:將生成的回應內容返回給用戶。
  7. 輸出回應:輸出最終回應結果。

透過這樣的實作方式,我們可以讓 LLMs 在處理複雜問題時,不僅僅依賴預訓練的知識,還可以動態地調用外部函數,獲取最新、最準確的數據來回答使用者的問題。

關於我

我是 Wolke。我是一名專業程式開發者,專長是開發 AI 和程式解決方案。

我投入了不少時間在專業發展上。我是多本書的作者,其中包括《LINE聊天機器人+AI+雲端+開源+程式:輕鬆入門到完整學習》《ChatGPT來襲,未來人人都需具備的運算思維!應用詠唱工程來釋放程式生產力—程式學習/開發篇》。也有出版線上課程,我熱衷於分享我的經驗和技術,幫助其他開發者更好地利用 AI 工具。

也在許多知名大學、論壇、社團擔任講者,如果貴方有需要也歡迎與我聯繫。
2023年 講座 紀錄

最後這篇文章若有切合你的需求,敬請訂閱按讚分享


上一篇
4-3 Gemini API: Embeddings 快速入門指南
系列文
運用生成式 AI 服務 所提供的API 實做應用開發(以Gemini及ChatGPT為例)17
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言