Vertex AI 的「利用 Google 地圖建立基準」

本頁說明 Vertex AI 的「利用 Google 地圖建立基準」功能如何提供地理空間背景資訊,進而提升生成式 AI 應用程式的效用。

總覽

Vertex AI 的「利用 Google 地圖建立基準」是預先發布的服務,可將 Gemini 模型與 Google 地圖的地理空間資料連結。Google 地圖可存取數百萬個地點的資訊, 包括商家、地標和搜尋點。這項資料可讓您存取超過 2.5 億個地點的資訊,用於做為模型回覆的依據,讓 AI 應用程式和代理程式提供當地資料和地理空間背景資訊。

利用 Google 地圖建立基準的用途

您可以將「利用 Google 地圖建立基準」功能用於各種應用程式,例如:

  • 聊天機器人。
  • 地點資訊摘要。
  • 翻譯內容。
  • 對話式助理,可回答附近地點相關問題,例如「附近有公園嗎?」。
  • 地點的個人化說明,例如「可以進一步介紹公園,以及步行可達的家庭友善餐廳嗎?」

這項功能適用於房地產、旅遊、交通運輸和社群應用程式等產業。

如需「運用 Google 地圖建立基準」的技術支援,請傳送電子郵件至 maps-grounding-feedback-external@google.com。

支援的模型

本節列出支援 Google 地圖基礎模型的模型。

如要進一步瞭解 Gemini 模型,請參閱「Gemini 模型」。

使用「利用 Google 地圖建立基準」功能,讓模型回覆內容有依據

這個程式碼範例會示範如何使用 Google 地圖基礎功能,為模型回覆提供基礎資訊。

您可以使用經緯度座標,為特定地理位置自訂搜尋結果。詳情請參閱 Grounding API。

控制台

如要在 Vertex AI Studio 中使用「利用 Google 地圖建立基準」,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Vertex AI Studio」頁面。

    前往 Vertex AI Studio

  2. 按一下「任意形式」Freeform分頁標籤。
  3. 在側邊面板中,按一下「基礎模型回覆」切換鈕。
  4. 按一下「自訂」,然後將 Google 地圖設為來源。
  5. 在文字方塊中輸入提示,然後按一下「提交」

根據 Google 地圖提供的提示回覆。

REST

使用任何要求資料之前,請先替換以下項目:

  • LOCATION:處理要求的區域。
  • PROJECT_ID:您的專案 ID
  • MODEL_ID:多模態模型的模型 ID。
  • TEXT: 提示中要加入的文字指令。
  • LATITUDE:地點的緯度。舉例來說,緯度 37.7749 代表舊金山。您可以使用 Google 地圖或其他地理編碼工具等服務取得經緯度座標。
  • LONGITUDE:地點的經度。舉例來說,經度 -122.4194 代表舊金山。

HTTP 方法和網址:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent

JSON 要求主體:

{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "TEXT"
    }]
  }],
  "tools": [{
    "googleMaps": {}
  }],
  "toolConfig": {
    "retrievalConfig": {
      "latLng": {
        "latitude": LATITUDE,
        "longitude": LONGITUDE
      }
    }
  },
  "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID"
}

如要傳送要求,請展開以下其中一個選項:

您應該會收到如下的 JSON 回應:

{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "\"The Italian Place\" in Alexandria, VA, is good for children and offers takeout. It has a rating of 4.2 stars based on 411 reviews."
          }
        ]
      },
      "finishReason": "STOP",
      "groundingMetadata": {
        "groundingChunks": [
          {
            "maps": {
              "uri": "https://maps.google.com/?cid=9001322937822692826",
              "title": "The Italian Place",
              "text": "**About:**\n\n* **Type:** Italian Restaurant\n* **Address:** 621 Wythe St, Alexandria, VA 22314, USA\n* **Open Now:** Yes\n* **Rating:** 4.2 (411 reviews)\n* **Price Level:** Moderate\n* **Phone:** (571) 777-8981\n* **Summary:** Down-to-earth, counter-serve stop offering Italian sandwiches, coffee & market goods.\n* **Additional Summary:** Relaxed Italian eatery known for sandwiches and pizza along with gourmet food items and gelato.\n* **Offers Takeout:** Yes\n* **Offers Delivery:** Yes\n* **Offers Dine-in:** Yes\n* **Good for Children:** Yes\n* **Has Restroom:** Yes\n* **Outdoor Seating:** Yes\n* **Live Music:** No\n* **Menu for Children:** No\n* **Serves Dessert:** Yes\n* **Serves Coffee:** Yes\n* **Good for Watching Sports:** No\n* **Serves Lunch:** Yes\n* **Serves Dinner:** Yes\n* **Serves Beer:** Yes\n* **Serves Vegetarian Food:** Yes\n\n**Opening Hours (local time):**\n\n* Monday: 11:00 AM – 7:00 PM\n* Tuesday: 10:00 AM – 7:00 PM\n* Wednesday: 11:00 AM – 7:00 PM\n* Thursday: 11:00 AM – 7:00 PM\n* Friday: 11:00 AM – 7:00 PM\n* Saturday: 11:00 AM – 7:00 PM\n* Sunday: 12:00 – 7:00 PM\n\n**Parking options:**\n\n* **Free parking lot:** Yes\n* **Free street parking:** Yes\n* **Valet parking:** No\n\n**Accessibility:**\n\n* **Wheelchair accessible parking:** Yes\n* **Wheelchair accessible restroom:** Yes\n\n**Payment options:**\n\n* **Credit Card:** Yes\n* **Debit Card:** Yes\n* **Cash Only:** No\n* **NFC:** Yes\n\n**Distance & Travel Time:**\n\n* 384.6 kilometers\n* 4.2 hours",
              "placeId": "places/ChIJOTRDf_qwt4kR2kV_WYUf63w"
            }
          },
          ...
        ],
        "groundingSupports": [
          {
            "segment": {
              "endIndex": 79,
              "text": "\"The Italian Place\" in Alexandria, VA, is good for children and offers takeout."
            },
            "groundingChunkIndices": [
              0
            ]
          },
          {
            "segment": {
              "startIndex": 80,
              "endIndex": 130,
              "text": "It has a rating of 4.2 stars based on 411 reviews."
            },
            "groundingChunkIndices": [
              0
            ]
          }
        ],
        "googleMapsWidgetContextToken": "widgetcontent/..."
      }
    }
  ],
  ...
}

選用:Google 地圖情境小工具

情境小工具是 Google 地圖正式發布前產品,屬於視覺化容器,用於支援或補充其他 Google 地圖內容。您可以透過 Google 地圖情境小工具,將 Grounding with Google Maps 整合至應用程式,打造以對話式 LLM 為基礎的即時通訊體驗。情境小工具會使用脈絡權杖 (googleMapsWidgetContextToken) 算繪,該權杖會在 Vertex AI API 回應中傳回,可用於算繪視覺內容。

情境小工具會根據不同情境提供不同功能:

  • 在 Google 地圖提示用於生成答案的情況下,這項功能會顯示主觀的使用者原創內容 (UGC)。

  • 當 Vertex AI 只生成文字回覆時,這項功能有助於在結果中加入地圖視覺化效果和資料。

如要進一步瞭解內容相關小工具,請參閱「地圖基礎小工具」。

算繪 Google 地圖情境小工具

如要算繪及使用 Google 地圖情境小工具,請在顯示小工具的頁面上使用 Google Maps JavaScript API 的 Alpha 版。詳情請參閱「載入 Maps JavaScript API」。

下列程式碼範例說明如何使用情境式小工具:

HTML

  1. 建立情境小工具。

      <body>
        <gmp-place-contextual id="widget"></gmp-place-contextual>
      </body>
    
  2. 在任何以 Google 地圖為基礎的回覆中,都會有對應的 googleMapsWidgetContextToken,用於算繪內容相關的小工具,並放置在產生的回覆附近。

    如要更新內容權杖,請設定 widget.contextToken property

    "googleMapsWidgetContextToken": "widgetcontent/AcBXPQdpWQWbap9H-OH8sEKmOXxmEKAYvff0tvthhneMQC3VrqWCjpnPBl4-Id98FGiA_S_t8aeAeJj0T6JkWFX56Bil8oBSR0W8JH3C_RSYLbTjxKdpxc9yNn6JcZTtolIRZon9xi6WpNGuSyjcIxWu2S0hwpasNOpUlWrG1RxVCB4WD1fsz_pwR236mG36lMxevXTQ_JnfdYNuQwQ4Lc3vn...<snip>...
    Ts5VJE_b3IC5eE_6wez0nh61r7foTUZpP7BXMwxR-7Wyfcj6x1v6mIWsFGr1o0p_HSAMNqWPg-aFVnkPLhAkOR6MaNZOfezTva-gxHlu7z_haFvYxcUE1qfNVQ",
    
    function updateWidget(contextToken) {
      let widget = document.querySelector('#widget');
      widget.contextToken = contextToken;
    }
    
  3. 選用:指定清單版面配置。有效值包括:

    • 精簡版面配置<gmp-place-contextual-list-config layout="compact">
    • 直向版面配置<gmp-place-contextual-list-config layout="vertical">

    這個程式碼範例示範如何將清單版面配置變更為精簡版面配置。

        <gmp-place-contextual id="widget">
          <gmp-place-contextual-list-config layout="compact">
          </gmp-place-contextual-list-config>
        </gmp-place-contextual>
    
  4. 選用:變更地圖模式。有效值包括:

    • 2D 發展藍圖地圖map-mode="roadmap"
    • 3D 混合地圖map-mode="hybrid"
    • 沒有地圖map-mode="none"

    這個程式碼範例示範如何將地圖模式變更為 2D 地圖。

        <gmp-place-contextual id="widget">
          <gmp-place-contextual-list-config map-mode="roadmap">
          </gmp-place-contextual-list-config>
        </gmp-place-contextual>
    

JavaScript

  1. 建立情境小工具。

    async function createWidget(contextToken) {
      await google.maps.importLibrary('places');
      let widgetContainer = document.querySelector('#wc');  // a div that contains the widget
      const placeContextualElement = new
          google.maps.places.PlaceContextualElement({ contextToken });
      widgetContainer.appendChild(placeContextualElement);
    }
    
  2. 在任何以 Google 地圖為基礎的回覆中,都會有對應的 googleMapsWidgetContextToken,用於算繪內容相關的小工具,並放置在產生的回覆附近。

    如要更新內容權杖,請設定 widget.contextToken 屬性。

      "googleMapsWidgetContextToken": "widgetcontent/AcBXPQdpWQWbap9H-OH8sEKmOXxmEKAYvff0tvthhneMQC3VrqWCjpnPBl4-Id98FGiA_S_t8aeAeJj0T6JkWFX56Bil8oBSR0W8JH3C_RSYLbTjxKdpxc9yNn6JcZTtolIRZon9xi6WpNGuSyjcIxWu2S0hwpasNOpUlWrG1RxVCB4WD1fsz_pwR236mG36lMxevXTQ_JnfdYNuQwQ4Lc3vn...<snip>...
      Ts5VJE_b3IC5eE_6wez0nh61r7foTUZpP7BXMwxR-7Wyfcj6x1v6mIWsFGr1o0p_HSAMNqWPg-aFVnkPLhAkOR6MaNZOfezTva-gxHlu7z_haFvYxcUE1qfNVQ",
    
      function updateWidget(contextToken) {
        widget.contextToken = contextToken;
      }
    
  3. 選用:指定清單版面配置。有效值包括:

    • 精簡版面配置layout: google.maps.places.PlaceContextualListLayout.COMPACT
    • 直向版面配置layout: google.maps.places.PlaceContextualListLayout.VERTICAL

    這個程式碼範例示範如何將清單版面配置變更為精簡版面配置。

      const widgetConfig = new google.maps.places.PlaceContextualListConfigElement({
        layout: google.maps.places.PlaceContextualListLayout.COMPACT
      });
      widget.appendChild(widgetConfig);
    
  4. 選用:變更地圖模式。有效值包括:

    • 2D 發展藍圖地圖mapMode: google.maps.places.PlaceContextualListMapMode.ROADMAP
    • 3D 混合地圖mapMode: google.maps.places.PlaceContextualListMapMode.HYBRID
    • 沒有地圖mapMode: google.maps.places.PlaceContextualListMapMode.NONE

    這個程式碼範例示範如何將地圖模式變更為 2D 地圖。

      const widgetConfig = new google.maps.places.PlaceContextualListConfigElement({
        mapMode: google.maps.places.PlaceContextualListMapMode.ROADMAP
      });
      widget.appendChild(widgetConfig);
    

來源出處資訊相關規定

如果 Vertex AI 生成的內容直接引用「利用 Google 地圖建立基準」功能提供的資訊,您必須指明用於支援回覆的 Google 地圖來源。

這張圖片顯示用於支援模型回覆的 Google 地圖來源。

提示,並顯示回覆來源

告知使用者基礎來源的使用情形

您必須告知使用者下列事項:

  • 用來支援 LLM 生成內容的基礎來源,與內容的距離很近。
  • 在一次使用者互動中,必須能查看基礎來源。

顯示 Google 地圖來源網址

Google 地圖來源會傳回 groundingMetadata 內的 groundingChunksgroundingSupports。系統會傳回地點和支援地點答案內容 (例如使用者評論) 的 Google 地圖來源,這些來源已用於生成回覆。

這個程式碼範例會顯示回應中的地點來源和地點答案來源:

  "groundingChunks": [
            {
              "maps": {
                "uri": "{Link to Maps Content}",
                "title": "{Name of Maps Place}",
                "text": "{Maps content that was sent to the model for this place}"
                "placeId": "{Place ID}",
                "placeAnswerSources":
                                  {
                    "review": "",
                    "authorAttribution": {
                      "displayName": "",
                      "photoUri": ""
                    },
                    "flagContentUri": "",
                    "googleMapsUri": ""
                  },
              },
               "flagContentUri": ""
              }
            }
          }
        ],

針對大型語言模型參照的每個來源,都必須按照下列規定生成連結預覽畫面:

  • 請按照文字出處資訊 指引,將每個來源歸因於 Google 地圖。
  • 顯示 Open Graph 頁面標題 (og:title) 或採用以下格式的標題:

    [Place Name] - Google Maps

  • 使用來源網址前往來源資料。

如果 groundingChunks 中有地點相關答案來源,請務必執行下列操作:

  • grounding_chunks.maps.placeAnswerSources.reviewSnippets.googleMapsUri 中顯示評論連結。
  • 顯示 Open Graph 標題或格式為
    的標題。

    Google Review of [Place Name] by [Author Name]

    Place Name 位於 grounding_chunks.maps.titleAuthor Name 位於 grounding_chunks.maps.placeAnswerSources.reviewSnippets.authorAttribution.displayName
  • 選用:加入其他內容,例如:

    • Google 地圖網站小圖示 (<link rel="icon" href="https://www.google.com/favicon.ico">) 插入 Google 地圖文字出處之前。
    • 說明 (og:description)
    • 相片 (og:image)

這些圖片顯示最低要求,也就是顯示地點連結。

提示,並顯示回覆來源

您可以收合「來源」的檢視畫面。

提示、回覆和來源已收合

這張圖片顯示地點相片,可選擇性連結至來源屬性的預覽畫面。

提示、回覆和來源

禁止的地域

為維護安全可靠的平台,Google 地圖會限制特定內容和活動。如需禁止地區清單,請參閱「Google 地圖平台禁止地區」。

地點屬性

本節列出用於描述地點的地點屬性,以及 Grounding with Google Maps 用於生成回覆的屬性。這些屬性是用來判斷 Grounding with Google Maps 可回答的問題類型。

地點屬性範例

這份清單提供地點的屬性範例 (依字母順序排列),模型可使用這些屬性生成回覆。

  • 地址
  • 店外取貨
  • 簽帳金融卡
  • 距離
  • 免費停車場
  • 提供現場音樂演奏
  • 兒童菜單
  • 營業時間
  • 付款方式 (例如現金信用卡)
  • 地點回答
  • 寵物友善
  • 供應啤酒
  • 供應素食料理
  • 有無障礙設施
  • Wifi

地點答案是 Grounding with Google Maps 根據使用者評論資訊提供的回覆。如果中繼資料中提供的地點答案內容有問題,可以使用 API 回應中 PlaceAnswerSources 物件內 flagContentUri 欄位的連結向 Google 舉報。

使用地點屬性的範例

以下範例在有關不同類型地點的問題中,使用地點屬性。以 Google 地圖為基礎時,系統會使用屬性瞭解你的意圖,然後根據 Google 地圖中與地點相關聯的資料,提供相關回覆。

  • 規劃家庭聚餐:你可能會問「『The Italian Place』適合帶孩子去嗎?有提供外帶服務嗎?他們的評分是多少?

    這些問題的答案有助於判斷餐廳是否適合家庭用餐,以及是否提供便利的服務。

  • 為朋友確認無障礙設施:你可能會說「我需要有無障礙入口的餐廳」。

    這項提示的回覆內容可協助你判斷該地點是否符合特定無障礙需求。

  • 尋找宵夜地點:你可以問「『Burger Joint』現在營業嗎?他們提供晚餐嗎?星期五的營業時間是什麼時候?

    回答這些問題有助於您在特定時間找到供應特定餐點的營業場所。

  • 與客戶在咖啡廳會面:你可能會問「『中央咖啡廳』有 Wi-Fi 嗎?」他們是否供應咖啡?價位如何?是否接受信用卡?

    根據這些問題的答案,您可以評估咖啡廳是否適合舉辦商務會議,例如咖啡廳的設施、提供的服務和付款方式。

後續步驟

  • 如要進一步瞭解如何根據資料設定 Gemini 模型,請參閱「根據資料設定」一文。
  • 如要進一步瞭解負責任的 AI 最佳做法和 Vertex AI 的安全篩選器,請參閱「負責任的 AI」。