במאמר הזה מוסבר איך לבדוק את QueryData ולעדכן את קובץ קבוצת ההקשר. אתם יכולים לבדוק את היכולת של QueryData ליצור שאילתות SQL משאלות בשפה טבעית. אם שאילתה שנוצרה לא מדויקת, אתם יכולים לעדכן את קובץ קבוצת ההקשר.
למידע ולמידה על קבוצות של הקשרים, ראה סקירה כללית על קבוצות של הקשרים.לפני שמתחילים
חשוב לוודא שכבר נוצרה קבוצת הקשר ושהקובץ של קבוצת ההקשר הועלה לסוכן QueryData. מידע נוסף זמין במאמר ניהול קבוצות של הקשרים ב-Bigtable Studio.
כדי להוריד, לעדכן ולהעלות קבצים של קבוצות הקשר, ודאו שלמשתמש ב-IAM יש את התפקיד "עריכה של Dataplex Catalog" (roles/dataplex.catalogEditor) או "אדמין של Dataplex Catalog" (roles/dataplex.catalogAdmin) בפרויקט. מידע נוסף זמין במאמר הרשאות לקבוצות הקשר.
בדיקת QueryData
כדי לבדוק QueryData:
נכנסים לדף Bigtable במסוף Google Cloud .
בוחרים מכונה מהרשימה.
בתפריט הניווט, לוחצים על Bigtable Studio.
בחלונית Explorer, לוחצים על View actions לצד קבוצת ההקשר שבה משתמשים.
לוחצים על קבוצת הקשר לבדיקה.
בעורך השאילתות, לוחצים על Generate SQL using QueryData with: CONTEXT_SET_NAME כדי לפתוח את החלונית עזרה בתכנות.
כדי ליצור שאילתת SQL, כותבים שאלה בשפה טבעית בעורך ולוחצים על יצירה.
בודקים ששאילתת ה-SQL מדויקת. לוחצים על Insert כדי להוסיף את השאילתה לעורך.
הורדה ועדכון של קבוצת הקשרים
אם אתם לא מרוצים משאילתת ה-SQL שנוצרה לשאלה בשפה טבעית, הורידו את קובץ קבוצת ההקשר הקיים. אחר כך אפשר לבדוק ולעדכן את תבנית השאילתה, ולהעלות מחדש את קובץ ההקשר המעודכן לנציג.
כדי להוריד ולעדכן קבוצת הקשר, מבצעים את השלבים הבאים:
- בחלונית Explorer, לוחצים על View actions לצד קבוצת ההקשר שבה משתמשים.
- לוחצים על הורדת קובץ ההקשר.
- כדי לעדכן את ההקשר עם עוד צמדי שאילתות, פועלים לפי השלבים שמפורטים בקטע יצירת קבוצות הקשר באמצעות סוכן עם מנוע הקשר.
- בחלונית Explorer, לוחצים על View actions לצד קבוצת ההקשר שבה משתמשים.
- לוחצים על עריכת קבוצת ההקשר.
- בקטע העלאת קובץ הקשר, לוחצים על עיון ובוחרים את קובץ קבוצת ההקשרים המעודכן.
- לוחצים על שמירה כדי לעדכן את קבוצת ההקשרים.
אחרי שאתם מרוצים מרמת הדיוק של התשובות, אתם יכולים להשתמש בנקודת הקצה QueryData כדי לחבר את האפליקציה לקבוצת ההקשר.
איך מוצאים את המזהה של קבוצת ההקשר
כדי לקשר אפליקציית נתונים לסוכן QueryData, צריך את המזהה של קבוצת ההקשר.
נכנסים לדף Bigtable במסוף Google Cloud .
בוחרים מכונה מהרשימה.
בתפריט הניווט, לוחצים על Bigtable Studio.
בחלונית Explorer, לוחצים על View actions לצד קבוצת ההקשר שבה משתמשים.
לוחצים על עריכת קבוצת ההקשר.
שימו לב למזהה ההקשר בשדה מזהה קבוצת ההקשר. הפורמט של מזהה קבוצת ההקשר דומה ל-
projects/PROJECT_ID/locations/LOCATION/contextSetGroups/GROUP_ID/contextSets/CONTEXT_SET_ID@v1.
קישור של QueryData לאפליקציה
מגדירים את מזהה קבוצת ההקשרים בהפעלת ה-method QueryData כדי לספק הקשר שנוצר למקורות נתונים של מסדי נתונים כמו AlloyDB, Spanner, Cloud SQL, Cloud SQL ל-PostgreSQL, Firestore ו-Bigtable. מידע נוסף זמין במאמר הגדרת הקשר של סוכן לאינטראקציה עם נתונים למקורות נתונים של מסדי נתונים.
אחרי שבודקים את קבוצת ההקשר, אפשר להפנות למקור הנתונים של מסד הנתונים בקריאה ל-QueryData.
דוגמה לבקשה ב-QueryData עם הקשר שנוצר על ידי המשתמש
הדוגמה הבאה מציגה בקשת QueryData באמצעות מקור נתונים של מסד נתונים ב-bigtable_reference. השדה agent_context_reference.context_set_id משמש לקישור לקבוצת ההקשרים שמכילה את ההקשר שיצרתם.
POST https://geminidataanalytics.googleapis.com/v1beta/projects/context-set-project/locations/us-central1:queryData
{ "parent": "projects/context-set-project/locations/us-central1", "prompt": "List the names and ratings of all hotels located in London.", "context": { "datasource_references": { "bigtable_reference": { "database_reference": { "project_id": "context-set-project", "instance_id": "evalbench" }, "agent_context_reference": { "context_set_id": "projects/context-set-project/locations/us-central1/contextSets/hotels_bigtable_all_templates" } } } }, "generation_options": { "generate_query_result": true, "generate_natural_language_answer": true, "generate_disambiguation_question": true, "generate_explanation": true } }
גוף הבקשה מכיל את השדות הבאים:
-
prompt: השאלה בשפה טבעית ממשתמש הקצה. -
context: מכיל מידע על מקורות הנתונים.-
datasource_references: מציין את סוג מקור הנתונים.-
bigtable_reference: נדרש כששולחים שאילתה למסד הנתונים. השדה הזה משתנה בהתאם למסד הנתונים שאתם שולחים אליו שאילתה.-
database_reference: מציין מידע שקשור למכונה של Bigtable.-
project_id: מזהה הפרויקט שאליו שייך המכונה של Bigtable. -
instance_id: מזהה המכונה של מכונת Bigtable. -
table_ids: אופציונלי. מזהי הטבלאות שהסוכן יפעל בהן. אם לא מגדירים את המדיניות, כל הטבלאות במכונה נכללות.
-
-
agent_context_reference: קישורים להקשר שנוצר.-
context_set_id: המזהה המלא של קבוצת ההקשרים שמכילה את ההקשר שיצרתם. לדוגמה,projects/PROJECT_ID/locations/LOCATION/contextSetGroups/GROUP_ID/contextSets/CONTEXT_SET_ID@v1.
-
-
-
-
-
generation_options: מגדיר את סוג הפלט שנוצר.-
generate_query_result: צריך להגדיר כ-true כדי ליצור ולהחזיר את תוצאות השאילתה. -
generate_natural_language_answer: אופציונלי. אם הערך מוגדר כ-true, נוצרת תשובה בשפה טבעית. -
generate_explanation: אופציונלי. אם הערך הוא True, נוצר הסבר על שאילתת ה-SQL. -
generate_disambiguation_question: אופציונלי. אם המדיניות מוגדרת כ-True, נוצרות שאלות להפגת עמימות אם השאילתה לא ברורה.
-
דוגמה לתשובה של QueryData
זו דוגמה לתגובה מוצלחת לקריאה ל-QueryData:
{
"generatedQuery": "SELECT COUNT(*) FROM `hotels` WHERE CAST(cf['location'] AS STRING) = 'London'",
"intentExplanation": "count of hotels in London",
"queryResult": {
"columns": [
{
"name": "$col1",
"type": "int64_type:{}"
}
],
"rows": [
{
"values": [
{
"value": "2"
}
]
}
],
"totalRowCount": "1"
},
"naturalLanguageAnswer": "Based on the data, there are 2 hotels located in London."
}