Mengintegrasikan QueryData dengan aplikasi

Tutorial ini menjelaskan cara menyiapkan dan menggunakan QueryData di Firestore dengan kompatibilitas MongoDB menggunakan konsol Google Cloud dan mengintegrasikannya dengan aplikasi Anda. Pelajari cara membangun file set konteks, membuat set konteks yang menggunakan file set konteks, menggunakan MCP Toolbox untuk memanggil metode QueryData di Conversational Analytics API guna menghasilkan kueri bahasa kueri (MQL) yang kompatibel dengan MongoDB untuk pertanyaan bahasa alami, dan mengintegrasikannya dengan aplikasi Anda.

Untuk mengetahui informasi selengkapnya, lihat Ringkasan QueryData.

Tujuan

  • Membuat database dan mengisinya dengan data.
  • Membuat file set konteks dengan agen rekayasa konteks.
  • Buat set data konteks dan upload file set data konteks.
  • Uji QueryData dan buat kueri MQL di Firestore dengan MongoDB compatibility Studio.
  • Integrasikan QueryData dengan aplikasi Anda menggunakan alat Gemini Data Analytics QueryData di MCP Toolbox.
  • Menambahkan grounding ke respons LLM menggunakan kueri penelusuran nilai.

Biaya

Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga.

Pengguna Google Cloud baru mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

Untuk menghindari penagihan berkelanjutan, hapus resource yang Anda buat setelah menyelesaikan tugas dalam dokumen ini. Untuk informasi selengkapnya, lihat Pembersihan.

Sebelum memulai

Selesaikan prasyarat berikut sebelum membuat set konteks.

Mengaktifkan layanan yang diperlukan

Aktifkan layanan berikut untuk project Anda:

Siapkan database Firestore

Pastikan Anda memiliki database Firestore edisi Enterprise dengan kompatibilitas MongoDB.

Jika Anda mencoba contoh di halaman ini, sebaiknya buat database baru untuk tujuan ini. Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengelola database.

Peran dan izin yang diperlukan

Mengisi koleksi flights dan airports

Di bagian ini, Anda akan mengisi koleksi flights dan airports menggunakan skrip MQL yang disediakan.

  1. Di konsol Google Cloud , buka halaman Firestore.

    Buka Firestore

  2. Pilih database dari daftar. Misalnya, jika Anda membuat database baru sebelumnya, pilih database tersebut. Database harus berupa database edisi Enterprise dengan kompatibilitas MongoDB.

  3. Di menu navigasi, klik Firestore Studio.

  4. Klik New MQL editor tab atau New tab untuk membuka tab baru.

  5. Isi koleksi airports dengan menjalankan skrip berikut. Pastikan opsi Read-only tidak dipilih.

  6. Isi koleksi flights dengan menjalankan skrip berikut. Pastikan opsi Read-only tidak dipilih.

Membuat set data konteks di Firestore Studio

Di bagian ini, buat set konteks bernama flights-assistant. Set konteks ini tidak menyertakan file set konteks yang diupload ke dalamnya.

  1. Di konsol Google Cloud , buka halaman Firestore.

    Buka Firestore

  2. Pilih database dari daftar. Database harus berupa database edisi Enterprise dalam mode kompatibilitas MongoDB.

  3. Di menu navigasi, klik Firestore Studio.

  4. Di panel Explorer, di samping Set konteks, klik Tindakan lainnya ().

  5. Klik Create context set.

  6. Di Context set name, masukkan flights-assistant.

  7. Klik Create.

Menguji QueryData di Studio

Di bagian ini, gunakan set konteks flights-assistant dengan mengajukan pertanyaan dalam bahasa alami untuk membuat kueri MQL. Karena set konteks tidak memiliki file set konteks yang diupload ke dalamnya, meskipun setelah mengajukan pertanyaan dengan konteks seperti nighttime traffic, QueryData akan membuat kueri yang kurang optimal.

  1. Di Explorer pane, di samping set konteks Anda, klik More actions ().
  2. Klik Test context set.
  3. Di editor kueri, klik Generate MQL using QueryData with: flights-assistant.
  4. Masukkan pertanyaan natural language berikut untuk membuat kueri MQL, lalu klik Generate.

    Find flights from SFO to JFK.
    

    Tinjau kueri MQL. Perhatikan bahwa QueryData menghasilkan MQL yang benar untuk pertanyaan yang tidak ambigu ini.

      db.flights.find({"departure_airport": "SFO", "arrival_airport": "JFK"})
    
  5. Di jendela Generate MQL using QueryData with: flights-assistant, klik Edit.

  6. Masukkan pertanyaan natural language berikut untuk membuat kueri MQL, lalu klik Update.

    Tell me flights that can help me beat nighttime traffic if traveling from New York
    

    Database gagal memahami istilah traffic nighttime. Hal ini dapat mencegahnya membuat kueri MQL atau menyebabkannya membuat kueri yang mengabaikan istilah tersebut, seperti yang ditunjukkan oleh kueri berikut.

    // The database schema does not contain information about traffic.
    // Returning all flights departing from New York airports.
    db.flights.find({
      $and: [
        {
          "departure_airport": {"$regex": "New York", "$options": "i"}
        },
        {
          "$or": [
            {"departure_time": {"$exists": true}},
            {"arrival_time": {"$exists": true}}
          ]
        }
      ]
    })
    

Membuat konteks untuk set data konteks

Di bagian ini, Anda akan menyiapkan lingkungan dan membuat file konteks yang membantu meningkatkan kemampuan kueri set konteks.

Menyiapkan lingkungan Anda

Sebelum dapat mulai membuat konteks, Anda harus menyiapkan lingkungan.

Untuk menyiapkan lingkungan Anda, lakukan langkah-langkah berikut:

  1. Instal Antigravity CLI. Untuk mengetahui informasi selengkapnya, lihat Mulai Menggunakan Antigravity CLI.
  2. Menginstal Google Cloud CLI.
  3. Siapkan Kredensial Default Aplikasi (ADC). Jalankan perintah berikut di terminal Anda untuk mengautentikasi dan memilih project Anda:

    gcloud auth application-default login
  4. Instal uv, paket Python dan pengelola project yang merupakan prasyarat untuk agen rekayasa konteks. Jika Anda belum memiliki Python di sistem, uv dapat menginstalnya untuk Anda.

  5. Menginstal agen rekayasa konteks:

    agy plugin install https://github.com/GoogleCloudPlatform/db-context-enrichment/tree/main/plugin
  6. Di terminal, mulai Antigravity CLI.

    agy
  7. Siapkan koneksi database untuk pembuatan konteks menggunakan MCP Toolbox. Koneksi ditentukan dalam file konfigurasi tools.yaml.

    Untuk membuat file konfigurasi tools.yaml di direktori Anda saat ini, masukkan perintah seperti:

    Help me set up context generation for a Firestore database with MongoDB compatibility.
    

    Ikuti petunjuk yang diberikan oleh skill. Untuk mengetahui informasi selengkapnya tentang file tools.yaml, lihat dokumentasi MCP Toolbox.

  8. Untuk memuat ulang konfigurasi setelah file tools.yaml dibuat, jalankan perintah berikut di Antigravity CLI dan ikuti petunjuk untuk memuat ulang server MCP toolbox:

    /mcp
    1. Pilih db-context-engineering_toolbox.

    2. Pilih Restart.

  9. Pastikan toolbox MCP dan plugin agen rekayasa konteks terhubung dan siap digunakan.

    /mcp

Membuat konteks template

Di bagian ini, untuk mengatasi masalah dari bagian sebelumnya saat QueryData tidak mengenali istilah nighttime traffic, tentukan istilah dalam file set konteks sebagai traffic yang terjadi antara 5:00 PM dan 7:00 PM.

Untuk membuat konteks template, lakukan langkah-langkah berikut:

  1. Masukkan perintah berikut ke Antigravity CLI:

    Generate a template for the question: "Tell me flights that can help me beat nighttime traffic if traveling from New York" with the following MQL query:
    
    db.flights.aggregate([
      {
        "$lookup": {
          "from": "airports",
          "localField": "departure_airport",
          "foreignField": "iata",
          "as": "departure_airport_info",
          "pipeline": [{ "$project": { "_id": 0, "name": 1, "city": 1 } }]
        }
      },
      { "$unwind": { "path": "$departure_airport_info" } },
      {
        "$match": {
          "$expr": {
            "$and": [
              { "$eq": ["$departure_airport_info.city", "New York"] },
              {
                "$or": [
                  { "$lte": [{ "$hour": "$departure_time" }, 17] },
                  { "$gte": [{ "$hour": "$departure_time" }, 19] }
                ]
              }
            ]
          }
        }
      },
    ])
    
  2. Agen mengonversi input Anda ke dalam format tertentu yang meningkatkan performa set konteks di berbagai kueri pengguna. Untuk mengetahui informasi selengkapnya, lihat Ringkasan set konteks.

  3. Tinjau template kueri yang dihasilkan. Anda dapat menyimpan template kueri sebagai file konteks agen baru atau menambahkannya ke file konteks agen yang ada.

  4. Beri agen perintah untuk menyimpan template:

    Save it to context_set.json.
    

    Agen membuat file di direktori yang sama, dengan konten berikut:

    {
      "templates": [
        {
          "nl_query": "Tell me flights that can help me beat nighttime traffic if traveling from New York",
          "sql": "db.flights.aggregate([\n  {\n    \"$lookup\": {\n      \"from\": \"airports\",\n      \"localField\": \"departure_airport\",\n      \"foreignField\": \"iata\",\n      \"as\": \"departure_airport_info\",\n      \"pipeline\": [{ \"$project\": { \"_id\": 0, \"name\": 1, \"city\": 1 } }]\n    }\n  },\n  { \"$unwind\": { \"path\": \"$departure_airport_info\" } },\n  {\n    \"$match\": {\n      \"$expr\": {\n        \"$and\": [\n          { \"$eq\": [\"$departure_airport_info.city\", \"New York\"] },\n          {\n            \"$or\": [\n              { \"$lte\": [{ \"$hour\": \"$departure_time\" }, 17] },\n              { \"$gte\": [{ \"$hour\": \"$departure_time\" }, 19] }\n            ]\n          }\n        ]\n      }\n    }\n  }\n])",
          "intent": "Tell me flights that can help me beat nighttime traffic if traveling from New York",
          "manifest": "Tell me flights that can help me beat nighttime traffic if traveling from a given city",
          "parameterized": {
            "parameterized_sql": "db.flights.aggregate([\n  {\n    \"$lookup\": {\n      \"from\": \"airports\",\n      \"localField\": \"departure_airport\",\n      \"foreignField\": \"iata\",\n      \"as\": \"departure_airport_info\",\n      \"pipeline\": [{ \"$project\": { \"_id\": 0, \"name\": 1, \"city\": 1 } }]\n    }\n  },\n  { \"$unwind\": { \"path\": \"$departure_airport_info\" } },\n  {\n    \"$match\": {\n      \"$expr\": {\n        \"$and\": [\n          { \"$eq\": [\"$departure_airport_info.city\", \"$1\"] },\n          {\n            \"$or\": [\n              { \"$lte\": [{ \"$hour\": \"$departure_time\" }, 17] },\n              { \"$gte\": [{ \"$hour\": \"$departure_time\" }, 19] }\n            ]\n          }\n        ]\n      }\n    }\n  }\n])",
            "parameterized_intent": "Tell me flights that can help me beat nighttime traffic if traveling from $1"
          }
        }
      ]
    }
    

Upload file set konteks ke QueryData

Di bagian ini, Anda akan mengupload file set konteks ke QueryData, sehingga meningkatkan kemampuan pembuatan MQL QueryData di database Anda.

Untuk mengupload konteks, lakukan langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Firestore.

    Buka Firestore

  2. Pilih database dari daftar. Database harus berupa database edisi Enterprise dalam mode kompatibilitas MongoDB.

  3. Di menu navigasi, klik Firestore Studio.

  4. Di panel Explorer, di samping Set konteks, klik ikon Tindakan ().

  5. Klik Edit context set.

  6. Klik Browse di bagian Upload context set file, lalu pilih file set konteks yang dibuat sebelumnya.

  7. Klik Simpan.

Membuat kueri MQL menggunakan QueryData

Di bagian ini, Anda akan menggunakan file set konteks yang Anda upload untuk mengajukan pertanyaan dalam bahasa alami. Hal ini memungkinkan Anda memverifikasi bahwa QueryData memahami dan menerapkan definisi untuk istilah seperti nighttime traffic dan frasa terkait lainnya dengan benar.

Untuk membuat kueri MQL, lakukan langkah-langkah berikut:

  1. Di panel Explorer, di samping set konteks Anda, klik Tindakan lainnya ().
  2. Klik Test context set.
  3. Di editor kueri, klik Generate MQL using QueryData with: flights-assistant.
  4. Masukkan pertanyaan natural language berikut untuk membuat kueri MQL, lalu klik Generate.

    Tell me flights that can help me beat nighttime traffic if traveling from New York
    

    Kueri MQL yang dihasilkan terlihat mirip dengan berikut ini:

    // Tell me flights that can help me beat nighttime traffic if traveling from New York
    db.flights.aggregate([
      {
        "$lookup": {
          "from": "airports",
          "localField": "departure_airport",
          "foreignField": "iata",
          "as": "departure_airport_info",
          "pipeline": [{ "$project": { "_id": 0, "name": 1, "city": 1 } }]
        }
      },
      { "$unwind": { "path": "$departure_airport_info" } },
      {
        "$match": {
          "$expr": {
            "$and": [
              { "$eq": ["$departure_airport_info.city", "New York"] },
              {
                "$or": [
                  { "$lte": [{ "$hour": "$departure_time" }, 17] },
                  { "$gte": [{ "$hour": "$departure_time" }, 19] }
                ]
              }
            ]
          }
        }
      }
    ])
    

    Ini adalah pertanyaan yang sama dengan yang Anda tambahkan ke konteks QueryData. Perhatikan bahwa QueryData kini dapat menafsirkan istilah nighttime traffic secara akurat.

    Meskipun konteks berasal dari satu pertanyaan tertentu, QueryData menggunakannya untuk meningkatkan pembuatan MQL untuk berbagai pertanyaan serupa.

  5. Di jendela Generate MQL using QueryData with: flights-assistant, klik Edit.

  6. Masukkan pertanyaan serupa berikut untuk membuat kueri MQL, lalu klik Update.

    What are the flights that can help me avoid evening traffic if departing from Boston
    

    Karena pertanyaan tersebut mengganti istilah nighttime traffic dengan istilah yang serupa, evening traffic, QueryData memberikan jawaban yang konsisten untuk pertanyaan ini dengan menerapkan interpretasi yang sama.

    Kueri MQL yang dihasilkan terlihat mirip dengan berikut ini:

    // What are the flights that can help me avoid evening traffic if departing from Boston
    db.flights.aggregate([
      {
        "$lookup": {
          "from": "airports",
          "localField": "departure_airport",
          "foreignField": "iata",
          "as": "departure_airport_info",
          "pipeline": [{ "$project": { "_id": 0, "name": 1, "city": 1 } }]
        }
      },
      { "$unwind": { "path": "$departure_airport_info" } },
      {
        "$match": {
          "$expr": {
            "$and": [
              { "$eq": ["$departure_airport_info.city", "Boston"] },
              {
                "$or": [
                  { "$lte": [{ "$hour": "$departure_time" }, 17] },
                  { "$gte": [{ "$hour": "$departure_time" }, 19] }
                ]
              }
            ]
          }
        }
      }
    ])
    

Mengintegrasikan QueryData dengan aplikasi Anda

Di bagian ini, Anda akan membuat agen data untuk aplikasi pencarian penerbangan. Agen data ini menyediakan antarmuka percakapan ke tabel flights dan airports yang Anda buat sebelumnya. Lab ini juga menjelaskan cara membuat dan mengintegrasikan agen data ini ke dalam aplikasi Anda menggunakan Agent Development Kit (ADK), alat MCP QueryData Gemini Data Analytics, dan set data konteks untuk meningkatkan kualitas respons.

  1. Download MCP Toolbox versi 1.14.0 atau yang lebih baru. MCP Toolbox mengekspos agen data sebagai alat yang dapat dihubungkan oleh aplikasi. MCP Toolbox berbeda dengan agen rekayasa konteks yang Anda instal sebelumnya, yang menghasilkan konteks.

  2. Siapkan Kredensial Default Aplikasi (ADC).

    gcloud auth application-default login
  3. Temukan ID set konteks yang Anda buat sebelumnya. Untuk mengetahui informasi selengkapnya tentang cara menemukan ID set konteks, lihat Menemukan ID set konteks.

  4. Tambahkan kode berikut ke konfigurasi tools.yaml untuk terhubung ke agen data menggunakan MCP Toolbox. Untuk mengetahui informasi selengkapnya, lihat Sumber Analisis Data Gemini dan alat QueryData Analisis Data Gemini.

    kind: source
    name: gda-api-source
    type: cloud-gemini-data-analytics
    projectId: "PROJECT_ID"
    ---
    kind: tool
    name: cloud_gda_query_tool
    type: cloud-gemini-data-analytics-query
    source: gda-api-source
    description: Use this tool to send natural language queries to the Gemini Data Analytics API and receive MongoDB-compatible query language (MQL), natural language answers, and explanations.
    location: "REGION_ID"
    context:
      datasourceReferences:
        firestoreReference:
          databaseReference:
            projectId: "PROJECT_ID"
            databaseId: "DATABASE_ID"
          agentContextReference:
            contextSetId: "CONTEXT_SET_ID"
    generationOptions:
      generateQueryResult: true
      generateNaturalLanguageAnswer: true
      generateExplanation: true
      generateDisambiguationQuestion: true
    

    Ganti kode berikut:

    • PROJECT_ID: Project ID Google Cloud Anda.
    • DATABASE_ID: Nama database yang akan dihubungkan.
    • REGION_ID: Region database Anda (misalnya us-central1).
    • CONTEXT_SET_ID: ID set konteks. Untuk mengetahui informasi selengkapnya tentang cara menemukan ID set konteks, lihat Menemukan ID set konteks.
  5. Jalankan server MCP Toolbox dengan file tools.yaml.

    ./toolbox --config autoctx/tools.yaml
  6. Membuat aplikasi ADK yang memanggil alat QueryData Gemini Data Analytics menggunakan Python SDK MCP Toolbox. Untuk mengetahui informasi selengkapnya tentang cara menggunakan Python SDK MCP Toolbox, lihat panduan memulai Toolbox dan untuk Python ADK, lihat panduan memulai ADK.

    1. Buat direktori untuk menyimpan aplikasi, misalnya flight-assistant-app.
    2. Ubah direktori ke direktori flight-assistant-app.

      mkdir flight-assistant-app
      cd flight-assistant-app
    3. Jalankan perintah berikut di direktori flight-assistant-app untuk membuat lingkungan virtual dan menginstal komponen yang diperlukan.

      uv init
      uv add google-adk toolbox-core google-genai
    4. Siapkan agen ADK.

      1. Membuat agen ADK.

        uv run adk create my_agent
      2. Pilih model gemini-3.8-flash, atau yang lebih baru.

      3. Pilih Google AI, lalu masukkan kunci Gemini API Anda. Untuk mengetahui informasi selengkapnya tentang cara menemukan kunci API, lihat Menggunakan kunci Gemini API. (Atau, jika Anda tidak memerlukan uji coba gratis, Anda dapat memilih Vertex AI dan menentukan project Google Cloud dengan penagihan yang diaktifkan).

    5. Ganti konten file agent.py dengan kode aplikasi contoh Flight Data Assistant berikut.

      from typing import cast
      
      from google.adk.agents.llm_agent import Agent
      from google.adk.agents.llm_agent import ToolUnion
      
      from toolbox_core import ToolboxSyncClient
      
      TOOLBOX_URL = "http://127.0.0.1:5000"
      
      INSTRUCTION = """
      # ROLE
      You are a friendly and factual flight data assistant. Your goal is to help users find the best flights for their needs by providing accurate information with a helpful, professional tone.
      - use the Query Data Tool to answer the user's question, if the tool fails to generate a valid query, ask the user to clarify their question.
      
      # OPERATIONAL CONSTRAINTS
      - TOOL LIMITATION: You only have access to the Query Data Tool. Do not claim to have capabilities beyond what this tool provides.
      - TRANSPARENCY POLICY: Maintain a seamless user experience. Never mention that you are using a tool, querying a database, or generating MQL. Frame all responses as your own direct assistance.
      - SCOPE MANAGEMENT: If a user asks for something beyond your capabilities, politely state that you cannot perform that specific task. Guide the user towards what you can help with.
      
      # COMMUNICATION STYLE
      - Be concise and scannable when listing answers.
      - Maintain a helpful, professional persona.
      
      =====
      
      # QUERY DATA TOOL
      
      Inputs:
      1. query: A natural language formulation of a database query.
      
      Outputs: (all optional)
      1. disambiguation_question: Clarification questions or comments where the tool needs the users' input.
      2. generated_query: The generated query for the user query.
      3. intent_explanation: An explanation for why the tool produced `generated_query`.
      4. query_result: The result of executing `generated_query`.
      5. natural_language_answer: The natural language answer that summarizes the `query` and `query_result`.
      
      Usage guidance:
      1. If `disambiguation_question` is produced, then solicit the needed inputs from the user and try the tool with a new `query` that has the needed clarification.
      2. If `natural_language_answer` is produced, use `intent_explanation` and `generated_query` to see if you need to clarify any assumptions for the user.
      3. If the tool output indicates failure or empty results, explain that clearly using the provided reasoning.
      """
      
      client = ToolboxSyncClient(TOOLBOX_URL)
      
      mcp_tool = client.load_tool("cloud_gda_query_tool")
      
      root_agent = Agent(
          model="gemini-3.8-flash",  # Or newer.
          name="root_agent",
          instruction=INSTRUCTION,
          tools=cast(list[ToolUnion], [mcp_tool]),
      )
      
  7. Jalankan perintah berikut di direktori flight-assistant-app untuk memulai aplikasi dan mengakses server web ADK di http://127.0.0.1:8000.

    uv run adk web --port 8000
  8. Masukkan teks apa pun, seperti hello, untuk mulai berinteraksi dengan agen.

    Agen ADK menjawab pertanyaan umum dan memanggil alat MCP yang diperlukan.

  9. Masukkan pertanyaan terkait penerbangan berikut.

    How many flights depart from the west side?
    

    Alat MCP dipanggil untuk menjawab pertanyaan ini. Namun, karena istilah the west ambigu dan tidak menentukan bandara mana pun, alat MCP menampilkan pertanyaan disambiguasi yang digunakan agen untuk membuat respons.

    I cannot determine how many flights depart from the 'west side' as the database does not contain information about which airports are considered to be on the 'west side'. However, I can help you with questions like:
    
    1. How many flights depart from a specific airport?
    
    2. What are the departure airports for all flights?
    
    3. How many flights depart from each airport? Would you like to rephrase your question based on these options?
    
  10. Masukkan pertanyaan yang mirip dengan pertanyaan dalam template kueri yang dibuat untuk agen.

    Help me find flights from San Francisco that avoid the evening rush hour.
    

    Berdasarkan konteks QueryData yang ditambahkan sebelumnya, alat MCP memahami bahwa evening traffic terjadi antara pukul 17.00 dan 19.00. Alat MCP menampilkan data terkait untuk digunakan agen dalam menyusun responsnya.

    Here are the flights departing from San Francisco that avoid the evening rush hour (defined as 5 PM to 7 PM):
    
    * UA 1532 departing at 05:50:00
    * UA 1158 departing at 05:57:00
    * CY 922 departing at 06:38:00
    * OO 5441 departing at 07:08:00
    * UA 616 departing at 07:14:00
    * AA 24 departing at 07:14:00
    * B6 434 departing at 08:00:00
    * AA 242 departing at 08:18:00
    * UA 1739 departing at 08:22:00
    * OO 6336 departing at 08:32:00
    * US 1784 departing at 08:47:00
    * DL 1631 departing at 09:00:00
    * DL 1106 departing at 09:06:00
    * OO 5427 departing at 09:06:00
    * CY 352 departing at 09:25:00
    

Melakukan iterasi performa agen

UI web ADK memungkinkan Anda memeriksa permintaan dan respons dari alat Gemini Data Analytics QueryData MCP. Anda dapat menggunakan respons ini untuk mengamati respons alat seperti kueri MQL yang dihasilkan, set hasil, penjelasan intent, pertanyaan disambiguasi, dan jawaban natural language, untuk membantu Anda mengonfirmasi kebenaran respons agen.

Misalnya, untuk teks input How many flights depart from the west side? yang Anda masukkan sebelumnya, klik balon agen. Di tab Event di navigasi kiri, luaskan functionResponse untuk melihat respons berikut.

"{"disambiguationQuestion": ["[NOT_ENOUGH_INFO] The database schema does not
contain information about which airports are on the 'west side'. Therefore, I
cannot determine how many flights depart from the west side.Possible alternative
questions: 1. How many flights depart from a specific airport? 2. What are the
departure airports for all flights? 3. How many flights depart from each
airport?"]}"

Mempertajam akurasi respons

Anda dapat terus meningkatkan akurasi respons dari alat QueryData Gemini Data Analytics dengan menambahkan konteks tambahan. Gunakan agen rekayasa konteks untuk membuat konteks, lalu upload file set konteks yang diperbarui ke agen data flights-assistant yang ada. Untuk mengetahui informasi selengkapnya, lihat Mengelola set konteks di Firestore Studio. Konsol akan segera memproses konteks baru setelah Anda menguploadnya, sehingga Anda dapat meningkatkan akurasi agen tanpa waktu non-operasional aplikasi.

Beberapa agen

Di lingkungan pengembangan, Anda dapat melakukan pengujian A/B pada beberapa konteks agen data dengan menetapkan nama yang berbeda untuk alat dalam file tools.yaml. Misalnya, Anda dapat membuat konfigurasi tools.yaml yang unik dengan menentukan dua alat cloud-gemini-data-analytics-query dengan nama yang berbeda, seperti cloud_gda_query_tool_v1 dan cloud_gda_query_tool_v2. Penyiapan ini memungkinkan Anda menerapkan logika aplikasi yang secara terprogram memilih versi konteks yang diperlukan dengan memilih nama alat yang sesuai.

Contoh tools.yaml berikut menunjukkan cara menyiapkan beberapa agen data untuk sumber database:

kind: source
name: gda-api-source
type: cloud-gemini-data-analytics
projectId: PROJECT_ID
---
kind: tool
name: cloud_gda_query_tool_v1
type: cloud-gemini-data-analytics-query
source: gda-api-source
context:
  datasourceReferences:
    DB_SOURCE:
      databaseReference: ...
      agentContextReference:
        contextSetId: "V1_YOUR_CONTEXT_SET_ID"
generationOptions: ...
---
kind: tool
name: cloud_gda_query_tool_v2
type: cloud-gemini-data-analytics-query
source: gda-api-source
context:
  datasourceReferences:
    DB_SOURCE:
      databaseReference: ...
      agentContextReference:
        contextSetId: "V2_YOUR_CONTEXT_SET_ID"
generationOptions: ...

Ganti kode berikut:

  • PROJECT_ID: Project ID Google Cloud Anda.
  • V1_YOUR_CONTEXT_SET_ID: ID set konteks untuk versi 1.
  • V2_YOUR_CONTEXT_SET_ID: ID set konteks untuk versi 2.

Pertimbangan kontrol akses dan keamanan

Pada peluncuran pratinjau, QueryData untuk Firestore dengan kompatibilitas MongoDB tidak mendukung kontrol akses terperinci. Saat mengintegrasikan QueryData dengan aplikasi Anda, pertimbangkan cara kontrol akses data:

  • Perincian tingkat database: Perincian akses dapat dikontrol menggunakan kondisi IAM di tingkat database. Namun, tidak ada kontrol akses terperinci di tingkat koleksi, dokumen, atau kolom.
  • Akses baca database lengkap: Agen data memiliki akses baca ke seluruh database. Setiap kueri yang dihasilkan oleh agen dapat membaca dari semua koleksi, dokumen, dan kolom dalam database tersebut. Agen data tidak dibatasi oleh aturan keamanan Firebase.
  • Pemberian cakupan pengguna aplikasi: Karena kontrol akses terperinci tidak didukung, Anda tidak dapat membatasi akses data ke koleksi, dokumen, atau kolom tertentu berdasarkan identitas pengguna aplikasi. Kueri yang dihasilkan oleh QueryData dijalankan dengan izin baca penuh dari pengguna database atau akun layanan yang digunakan oleh aplikasi Anda.

Pembersihan

Setelah selesai mengikuti tutorial ini, Anda harus menghapus resource yang Anda buat untuk menghindari biaya berkelanjutan. Bagian berikut menjelaskan cara menghapus resource ini.

Menghapus set konteks

Sebelum menghapus database, hapus set konteks yang Anda buat.

  1. Di konsol Google Cloud , buka halaman Firestore.

    Buka Firestore

  2. Pilih database dari daftar. Database harus berupa database edisi Enterprise dalam mode kompatibilitas MongoDB.

  3. Di menu navigasi, klik Firestore Studio.

  4. Di Explorer pane, di samping set konteks Anda, klik More actions ().

  5. Di jendela Delete context set, masukkan flight-assistant di kotak konfirmasi.

  6. Klik Konfirmasi.

Menghapus database

Saat Anda menghapus database yang Anda buat di bagian sebelum memulai, Anda juga menghapus semua objek yang Anda buat.

  1. Di konsol Google Cloud , buka halaman Firestore.

    Buka Firestore

  2. Cari baris untuk nama database yang ingin Anda hapus.

  3. Klik ikon Actions (), lalu klik Delete.

  4. Konfirmasi bahwa Anda ingin menghapus database dengan memasukkan nama database dan mengklik Delete.

Langkah berikutnya