QueryData 可讓您使用對話式語言與資料庫中的資料互動,並建構資料代理。QueryData 會使用內容集為資料庫編寫查詢。內容集是程式碼集合,內含資料庫的專屬資訊。有了這個背景資訊,QueryData 就能將自然語言問題轉換為適用於目標用途的準確查詢。
使用 QueryData 的時機
QueryData 非常適合用於下列應用程式:
- 客戶服務自動化:處理大量查詢,例如「我的訂單在哪裡?」或「我目前的餘額是多少?」。
- 電子商務購物助理:協助使用者透過自然語言查詢 (例如「顯示 $100 美元以下的慢跑鞋」),瀏覽大型產品目錄。
- 現場作業工具:讓行動員工即時查詢庫存量、零件供應情形或服務單詳細資料。
QueryData 的運作方式
如要建構有效的代理應用程式,QueryData 必須瞭解您的資料機構和商業邏輯。您以內容集的形式提供這項資訊。
您可以在檔案中定義內容,這些檔案包含各內容類型的 JSON 物件。您可以使用 Gemini CLI 撰寫這些脈絡檔案。接著,將結構定義檔案上傳至您在 Google Cloud控制台中建立的脈絡資料集。這個程序可讓 QueryData 瞭解資料庫的特定結構定義和應用程式的商業邏輯。
結構定義檔案類似下列內容:
代理程式結構定義檔案類似於下列內容:
{
"templates": [
{
"nl_query": "Count prague loan accounts",
"sql": "SELECT COUNT(T1.account_id) FROM bird_dev_financial.account AS T1 INNER JOIN bird_dev_financial.loan AS T2 ON T1.account_id = T2.account_id INNER JOIN bird_dev_financial.district AS T3 ON T1.district_id = T3.district_id WHERE T3.\"A3\" = 'Prague'",
"intent": "How many accounts associated with loans are located in the Prague region?",
"manifest": "How many accounts associated with loans are located in a given city?",
"parameterized": {
"parameterized_intent": "How many accounts associated with loans are located in $1",
"parameterized_sql": "SELECT COUNT(T1.account_id) FROM bird_dev_financial.account AS T1 INNER JOIN bird_dev_financial.loan AS T2 ON T1.account_id = T2.account_id INNER JOIN bird_dev_financial.district AS T3 ON T1.district_id = T3.district_id WHERE T3.\"A3\" = $1"
}
}
],
"facets": [
{
"sql_snippet": "T.\"A11\" BETWEEN 6000 AND 10000",
"intent": "Average salary between 6000 and 10000",
"manifest": "Average salary between a given number and a given number",
"parameterized": {
"parameterized_intent": "Average salary between $1 and $2",
"parameterized_sql_snippet": "T.\"A11\" BETWEEN $1 AND $2"
}
}
]
}
當使用者以自然語言提問時,QueryData 會優先將問題與開發人員審查過的範本和構面進行比對,QueryData 識別出相符項目後,會使用所選查詢範本和 Facet 合成資料庫查詢。然後,內容集邏輯會對資料庫執行該查詢,傳回準確結果。
建議您在情境中定義值搜尋。代理程式可透過值搜尋,將值片語對應至資料庫資料欄中儲存的特定值。這可讓 LLM 根據實際資料解決模糊不清的問題,例如某個字詞是指District名稱還是City。
如果代理程式找不到相符的範本,就會使用值搜尋功能,將自然語言片語對應至資料庫欄中儲存的特定值。這項功能可讓 LLM 根據實際資料進行推論,有助於解決模糊不清的問題,例如某個字詞是指District、Name還是City。
對話式數據分析 API 中的 QueryData 端點是代理工具,可與應用程式進行程式輔助整合,從自然語言問題生成 SQL 查詢。在對話式應用程式中,QueryData 端點必須在管理對話記錄和內容的架構中使用。如要強制執行實體解析,同時維持嚴格的資料列層級安全性,可以使用參數化安全檢視 (PSV)。詳情請參閱「使用參數化安全檢視畫面,確保應用程式資料安全並控管存取權」。