Grounding dengan Google Maps di Vertex AI

Halaman ini menjelaskan bagaimana Perujukan dengan Google Maps di Vertex AI dapat membantu meningkatkan kualitas aplikasi AI generatif Anda dengan memberikan konteks geospasial.

Ringkasan

Penyesuaian dengan Google Maps di Vertex AI adalah layanan Pratinjau yang menghubungkan model Gemini dengan data geospasial dari Google Maps. Google Maps memiliki akses ke informasi tentang jutaan lokasi, termasuk bisnis, landmark, dan tempat menarik. Data ini memberi Anda akses ke informasi tentang lebih dari 250 juta tempat yang dapat digunakan untuk men-grounding respons model Anda, sehingga aplikasi dan agen AI Anda dapat memberikan data lokal dan konteks geospasial.

Penggunaan Perujukan dengan Google Maps

Anda dapat menggunakan Grounding dengan Google Maps untuk berbagai aplikasi, seperti:

  • Agen berbasis chat.
  • Ringkasan informasi tempat.
  • Terjemahan konten.
  • Asisten percakapan yang dapat menjawab pertanyaan tentang tempat di sekitar, seperti "Apakah ada taman di sekitar?".
  • Deskripsi tempat yang dipersonalisasi, seperti "Bisakah Anda memberi tahu saya lebih lanjut tentang taman dan restoran ramah keluarga yang berada dalam jarak yang dapat ditempuh dengan berjalan kaki?"

Hal ini dapat berguna untuk industri seperti properti, perjalanan, mobilitas, dan aplikasi sosial.

Untuk mendapatkan dukungan teknis terkait Perujukan dengan Google Maps, kirim email ke maps-grounding-feedback-external@google.com.

Model yang didukung

Bagian ini mencantumkan model yang mendukung perujukan dengan Google Maps.

Untuk mengetahui informasi selengkapnya tentang model Gemini, lihat Model Gemini.

Menggunakan Perujukan dengan Google Maps untuk merujuk respons model Anda

Contoh kode ini menunjukkan cara menggunakan Perujukan dengan Google Maps untuk merujuk respons model Anda.

Konsol

Untuk menggunakan Perujukan dengan Google Maps menggunakan Vertex AI Studio, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Vertex AI Studio.

    Buka Vertex AI Studio

  2. Klik tab Freeform.
  3. Di panel samping, klik tombol Respons model dasar.
  4. Klik Sesuaikan, lalu tetapkan Google Maps sebagai sumber.
  5. Masukkan perintah Anda di kotak teks, lalu klik Kirim.

Respons cepat Anda akan menjadi dasar untuk Google Maps.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION: Region untuk memproses permintaan.
  • PROJECT_ID: Project ID Anda.
  • MODEL_ID: ID model multimodal.
  • TEXT: Petunjuk teks yang akan disertakan dalam perintah.
  • LATITUDE: Garis lintang lokasi.
  • LONGITUDE: Bujur lokasi.

Metode HTTP dan URL:

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

Meminta isi 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"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "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/..."
      }
    }
  ],
  ...
}

Opsional: Widget kontekstual Google Maps

Widget kontekstual adalah Penawaran Pra-GA Google Maps yang merupakan penampung visual yang digunakan untuk mendukung atau melengkapi konten Google Maps lainnya. Widget kontekstual Google Maps memungkinkan Anda mengintegrasikan Perujukan dengan Google Maps ke dalam aplikasi untuk menciptakan pengalaman chat berbasis LLM yang percakapan. Widget kontekstual dirender menggunakan token konteks, googleMapsWidgetContextToken, yang ditampilkan dalam respons Vertex AI API dan dapat digunakan untuk merender konten visual.

Widget kontekstual memiliki fungsi yang berbeda-beda, bergantung pada skenario Anda:

  • Fitur ini menampilkan konten buatan pengguna (UGC) yang subjektif dalam skenario saat perintah Google Maps digunakan untuk membuat jawaban.

  • Fitur ini membantu memperkaya hasil dengan visualisasi dan data peta saat Vertex AI hanya menghasilkan respons teks.

Untuk mengetahui informasi selengkapnya tentang widget kontekstual, lihat Widget perujukan Maps.

Merender widget kontekstual Google Maps

Untuk merender dan menggunakan widget kontekstual Google Maps, gunakan Google Maps JavaScript API versi alfa di halaman yang menampilkan widget. Untuk mengetahui informasi selengkapnya, lihat artikel Memuat Maps JavaScript API.

Contoh kode berikut menunjukkan cara menggunakan widget kontekstual:

HTML

  1. Buat widget kontekstual.

      <body>
        <gmp-place-contextual id="widget"></gmp-place-contextual>
      </body>
    
  2. Dalam setiap respons yang didasarkan pada Google Maps, ada googleMapsWidgetContextToken yang sesuai yang digunakan untuk merender widget kontekstual dan ditempatkan di dekat respons yang dihasilkan.

    Untuk memperbarui token konteks, tetapkan 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. Opsional: Tentukan tata letak daftar. Nilai yang valid mencakup berikut ini:

    • Tata letak ringkas: <gmp-place-contextual-list-config layout="compact">
    • Tata letak vertikal: <gmp-place-contextual-list-config layout="vertical">

    Contoh kode ini menunjukkan cara mengubah tata letak daftar menjadi tata letak rapat.

        <gmp-place-contextual id="widget">
          <gmp-place-contextual-list-config layout="compact">
          </gmp-place-contextual-list-config>
        </gmp-place-contextual>
    
  4. Opsional: Ubah mode peta. Nilai yang valid mencakup berikut ini:

    • Peta jalan 2D: map-mode="roadmap"
    • Peta hybrid 3D: map-mode="hybrid"
    • Tidak ada peta: map-mode="none"

    Contoh kode ini menunjukkan cara mengubah mode peta menjadi peta 2D.

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

JavaScript

  1. Buat widget kontekstual.

    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. Dalam setiap respons yang didasarkan pada Google Maps, ada googleMapsWidgetContextToken yang sesuai yang digunakan untuk merender widget kontekstual dan ditempatkan di dekat respons yang dihasilkan.

    Untuk memperbarui token konteks, tetapkan properti 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. Opsional: Tentukan tata letak daftar. Nilai yang valid mencakup berikut ini:

    • Tata letak ringkas: layout: google.maps.places.PlaceContextualListLayout.COMPACT
    • Tata letak vertikal: layout: google.maps.places.PlaceContextualListLayout.VERTICAL

    Contoh kode ini menunjukkan cara mengubah tata letak daftar menjadi tata letak rapat.

      const widgetConfig = new google.maps.places.PlaceContextualListConfigElement({
        layout: google.maps.places.PlaceContextualListLayout.COMPACT
      });
      widget.appendChild(widgetConfig);
    
  4. Opsional: Ubah mode peta. Nilai yang valid mencakup berikut ini:

    • Peta jalan 2D: mapMode: google.maps.places.PlaceContextualListMapMode.ROADMAP
    • Peta hybrid 3D: mapMode: google.maps.places.PlaceContextualListMapMode.HYBRID
    • Tidak ada peta: mapMode: google.maps.places.PlaceContextualListMapMode.NONE

    Contoh kode ini menunjukkan cara mengubah mode peta menjadi peta 2D.

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

Persyaratan atribusi sumber

Saat menyajikan konten yang dihasilkan Vertex AI yang secara langsung merujuk informasi yang disediakan menggunakan Grounding dengan Google Maps, Anda harus menentukan sumber Google Maps yang digunakan untuk mendukung respons.

Gambar ini menunjukkan sumber Google Maps yang digunakan untuk mendukung respons model.

Perintah dengan respons yang menampilkan sumber

Memberi tahu pengguna akhir tentang penggunaan sumber perujukan

Anda harus memberi tahu pengguna tentang hal berikut:

  • Sumber perujukan yang digunakan untuk mendukung konten yang dihasilkan LLM dalam jarak yang dekat dengan konten.
  • Sumber perujukan harus dapat dilihat dalam satu interaksi pengguna.

Menampilkan URL sumber Google Maps

Sumber Google Maps ditampilkan dalam groundingMetadata dalam groundingChunks dan groundingSupports. Sumber Google Maps ditampilkan untuk Tempat dan untuk mendukung konten jawaban Tempat seperti ulasan pengguna, yang telah digunakan untuk membantu membuat respons.

Contoh kode ini menunjukkan sumber Tempat dan sumber jawaban Tempat dalam respons:

  "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": ""
              }
            }
          }
        ],

Untuk setiap sumber yang dirujuk oleh LLM, pratinjau link harus dibuat dengan mengikuti persyaratan berikut:

  • Atribusikan setiap sumber ke Google Maps dengan mengikuti pedoman Atribusi teks.
  • Menampilkan judul halaman Open Graph (og:title) atau judul dengan format:

    [Place Name] - Google Maps

  • Buka materi sumber menggunakan URL sumber.

Jika ada sumber jawaban Tempat di groundingChunks, Anda harus melakukan hal berikut:

  • Tampilkan link ulasan di dalam grounding_chunks.maps.placeAnswerSources.reviewSnippets.googleMapsUri.
  • Menampilkan Judul Open Graph atau judul dengan format:

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

    Place Name dapat ditemukan di grounding_chunks.maps.title dan Author Name dapat ditemukan di grounding_chunks.maps.placeAnswerSources.reviewSnippets.authorAttribution.displayName.
  • Opsional: Tingkatkan kualitas pratinjau link dengan konten tambahan, seperti:

    • Favicon Google Maps (<link rel="icon" href="https://www.google.com/favicon.ico">) disisipkan sebelum atribusi teks Google Maps.
    • Deskripsi (og:description)
    • Foto (og:image)

Gambar ini menunjukkan persyaratan minimum, yaitu menampilkan link Tempat.

Perintah dengan respons yang menampilkan sumber

Anda dapat menciutkan tampilan Sumber.

Perintah dengan respons dan sumber diciutkan

Gambar ini menampilkan foto tempat, yang merupakan link opsional untuk melihat pratinjau atribut sumber.

Perintah dengan respons dan sumber

Wilayah yang dilarang

Google Maps membatasi konten dan aktivitas tertentu untuk menjaga platform yang aman dan andal. Untuk mengetahui daftar wilayah yang dilarang, lihat Wilayah yang Dilarang Google Maps Platform.

Properti tempat

Bagian ini mencantumkan properti tempat yang digunakan untuk mendeskripsikan lokasi dan digunakan oleh Perujukan dengan Google Maps untuk menghasilkan respons. Properti ini digunakan untuk menentukan jenis pertanyaan yang dapat dijawab oleh Perujukan dengan Google Maps.

Contoh properti tempat

Daftar ini memberikan contoh properti yang diurutkan berdasarkan abjad tentang tempat yang dapat digunakan oleh model Anda untuk menghasilkan respons.

  • Alamat
  • Pengambilan di tepi jalan
  • Kartu debit
  • Jarak
  • Tempat parkir gratis
  • Musik live
  • Menu untuk anak-anak
  • Jam buka
  • Opsi pembayaran (seperti tunai atau kartu kredit)
  • Tempat jawaban
  • Boleh bawa hewan peliharaan
  • Menyajikan bir
  • Menyajikan makanan vegetarian
  • Dapat diakses pengguna kursi roda
  • Wi-Fi

Jawaban tempat adalah respons dari Perujukan dengan Google Maps berdasarkan informasi yang berasal dari ulasan pengguna. Jika ada masalah dengan konten jawaban Tempat yang diberikan dalam metadata, Anda dapat melaporkannya kepada Google menggunakan link di kolom flagContentUri dalam objek PlaceAnswerSources dalam respons API.

Contoh penggunaan properti tempat

Contoh berikut menggunakan properti tempat dalam pertanyaan tentang berbagai jenis tempat. Perujukan dengan Google Maps menggunakan properti untuk memahami maksud Anda, lalu memberikan jawaban yang relevan berdasarkan data yang terkait dengan tempat di Google Maps.

  • Merencanakan makan malam keluarga: Anda dapat bertanya, Apakah "The Italian Place" cocok untuk anak-anak, dan apakah mereka menawarkan layanan pesan bawa? Berapa rating mereka?

    Jawaban atas pertanyaan-pertanyaan ini akan membantu Anda menentukan apakah restoran cocok untuk keluarga dan apakah restoran menawarkan layanan yang nyaman.

  • Memeriksa aksesibilitas untuk teman: Anda dapat bertanya, Saya perlu restoran yang memiliki pintu masuk khusus pengguna kursi roda.

    Respons terhadap perintah ini dapat membantu Anda menentukan apakah lokasi tersebut memenuhi kebutuhan aksesibilitas tertentu.

  • Menemukan lokasi untuk camilan larut malam: Anda dapat bertanya, Apakah "Burger Joint" buka sekarang? Apakah mereka menyajikan makan malam? Jam berapa mereka buka pada hari Jumat?

    Jawaban atas pertanyaan ini membantu Anda menemukan restoran yang buka dan menyajikan makanan tertentu pada waktu tertentu.

  • Bertemu klien di kedai kopi: Anda dapat bertanya, Apakah "Cafe Central" memiliki Wi-Fi? Apakah mereka menyajikan kopi? Berapa tingkat harganya, dan apakah mereka menerima kartu kredit?

    Jawaban atas pertanyaan ini membantu Anda menilai kesesuaian kafe untuk pertemuan bisnis berdasarkan fasilitas, penawaran, dan opsi pembayaran.

Langkah berikutnya

  • Untuk mempelajari lebih lanjut cara mendasarkan model Gemini pada data Anda, lihat Mendasarkan dengan data Anda.
  • Untuk mempelajari lebih lanjut praktik terbaik AI yang bertanggung jawab dan filter keamanan Vertex AI, lihat Responsible AI.