設計多模態提示

Gemini API 支援多模態輸入,您可以在 Gemini 模型提示中加入文字、圖片和影片。本頁提供設計多模態提示的最佳做法,以及提示無法正常運作時的疑難排解方法。如需提示設計的一般指南,請參閱建議的提示設計策略,或參閱下列多模態專屬最佳做法清單。

提示詞設計基本概念

以下各節說明設計有效多模態提示的基本最佳做法。

使用具體指令

提示詞越清楚詳細,結果就越符合需求。如果您有特定的輸出內容,請在提示中加入該要求,提高取得正確輸出內容的可能性。

即使提示對撰寫者來說似乎很清楚,但可能不夠具體。如要自訂模型行為,請考量提示可能如何解讀,並確保提供的指示具體明確。

如果您在提示中加入這張機場看板的圖片,要求模型「描述這張圖片」,模型可能會生成一般描述。如果需要模型從圖片中剖析時間和城市,請直接在提示中加入這項要求。

提示詞 模型回覆
機場時刻表,顯示時間和城市。

描述這張圖片。

圖片顯示機場航班抵達與起飛時刻資訊看板。

更新提示詞 改善回覆品質
機場時刻表,顯示時間和城市。

Parse the time and city from the airport board shown in this image into a list.

  • 10:50 莫斯科
  • 11:05 愛丁堡
  • 11:05 倫敦
  • 11:10 布加勒斯特
  • 11:30 基輔
  • 11:35 都柏林
  • 11:45 東密德蘭
  • 12:15 索菲亞
  • 12:30 倫敦
  • 12:30 新堡
  • 12:40 聖彼得堡
  • 12:40 倫敦
  • 12:45 曼徹斯特

新增樣本

模型可接受多個輸入內容做為範例,瞭解您想要的輸出內容。加入這些範例可協助模型找出模式,並將指定圖片與回應之間的關係套用至新範例。這稱為「少量樣本」學習。

在以下範例中,初始輸出內容是完整句子,其中也包含國家/地區 (巴西)。如果偏好的輸出內容只有城市,不含國家/地區,則可在提示中加入少量樣本,引導模型以該格式回覆。

提示詞 模型回覆
巴西里約熱內盧的救世基督像。

判斷地標所在的城市。

這個地標是巴西里約熱內盧的救世基督像。

更新提示詞 改善回覆品質

判斷地標所在的城市。

義大利羅馬競技場。

城市:羅馬,地標:羅馬競技場。

中國北京紫禁城。

city: Beijing, landmark: Forbidden City

巴西里約熱內盧的救世基督像。

城市:里約熱內盧,地標:救世基督像

將複雜工作拆成多項小工作

如果工作較為複雜,例如需要視覺理解和推論,請將工作拆解成較小、較簡單的步驟,或直接在提示中要求模型逐步思考。

提示詞 模型回覆
三捲衛生紙的圖片。

我的衛生紙什麼時候會用完?

不久後,你只剩下 3 捲。

更新提示詞 改善回覆品質
三捲衛生紙的圖片。
  1. 首先,請數數看這張圖片中有幾捲衛生紙。
  2. 接著,判斷一般人每天會使用多少衛生紙。
  3. 計算這些捲筒衛生紙可以用多久。
  1. 這張圖片中有 3 捲衛生紙。
  2. 一般人每天會使用約 20 張衛生紙。
  3. 如果每捲有 200 張,則每捲約可使用 10 天。因此,3 捲紙巾大約可用一個月。

數學問題或其他類型的文字問題,也可以拆解成較小的任務。

提示詞 回應
數學數列 b 的圖片。b(1) = 15,且 b(n) = b(n-1) * (-3)。

數列中的第 4 項為何?

-135

模型的回覆不正確。嘗試要求模型先剖析問題,再回答提示。

提示詞 回應
數學數列 b 的圖片。b(1) = 15,且 b(n) = b(n-1) * (-3)。

請先剖析圖片中的公式。

然後根據公式回答「數列中的第 4 項是什麼?」。

按一下即可展開結果 $$b(n) = b(n-1) * (-3)$$ $$b(1) = 15$$
  1. 將 n = 4 代入公式:

    $$b(4) = b(4-1) * (-3)$$

    $$b(4) = b(3) * (-3)$$

  2. 我們不知道 b(3) 的值,因此將 n = 3 代入公式:

    $$b(3) = b(3-1) * (-3)$$

    $$b(3) = b(2) * (-3)$$

  3. 我們不知道 b(2) 的值,因此將 n = 2 代入公式:

    $$b(2) = b(2-1) * (-3)$$

    $$b(2) = b(1) * (-3)$$

  4. 我們知道 b(1) 的值是 15,因此將其代入公式:

    $$b(2) = 15 * (-3)$$

    $$b(2) = -45$$

  5. 現在我們知道 b(2) 的值,將其代入 b(3) 的公式:

    $$b(3) = b(2) * (-3)$$

    $$b(3) = -45 * (-3)$$

    $$b(3) = 135$$

  6. 現在我們知道 b(3) 的值,將其代入 b(4) 的公式:

    $$b(4) = b(3) * (-3)$$

    $$b(4) = 135 * (-3)$$

    $$b(4) = -405$$

因此,序列中的第 4 項是 -405。

如要進一步簡化回覆,可以要求模型逐步思考提示。

更新提示詞 改善回覆品質
數學數列 b 的圖片。b(1) = 15,且 b(n) = b(n-1) * (-3)。

數列中的第 4 項是什麼?請逐步思考。

第一個詞是 15。

第二項是 b(1) * (-3) = 15 * (-3) = -45。

第三項是 b(2) * (-3) = -45 * (-3) = 135。

第四項是 b(3) * (-3) = 135 * (-3) = -405。

指定輸出格式

如果需要特定格式,可以指示模型使用該格式輸出。

提示詞 模型回覆
Excel 試算表圖片。

剖析這張圖片中的表格,並轉換成 Markdown 格式

| Subject   | Status      | Time    | Start date | Due on     |
|-----------|-------------|---------|------------|------------|
| Math      | Done        | 1.5 hrs | 11/29/2023 | 12/1/2023  |
| Geography | Done        | 30 min  | 12/2/2023  | 12/4/2023  |
| Physics   | In progress | 2 hrs   | 12/3/2023  | 12/5/2023  |
| Biology   | Not started | 6 hrs   | 11/2/2016  | 12/6/2023  |
        
提示詞 模型回覆
圖片:含有蝦、蛤蜊和其他食材的餐點。

請提供下列所有屬性的清單:

食材、料理類型、是否為素食,並以 JSON 格式呈現


        {
          "ingredients": [
            "rice",
            "shrimp",
            "clams",
            "mussels",
            "peas",
            "tomatoes",
            "onions",
            "garlic",
            "olive oil",
            "paprika",
            "salt",
            "pepper"
          ],
          "type of cuisine": "Spanish",
          "vegetarian": false
        }
        

排解多模態提示問題

排解提示問題時,可能需要改善提示用語、引導提示重點或調整參數。這些不同的方法可以改善結果,尤其是在判斷問題的根本原因之後。

聚焦於圖片的相關部分

如要提升回覆品質,請指出圖片中與提示最相關的部分。

提示詞 模型回覆
尿布盒側面的圖片,盒子上寫著 198。

這些尿布夠寶寶用幾天?

尿布可用 198 天。

更新提示詞 改善回覆品質
尿布盒側面的圖片,盒子上寫著 198。

這些尿布可以用多久?

請根據外盒標示的重量判斷嬰兒年齡,並使用盒內尿布總數。

將總數除以孩子每天使用的尿布數量。

一箱有 198 片尿布。包裝盒上註明尿布適合體重 22 至 37 磅的兒童。

這個體重範圍的兒童平均年齡可能介於 1 到 2 歲。

2 歲幼童通常每天會用 6 片尿布,因此這批尿布大約可用 33 天 (198/6)。

根據輸入內容調整模型回覆

要求模型先描述圖片,再執行提示中的工作。

提示詞 模型回覆
一張相片,呈現有人正在打包行李箱。 購物中心空無一人的走廊。 三捲衛生紙的圖片。 圖片:烏雲在海面上散開。

這些圖片有什麼共通點?

這四張圖片都是風景攝影範例。

更新提示詞 改善回覆品質
一張相片,呈現有人正在打包行李箱。 購物中心空無一人的走廊。 三捲衛生紙的圖片。 圖片:烏雲在海面上散開。

首先,請詳細描述每張圖片的內容。這些圖片有什麼共通點?

第一張圖片顯示有人在打包行李箱。第二張圖片顯示購物中心空無一人的走廊。第三張圖片顯示一捲衛生紙。第四張圖片顯示陰暗且波濤洶湧的海面。

這些圖片的共通點是,它們都是過渡空間的例子。閾限空間是指介於兩個地點或情境之間的地方或情況。這類問題通常具有不確定性或模糊性。

第一張圖片顯示使用者在家和出遊時的狀態。第二張圖片顯示兩間商店之間的走廊。第三張圖片是衛生紙,代表浴室。浴室是介於私人和公共領域之間的過渡空間。我們在這裡準備好進入或離開外面的世界。

第四張圖片顯示海面介於平靜和暴風雨之間。

閾限空間既令人興奮,又讓人不安。可以是新起點,也可以是終點。可以讓人反思,也可以讓人採取行動。

您可以明確要求模型參考圖片中的內容。

更新提示詞 改善回覆品質
一張相片,呈現有人正在打包行李箱。 購物中心空無一人的走廊。 三捲衛生紙的圖片。 圖片:烏雲在海面上散開。

這些圖片有什麼共通點?在回覆中提及圖片內容。

所有圖片都與旅遊相關。第一張圖片顯示有人正在打包行李箱,第二張圖片顯示購物中心空蕩蕩的走廊,第三張圖片顯示一疊衛生紙,第四張圖片顯示黑暗且波濤洶湧的海面。

這些圖片都與旅遊有關,因為都是人們在旅遊時需要或使用的物品。第一張圖片顯示有人在打包行李箱,這是人們在旅行時會做的事。第二張圖片顯示購物中心空蕩蕩的走廊,人們經常會到這裡購買旅行用品。第三張圖片顯示一疊衛生紙,這是人們旅行時經常使用的物品。第四張圖片顯示黑暗且暴風雨的海面,這是人們在旅行時經常會遇到的情況。

這些訣竅也適用於創意輸出。明確要求模型納入圖片中的元素,這樣可以提升輸出內容品質。

提示詞 模型回覆
棕色兔子的圖片。

可以根據這張圖片寫一首詩嗎?

Little bunny, so soft and brown,
        Hopping through the field, up and down.
        Your ears so long, your tail so small,
        You're the cutest creature of them all.
You nibble on the grass, so green and sweet,
        And hop away when you see me.
        But I'll always be your friend,
        Little bunny, until the very end.
更新提示詞 改善回覆品質
棕色兔子的圖片。

請根據這張圖片寫一首詩,內容要生動、戲劇化,並提及地點。

Little bunny on the green,
        Ears so long, so keen.
        What do you see out there,
        In the distance, where you stare?
Is it the ocean blue,
        Sparkling in the sun's hue?
        Or the waves that crash and roar,
        A rhythm that you adore?
Little bunny, tell me true,
        What captures your attention so?
        Is it the salty breeze,
        Or the seagulls' cries that please?
Perhaps it's the vastness of it all,
        A world so big and small.
        A place where dreams can roam,
        And adventures can be sown.
Little bunny, I wonder what you dream,
        As you sit on the grass, so serene.
        Do you yearn to explore the deep,
        Or stay on land, where you can leap?
Whatever it may be, little bunny,
        Keep that spark of wonder burning brightly.
        For in your dreams and aspirations,
        Lies a world waiting for your creation.

判斷提示失敗的原因

提示失敗的原因可能是模型完全不理解圖片,或後續未執行正確的推論步驟。如要釐清原因,請要求模型描述圖片中的內容。

在這個例子中,如果模型回覆的點心與茶搭配起來很奇怪 (例如爆米花),請先判斷模型是否辨識出圖片中有茶。

提示詞 疑難排解提示
茶具組的圖片。

有什麼點心可以在 1 分鐘內做好,而且適合搭配這道料理?

茶具組的圖片。

描述這張圖片的內容。

要求模型說明推論過程,有助於縮小範圍,找出推論過程中的錯誤 (如有)。

提示詞 疑難排解提示
茶具組的圖片。

有什麼點心可以在 1 分鐘內做好,而且適合搭配這道料理?

茶具組的圖片。

有什麼點心可以在 1 分鐘內做好,而且適合搭配這道菜?請說明原因。

排解 Cloud Storage 存取權和權限問題

Agent Platform 驗證及限制 Cloud Storage (gs://) URI 的方式,取決於 API 端點:

  • generateContent 和 Agent Studio:Agent Platform 會使用呼叫專案的 Agent Platform 服務代理程式 (service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com) 存取 gs:// 物件,而非您的個人使用者憑證。此外,Agent Platform 支援的 gs:// URI 數量上限取決於各模態的模型項目限制 (圖片和 PDF 檔合計 3,000 個、音訊檔案 1,000 個、影片 10 部,以及多模態檔案合計 6,500 個,包括純文字檔案,每個檔案大小上限為 2 GiB 減 500 KiB)。
  • Interactions API:模型互動要求會使用呼叫者的憑證,檢查 storage.objects.get 權限,做為預檢步驟,然後呼叫專案的 Agent Platform 服務代理才會從 Cloud Storage 擷取物件。如果是跨專案 Cloud Storage bucket,或具有自訂 IAM 政策的 Cloud Storage bucket,則通過驗證的呼叫端和服務代理都需要具備讀取權限。要求最多支援 100 個不同的 gs:// URI,涵蓋目前對話和任何連結的 previous_interaction_id 記錄。如要瞭解 Interactions API 設定和錯誤處理方式,請參閱「存取上傳的 Cloud Storage 檔案」。

如果要求在存取 Cloud Storage 輸入檔案 (HTTP 403) 時失敗,並顯示權限錯誤,請檢查下列事項:

  1. 授予 Cloud Storage bucket 的 Storage 物件檢視者角色:確認呼叫專案的 Agent Platform 服務代理,具備包含檔案的 Cloud Storage bucket 的 Storage Object Viewer (roles/storage.objectViewer) 角色 (如果是 Interactions API 要求,也請將 roles/storage.objectViewer 授予已驗證的呼叫主體):

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
      --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com" \
      --role="roles/storage.objectViewer"
    
  2. 跨專案 Cloud Storage bucket 存取權:如果 Cloud Storage bucket 位於與 Agent Platform 專案不同的 Google Cloud 專案,請將 roles/storage.objectViewer 授予啟動 Agent Platform 要求的專案服務代理 (以及呼叫 Interactions API 時的呼叫主體)。

  3. 強化事實基礎和工具相容性:處理 Cloud Storage 媒體輸入內容時,請確認設定面板中的「以 Google 搜尋強化事實基礎」功能已停用,或確認工具與所選模型版本相容。

調整取樣參數

在每項要求中,您不只會傳送多模態提示,還會傳送一組取樣參數給模型。參數值不同,生成的結果也可能會不同。實驗不同參數,取得最適合工作目標的值。最常調整的參數如下:

溫度參數

Temperature 會在生成回覆時用於取樣,這會在套用 top-P 和 top-K 時發生。溫度參數會決定選取詞元時的隨機程度。如果您想藉由提示生成更具確定性、較不具開放性和創意性的回覆,建議調低 Temperature。另一方面,如果 Temperature 較高,則可能產生較多元或有創意的結果。Temperature 為「0」代表具有確定性,即模型最有可能選取可能性最高的回覆。

以大部分用途來說,可以先將 Temperature 設為「0.4」,如需更具創意的結果,請提高溫度。如果發現明顯的幻覺,請調低溫度。

Top-P

「Top-P」會影響模型選取輸出符記的方式。模型會按照機率最高到最低的順序選取詞元,直到所選詞元的機率總和等於 Top-P 值。舉例來說,假設詞元 A、B 和 C 的可能性分別為 0.6、0.3 和 0.1,而 Top-P 值為 0.9,模型會依據溫度參數選擇 A 或 B 做為下一個詞元,並排除 C。

如要取得較不隨機的回覆,請指定較低的值;如要取得較隨機的回覆,請調高此值。Top-P 的預設值為 1.0。

後續步驟