Meme Generator

本指南提供實用方法,說明如何使用 Gemma 的函式呼叫功能來實作應用程式。這項技巧可透過精心設計的提示,套用至各種 Gemma 模型版本。如需更多資訊,請參閱「Chatbot 之外:Gemma 的代理 AI」。

函式呼叫說明

函式呼叫的常見結構包含幾個主要元件,可讓 Gemma 與外部工具或 API 互動。

  1. 說明工具
    您可以告訴模型可使用的「工具」(函式)。包括:

    • 工具的功能 (說明)
    • 工具需要哪些資訊 (參數)
  2. 使用者提出問題
    您向模型提出問題或指派工作

  3. Gemma 決定
    模型會判斷是否需要工具來回答問題。

  4. Gemma 要求工具
    如果需要工具,Gemma 會產生包裝有 ```tool_code``` 的程式碼

  5. 工具執行工作
    工具 (函式) 會從模型中擷取資訊,並執行應有的功能。

  6. 工具會傳回結果
    Gemma 預期會收到包裝在 ```tool_output``` 中的結果

  7. 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:工具執行工作

您將透過尋找程式碼區塊、剖析函式引數,以及執行函式,處理模型的輸出內容。

Meme Generator 的最終輸出內容