QueryData 簡介

QueryData 是 Conversational Analytics API 中的自然語言轉 SQL (NL2SQL) 工具,可讓 AI 代理和應用程式使用自然語言查詢作業資料庫。當應用程式或代理使用自然語言傳送問題時,QueryData 會將問題轉譯為特定方言的 SQL 查詢,針對資料庫執行查詢,並傳回查詢結果、生成的 SQL,以及 QueryData 如何解讀問題的說明。

如要進一步瞭解如何搭配資料庫使用 QueryData,請參閱支援資料庫的說明文件:

主要功能

QueryData 為代理資料庫應用程式提供下列功能:

  • 高準確率:結合資料庫結構定義中繼資料和您挑選的情境集,在業務關鍵查詢上達到近 100% 的準確率。
  • 業務關聯性:根據貴組織的領域術語、指標定義和商業邏輯生成 SQL,而非僅依賴原始資料表和資料欄名稱。
  • 可解釋性:除了合成的 SQL 查詢和自然語言答案外,還會生成人類可讀的意圖說明,方便您和使用者驗證 QueryData 如何翻譯要求。
  • 資料安全性:在 AlloyDB、MySQL 適用的 Cloud SQL 和 PostgreSQL 適用的 Cloud SQL 中,使用參數化安全檢視表,強制執行資料列層級存取控管,並保護使用者資料免受提示詞注入攻擊。

QueryData 的使用時機

QueryData 專為開發人員設計,適合用於建構互動式應用程式和 AI 代理,能快速、準確且可預測地存取營運資料庫資料。舉例來說,QueryData 適合用於下列用途:

  • 客服自動化:回答大量使用者查詢,例如「我的訂單在哪裡?」或「我目前的帳戶餘額是多少?」
  • 電子商務和目錄搜尋助理:協助使用者篩選及探索結構化目錄,並提出多條件問題,例如「顯示重量輕、RAM 至少 16 GB 且電池續航力超過 10 小時的筆電」。
  • 現場作業和內部工具:讓員工即時查詢庫存量、零件供應情形或服務單狀態。
  • 多代理工作流程:在 Agent Development Kit (ADK)、MCP Toolbox for Databases 或 LangChain 等 Agentic Workflows 框架中,將結構化資料庫查詢公開為工具。

QueryData 的運作方式

一般大型語言模型 (LLM) 沒有貴組織的私人資料值、神祕資料欄名稱或特定領域業務規則等資訊。為縮短使用者提問方式與資料庫儲存資料方式之間的差距,QueryData 會使用下列分層脈絡:

  • 結構定義本體:資料庫目錄或 Knowledge Catalog 中,資料表和資料欄的豐富說明,可解釋資料表、資料欄、狀態碼和彙整關係的業務意義。
  • 情境集:與資料庫執行個體相關聯的精選集合,定義下列三個建構模塊:
    • 查詢範本:代表性的自然語言問題,搭配經過驗證的參數化 SQL 陳述式和意圖說明。
    • 查詢面向:模組化 SQL 述詞和篩選器片段,QueryData 會動態結合查詢範本,支援面向搜尋,不必為每個篩選器組合建立個別範本。
    • 值搜尋:精確、模糊三元組或語意向量搜尋查詢,可將非正式的使用者詞組、同義詞或拼寫錯誤的字詞,連結至資料庫中的實際值和資料欄。

當應用程式呼叫 Conversational Analytics API 中的 projects.locations.queryData 方法時,QueryData 會執行下列步驟:

  1. 值解析:對資料庫執行值搜尋查詢,將提示中的實體詞組 (例如城市名稱、產品類別或代碼) 對應至確切的資料庫資料欄值。
  2. 意圖比對和消歧:將使用者的問題與情境集中的查詢範本和面向,以及結構定義本體進行比對。如果問題語意不明或缺少必要參數,QueryData 可傳回釐清問題,確認使用者意圖。
  3. 查詢合成:結合相符的範本結構、適用的面向和解析的常值,合成特定方言的 SQL 查詢;如果沒有相符的範本,則會根據結構定義本體生成 SQL。
  4. 查詢執行和回覆:對目標資料庫執行生成的 SQL,並傳回表格結果集、生成的 SQL 查詢、意圖說明,以及選用的自然語言摘要。

讓文字轉 SQL 準確率接近 100% 的策略

要讓文字轉 SQL 的準確率接近 100%,必須經過反覆的工程程序,也就是登山法。您不必預先設想使用者可能提出的所有問題,而是先從基準結構定義說明著手,使用 EvalBench 根據代表性的黃金 SQL 查詢基準評估代理,然後解決準確度落差。

如要進一步瞭解解決準確度落差的建議策略 (或方法),包括架構圖、SQL 範例和評估基準,請參閱「讓 Text-to-SQL 準確度接近 100% 的六種方法」,並試用隨附的程式碼實驗室,瞭解如何實作這些 Text-to-SQL 準確度方法。

總而言之,六個食譜如下:

  • 配方 0:初始化情境集並連結應用程式。首先,在結構定義中加入描述性的資料表和資料欄註解,然後使用 Conversational Analytics API 用戶端程式庫,或 MCP Toolbox for Databases 中的 cloud-gemini-data-analytics-query 工具,將應用程式連結至 QueryData。
  • 方法 1:使用查詢範本插入解讀。針對最重要的業務問題,提供經過驗證的 SQL 查詢範例,並將這些範例一般化,轉換為參數化 SQL 範本、參數化意圖說明,以及擷取語意等效問題變體的資訊清單。
  • 方法 2:使用多面向範本。將基本查詢範本與模組化查詢面向 (可重複使用的 SQL 條件,具有自己的資訊清單和意圖) 搭配使用,QueryData 就能動態組成多重篩選器查詢,不必為每種條件組合建立個別範本。
  • 方法 3:使用值搜尋功能消除歧義。定義值搜尋查詢,將自然語言問題中的值詞組 (包括專有術語、同義詞和拼寫錯誤) 連結至實際的資料庫資料欄和值,並在字詞與多個實體類型相符時,讓 QueryData 提示使用者提供更明確的資訊。
  • 配方 4:整合語意搜尋和 AI 運算子。結合結構化 SQL 範本和 facet,以及向量搜尋和資料庫內 AI 運算子 (例如 AlloyDB 中的 AI.IF 和 AI.RANK),使用語意條件篩選非結構化文字或多模態資料,並進行排序。
  • 方法 5:使用參數化安全檢視。在 AlloyDB、MySQL 適用的 Cloud SQL 和 PostgreSQL 適用的 Cloud SQL 中,透過參數化安全檢視表繫結已驗證的使用者參數,強制執行嚴格的資料列層級安全性,並保護使用者資料免受提示詞注入攻擊。

您可以手動套用這些方法,也可以使用開放原始碼情境工程代理,自動執行爬坡工作流程,包括擴充評估集、執行 EvalBench 評估、分析準確度差距,以及提出新的範本、面向和值搜尋。

後續步驟