סקירה כללית של QueryData

‫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": "employee.\"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": "employee.\"A11\" BETWEEN $1 AND $2"
      }
    }
  ],
  "value_searches": [
    {
      "query": "SELECT $value as value, 'accounts.account_type' as columns, 'Account Type' as concept_type, 0 as distance, '{}'::text as context FROM \"accounts\" T WHERE T.\"account_type\" = $value",
      "concept_type": "Account Type",
      "description": "Exact match for account types"
    }
   ]
}

כשמשתמש קצה שואל שאלה בשפה טבעית, QueryData נותן עדיפות להתאמת השאלה לתבניות ולפאות שנבדקו על ידי המפתח שמנהל את ההקשר. אחרי ש-QueryData מזהה התאמה, הוא משתמש בתבנית השאילתה ובמאפיינים שנבחרו כדי ליצור שאילתת מסד נתונים. הלוגיקה של הגדרת ההקשר מריצה את השאילתה הזו במסד הנתונים כדי להחזיר תוצאות מדויקות.

מומלץ להגדיר חיפושי ערכים בהקשר שלכם. חיפושי ערכים מאפשרים לסוכן למפות ביטויי ערכים לערכים ספציפיים שמאוחסנים בעמודות של מסד הנתונים. הפעולה הזו מעגנת את ה-LLM בנתונים בפועל, ועוזרת לו לפתור אי בהירויות, כמו אם מונח מסוים מתייחס לשם District או לCity.

אם הסוכן לא מוצא תבנית תואמת, הוא משתמש בחיפושי ערכים כדי למפות ביטויים בשפה טבעית לערכים ספציפיים שמאוחסנים בעמודות של מסד הנתונים. ההקשר הזה עוזר למודל ה-LLM להתבסס על הנתונים בפועל שלכם, ולפתור אי-בהירויות, למשל אם המונח מתייחס לDistrict, לName או לCity.

נקודת הקצה QueryData ב-Conversational Analytics API היא כלי מבוסס-סוכן שמאפשר שילוב תוכניתי עם האפליקציות שלכם כדי ליצור שאילתות SQL משאלות בשפה טבעית. באפליקציה שיש בה ממשק שיחה, צריך להשתמש בנקודת הקצה QueryData במסגרת שמנהלת את היסטוריית השיחה וההקשר שלה.כדי לאכוף את זיהוי הישויות תוך שמירה על אבטחה ברמת השורה, אפשר להשתמש בתצוגות מאובטחות עם פרמטרים (PSV). מידע נוסף זמין במאמר בנושא אבטחה ושליטה בגישה לנתוני אפליקציות באמצעות תצוגות מאובטחות עם פרמטרים.

המאמרים הבאים