本指南提供實用方法,說明如何使用 Gemma 的函式呼叫功能來實作應用程式。這項技巧可透過精心設計的提示,套用至各種 Gemma 模型版本。如需更多資訊,請參閱「Chatbot 之外:Gemma 的代理 AI」。
函式呼叫說明
函式呼叫的常見結構包含幾個主要元件,可讓 Gemma 與外部工具或 API 互動。
說明工具
您可以告訴模型可使用的「工具」(函式)。包括:- 工具的功能 (說明)
- 工具需要哪些資訊 (參數)
使用者提出問題
您向模型提出問題或指派工作Gemma 決定
模型會判斷是否需要工具來回答問題。Gemma 要求工具
如果需要工具,Gemma 會產生包裝有 ```tool_code``` 的程式碼工具執行工作
工具 (函式) 會從模型中擷取資訊,並執行應有的功能。工具會傳回結果
Gemma 預期會收到包裝在 ```tool_output``` 中的結果Gemma 提供最終答案
模型會使用工具的結果,為您提供完整且準確的答案。
實用提示
- JSON 結構定義:雖然不是必要,但使用 JSON 結構定義參數可提供一致的結構和自動驗證的優點。
- 清楚理解:函式說明的品質對於模型正確識別何時使用函式至關重要。
- 錯誤處理:為了處理函式呼叫失敗或傳回非預期結果的情況,必須採用可靠的錯誤處理機制。
- 疊代程序:有時模型和函式呼叫之間會進行多次對話。
提示和輸出結果範例
您可以在 Gemma Cookbook 程式碼存放區中找到這個應用程式的程式碼。
步驟 1 和 2:說明工具並提供任務
輸入內容:貓咪的搞笑圖片
文字輸入內容:
If you decide to invoke any of the function(s), it should be wrapped with ```tool_code```.
You have access to the following tools.
* `generate_meme(image, top_text, middle_text, bottom_text)`: Generate a meme with the given parameters
Make a funny meme with this. "meme.jpg"
步驟 3:Gemma 決定並要求使用工具
這個提示會產生下列回應:
Okay, here's a funny meme based on the image of the surprised cat: ```tool_code generate_meme(image="meme.jpg", top_text="Me when I hear a creak", middle_text="Is it safe?", bottom_text="Probably not.") ```
步驟 4:工具執行工作
您將透過尋找程式碼區塊、剖析函式引數,以及執行函式,處理模型的輸出內容。