סקירה כללית של קבוצות הקשרים

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

הקשר של דומיין יכול להיות בכל מיני צורות, אבל קבוצות הקשרים תומכות בשלושה סוגים מיוחדים של הקשרים:

  • תבניות של שאילתות: שאילתות SQL שאושרו מראש לשאלות עסקיות נפוצות.
  • היבטים של שאילתות: מסננים מודולריים, כמו "למשפחה צעירה" או "נוף לים", שמצורפים באופן דינמי לתבניות.
  • חיפושי ערכים: חיפושי ישויות שממפים ביטויים של משתמשים לערכים מדויקים במסד הנתונים ופותרים אי-בהירות.

אלה מסדי הנתונים הנתמכים:

  • ‫AlloyDB ל-PostgreSQL
  • Cloud SQL ל-MySQL
  • Cloud SQL ל-PostgreSQL
  • Spanner
  • ‫Firestore עם תאימות ל-MongoDB
  • Bigtable

מהן קבוצות הקשר

אתם יכולים ליצור ולשפר קבוצות הקשר בזמן התכנון באמצעות סוכן עם מנוע תלוי הקשר. סוכן הנדסת ההקשר מריץ את מבחן הביצועים המייצג ב-QueryData, מדרג את התוצאות ומשפר את קבוצת ההקשרים באמצעות איטרציות (hill-climbs). לאחר מכן, המערכת בודקת את הגרסה הסופית מול קבוצת בדיקה שלא נראתה קודם כדי למנוע התאמת יתר (overfitting), ומעלה באופן אוטומטי את קבוצת ההקשר אלGoogle Cloud.

כשמשלבים את מסד הנתונים עם קבוצת הקשרים שנבחרה, נהנים משני יתרונות עיקריים:

  • דיוק של כמעט 100% בהכללה: סכימות של מסדי נתונים מתארות טבלאות ועמודות, אבל הן לא יכולות להגיד למודל איזה מרחק נחשב "קרוב" או איזה דירוג הופך בית ספר ל"טוב". קבוצות הקשר מבססות את QueryData על כללים עסקיים מאומתים של הארגון, ותבניות עם פרמטרים מאפשרות לקבוצת הקשר קומפקטית להכליל וריאציות של ניסוחים, שילובים של מסננים וערכים של ישויות.
  • ביצוע מהיר אונליין וזמן אחזור נמוך: הנדסת הקשר מעבירה את הסקת הסכימה היקרה אופליין לזמן התכנון:
    • ביצוע בהתאמה להקשר עם קבוצת הקשרים: ביצוע מהיר במעבר אחד באמצעות התאמה לתבנית שעברה הידור מראש וחיפושי ערכים באינדקס.
    • סינתזה מסוג Zero-shot לשאילתות לא צפויות בלי תבניות: נמשכת פי 2 עד 3 יותר זמן כי המודל צריך לחקור את המטא-נתונים של הסכימה ולסנתז את ה-SQL בזמן הריצה.
    • חקירה פתוחה באמצעות סוכן עם כלי SQL גולמיים: בדרך כלל נמשכת יותר מ-30 שניות בגלל שאילתות של ניסוי וטעייה בכמה שלבים ולולאות של תיקון שגיאות.

סוגי הקשרים בקבוצת הקשרים

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

"תמצא לי בתים למשפחה צעירה ליד בתי ספר טובים בהרצליה עם נוף לים"

‫QueryData פותר את הבקשה בארבעה שלבים מתואמים:

  1. תבנית השאילתה מספקת את מבנה השאילתה הבסיסי של "בתים ליד בתי ספר טובים ב$1", ומחילה כללים עסקיים לגבי המרחק (בטווח של 3 ק"מ) ודירוג בית הספר (5 ומעלה).
  2. היבטי השאילתה מוסיפים מסננים מודולריים ל "משפחה בתחילת הדרך" (3 עד 4 חדרי שינה, 2 חדרי רחצה או יותר) ו "נוף לים" (חיפוש דמיון וקטורי).
  3. חיפוש ערך מוצא את 'Del Mar' בעמודה cities.city_name ומאמת את סוג הקונספט שלו.
  4. הסברי הכוונה משולבים להסבר מאושר אחד שמוחזר לצד תוצאות השאילתה: "בתים בדל מאר במרחק של עד 3.2 ק"מ מבתי ספר בדירוג 5 ומעלה, עם 3 עד 4 חדרי שינה ונוף לאוקיינוס".

תבניות של שאילתות

תבניות של שאילתות הן קבוצה של שאלות מייצגות בשפה טבעית עם שאילתות SQL תואמות. הם כוללים גם הסברים שמספקים נימוק מוסמך לאופן שבו שאלה פורשה.

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

הרכיבים העיקריים של תבנית שאילתה הם:

  • שאלה לדוגמה בשפה טבעית: שאלה מייצגת שנשאלה באנגלית פשוטה, כמו "Find me homes near good schools in Del Mar" (מצא לי בתים ליד בתי ספר טובים בדל מאר).
  • שאילתת SQL לדוגמה: שאילתת SQL מאומתת שעונה על השאלה בהתאם לכללים העסקיים שלכם.
  • תבנית שאלה כללית: תבנית שנוצרת אוטומטית, שבה ערכים ספציפיים מוחלפים בתיאורים כלליים, כמו "חיפוש בתים ליד בתי ספר טובים בעיר מסוימת", שמשמשת להתאמה של שאלות נכנסות בניסוחים שונים.
  • הסבר על הכוונה: הסבר מאושר ופשוט על הכללים העסקיים שהופעלו על ידי השאילתה, כמו "חיפוש בתים ב$1 במרחק של עד 3 ק"מ מבית ספר עם דירוג של 5 לפחות".
  • שאילתת SQL עם פרמטרים: שאילתת ה-SQL שניתנת להפעלה, שתואמת להסבר על הכוונה, באמצעות פרמטרים כמו $1.

היבטים של שאילתות

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

לדוגמה, משתמש יכול להרחיב את הבקשה "תמצא לי בתים ליד בתי ספר טובים בהרצליה" עם תנאים נוספים:

  • "...למשפחה בתחילת דרכה", שממופה למסנן SQL מובנה כמו properties.bedrooms BETWEEN 3 AND 4 AND properties.bathrooms >= 2.0.
  • "...עם נוף לים", שמשתמשת באופרטורים של AI במסד הנתונים כמו ai.if או בחיפוש דמיון וקטורי (<=>) בעמודות לא מובנות כמו listing_description, listing_image_embeddings ו-customer_reviews.

הרכיבים העיקריים של מאפיין שאילתה הם:

  • קטע קוד SQL: תנאי הסינון של SQL שניתן לשימוש חוזר, כמו properties.bedrooms BETWEEN 3 AND 4 AND properties.bathrooms >= 2.0.
  • תבנית מצב כללית: תבנית השפה הטבעית שהמאפיין תואם לה, כמו "מתאים למשפחה צעירה".
  • הסבר על הכוונה: הסבר מאושר על תנאי הסינון, שמוחזר כחלק מהנימוק הכולל לתשובה.
  • קטע קוד SQL עם פרמטרים: קטע קוד SQL שניתן להפעלה, שתואם להסבר על הכוונה.

שאילתות חיפוש של ערכים

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

לדוגמה, אם משתמש מבקש מאפליקציית נדל "ן "נכסים שנמכרו ב-Westwod בחודש האחרון", מודל שמבוסס על סכימה בלבד עשוי לסנן לפי `WHERE name = 'Westwod'` ולא להחזיר תוצאות. שאילתות חיפוש של ערכים משתמשות בהתאמה לא מדויקת כדי לפתור את שגיאת האיות "Westwod" לערך 'Westwood' במסד הנתונים. בנוסף, אם 'Westwood' קיים בכמה סוגי מושגים במסד הנתונים, כמו City,‏ Municipality ו-Brokerage, קישור הערכים מזהה את חוסר הבהירות, וכך QueryData יכול לבקש מהמשתמש להבהיר לאיזה מושג הוא התכוון במקום לנחש.

הרכיבים העיקריים של שאילתת חיפוש ערכים הם: