內容集總覽

脈絡資料集是 QueryData 的領域知識。這項設定會定義應用程式上線前的商業邏輯運作方式,讓 QueryData 能以接近 100% 的準確率和低線上延遲,回答自然語言問題。

雖然網域情境可以有多種形式,但情境集支援三種專門的情境類型:

  • 查詢範本:預先核准的 SQL 查詢,用於常見的業務問題。
  • 查詢 Facet:模組化篩選器,例如「starter family」或「ocean view」,會動態附加至範本。
  • 值搜尋:實體查詢,可將使用者詞組對應至確切的資料庫值,並解決語意模糊的問題。

支援的資料庫如下:

  • AlloyDB for PostgreSQL
  • MySQL 適用的 Cloud SQL
  • PostgreSQL 適用的 Cloud SQL
  • Spanner
  • 與 MongoDB 相容的 Firestore
  • Bigtable

什麼是情境組合

您可以在設計階段使用脈絡工程代理,編寫及最佳化脈絡資料集。情境工程代理會透過 QueryData 執行代表性的黃金基準測試、為結果評分,並反覆修正 (爬坡) 情境集。接著,系統會根據未公開的保留測試集檢查最終版本,避免過度配適,並自動將情境集上傳至Google Cloud。

將資料庫與精選情境集配對,可帶來兩項核心製作優勢:

  • 準確率接近 100% 的一般化:資料庫結構定義描述資料表和資料欄,但無法告訴模型多遠的距離算「近」,或多高的評分算「好」學校。脈絡資料集會根據貴組織經過驗證的業務規則,為 QueryData 建立基準,而參數化模式則可讓精簡的脈絡資料集,在各種措辭、篩選器組合和實體值之間進行一般化。
  • 快速線上執行和低延遲:情境工程將昂貴的結構定義推論移至離線設計階段:
    • 使用情境集執行情境比對:透過預先編譯的範本比對和索引值查詢,快速執行單一傳遞。
    • 針對沒有範本的非預期查詢進行零樣本合成:由於模型必須在執行階段探索結構定義中繼資料並合成 SQL,因此所需時間會增加 2 到 3 倍。
    • 使用原始 SQL 工具進行開放式代理探索:通常需要超過 30 秒,因為需要多輪試誤查詢和錯誤修正迴圈。

脈絡資料集中的脈絡類型

在執行階段,QueryData 會在單一階段中合併所有三種情境類型。舉例來說,如果使用者詢問:

「幫我找 Del Mar 靠近好學校、適合新手家庭且有海景的住宅」

QueryData 會透過四個協調步驟解決要求:

  1. 查詢範本提供「$1好學校附近的房屋」的核心查詢結構,並套用距離 (2 英里內) 和學校排名 (5 分以上) 的業務規則。
  2. 查詢面向會插入「入門家庭」(3 到 4 間臥室、2 間以上浴室) 和「海景」(向量相似度搜尋) 的模組化篩選器。
  3. 值搜尋會在 cities.city_name 欄中尋找 'Del Mar',並驗證其概念類型。
  4. 意圖說明會合併為一項經過認證的說明,並與查詢結果一併傳回:「德爾馬的住宅,距離評分 5 分以上的學校 2 英里內,有 3 至 4 間臥室,且有海景。」

查詢範本

查詢範本是一組精選的代表性自然語言問題,以及對應的 SQL 查詢。此外,這些回應也包含說明,提供經過認證的問題解讀依據。

舉例來說,如果使用者向房地產應用程式詢問「幫我找 Del Mar 靠近好學校的住宅」,資料庫結構定義本身並未定義多遠的距離算「靠近」、學校要達到什麼評分才算「好」,或如何為符合條件的房產排序。查詢範本會擷取確切的業務解讀,例如距離排名 5 以上的學校 2 英里內的房產,並依排名和鄰近程度的加權分數排序,然後將其一般化至任何城市。

查詢範本的主要元件如下:

  • 自然語言問題範例:以一般英文提出的代表性問題,例如「幫我找德爾馬靠近好學校的住宅」。
  • SQL 查詢範例:根據業務規則回答問題的已驗證 SQL 查詢。
  • 一般化問題模式:自動生成的模式,會將特定值替換為一般說明,例如「尋找特定城市中靠近好學校的住宅」,用於比對不同措辭的傳入問題。
  • 意圖說明:以淺顯易懂的文字,說明查詢套用的業務規則,例如「在$1尋找距離學校 2 英里內,且學校排名至少為 5 的房屋」。
  • 參數化 SQL 查詢:與意圖說明對應的可執行 SQL 查詢,使用 $1 等參數。

查詢 facet

查詢 facet 是一組精選的代表性自然語言條件,以及對應的 SQL 述詞。Facet 會管理篩選條件和條件,讓查詢範本執行 Facet 搜尋,而不必為每個篩選條件組合建立個別範本。

舉例來說,使用者可以將「幫我找德爾馬靠近好學校的住宅」延伸為:

  • 「...適合新手家庭」,這會對應至結構化 SQL 篩選器,例如 properties.bedrooms BETWEEN 3 AND 4 AND properties.bathrooms >= 2.0。
  • 「...with an ocean view」,這會使用向量相似度搜尋,在 listing_description、listing_image_embeddings 和 customer_reviews 等非結構化資料欄中搜尋。

查詢 facet 的主要元件如下:

  • SQL 程式碼片段:可重複使用的 SQL 篩選條件,例如 properties.bedrooms BETWEEN 3 AND 4 AND properties.bathrooms >= 2.0。
  • 一般化條件模式:Facet 符合的自然語言模式,例如「適合新手家庭」。
  • 意圖說明:篩選條件的認證說明,會做為整體答案依據的一部分傳回。
  • 參數化 SQL 程式碼片段:與意圖說明對應的可執行 SQL 片段。

搜尋查詢

值搜尋查詢是由開發人員定義,使用完全比對、模糊三元組相似度或語意向量搜尋等比對函式,在資料庫中尋找值及其背景資訊。QueryData 會對這些結果使用值連結,找出哪些資料表和資料欄包含相符的值、瞭解值的概念類型、修正拼寫錯誤,並在執行 SQL 前偵測模糊不清之處。

舉例來說,如果使用者向房地產應用程式詢問「Westwod 上個月售出的房產」,僅限結構定義的模型可能會依 `WHERE name = 'Westwod'` 篩選,且不傳回任何結果。值搜尋查詢會使用模糊比對,將拼寫錯誤的「Westwod」解析為資料庫值 'Westwood'。此外,如果資料庫中有多個概念類型存在 'Westwood',例如 City、Municipality 和 Brokerage,值連結會偵測到語意不明,因此 QueryData 會要求使用者釐清他們的意思,而不是猜測。

值搜尋查詢的主要元件如下: