בדף הזה מוסבר איך מקבלים תוצאות חיפוש באמצעות ה-API.
אתם יכולים לבצע קריאות ל-API ולשלב את הקריאות האלה בשרת או באפליקציה שלכם. בדף הזה יש דוגמאות קוד שמראות איך לשלוח שאילתות חיפוש באמצעות ספריות הלקוח של gRPC עם חשבון שירות.
קבלת תוצאות חיפוש
אפשר לקבל תוצאות חיפוש באמצעות ה-API.
REST
כדי להשתמש ב-API כדי לקבל תוצאות חיפוש של אפליקציה עם נתונים מובנים או לא מובנים, משתמשים ב-method engines.servingConfigs.search:
מאתרים את מזהה האפליקציה. אם כבר יש לכם מזהה אפליקציה, דלגו לשלב הבא.
נכנסים לדף Gemini Enterprise במסוף Google Cloud .
בדף אפליקציות, מאתרים את שם האפליקציה ומעתיקים את המזהה שלה מהעמודה מזהה.
תצוגה מקדימה של תוצאות החיפוש.
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \ -d '{ "query": "QUERY", "userPseudoId": "USER_PSEUDO_ID", "pageSize": "PAGE_SIZE", "offset": "OFFSET", "orderBy": "ORDER_BY", "filter": "FILTER", "boostSpec": "BOOST_SPEC", "facetSpec": "FACET_SPEC", "queryExpansionSpec": "QUERY_EXPANSION_SPEC", "spellCorrectionSpec": "SPELL_CORRECTION_SPEC", "contentSearchSpec": "CONTENT_SEARCH_SPEC", "dataStoreSpecs": [{"DATA_STORE_SPEC"}], }'מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
APP_ID: המזהה של האפליקציה שרוצים לשלוח אליה שאילתה. -
QUERY: טקסט השאילתה לחיפוש. -
USER_PSEUDO_ID: מחרוזת בקידוד UTF-8, שמשמשת כמזהה ייחודי עם פסאודונימיזציה למעקב אחרי המשתמשים. האורך המקסימלי הוא 128 תווים. Google ממליצה מאוד להשתמש בשדה הזה כי הוא משפר את הביצועים של המודל ואת איכות ההתאמה האישית. אפשר להשתמש בקובץ Cookie של HTTP בשדה הזה, כדי לזהות באופן ייחודי מבקר במכשיר יחיד. הנה כמה דברים חשובים שכדאי לזכור:- המזהה הזה לא משתנה כשהמבקר נכנס לאתר או יוצא ממנו.
- אסור להגדיר את אותו מזהה למשתמשים שונים בשדה הזה. במקרים אחרים, שימוש באותו מזהה משתמש לכמה משתמשים עלול לשלב היסטוריית אירועים של משתמשים שונים ולהפחית את איכות המודל.
- השדה הזה לא יכול לכלול פרטים אישיים מזהים (PII).
- לכל בקשת חיפוש או בקשת עיון, השדה הזה צריך להיות ממופה לשדה
userPseudoIdהמתאים באירועי המשתמש.
מידע נוסף זמין במאמר
userPseudoId. -
PAGE_SIZE: מספר התוצאות שמוחזרות על ידי החיפוש. הגודל המקסימלי המותר של הדף תלוי בסוג הנתונים. אם גודל הדף גדול מהערך המקסימלי, הוא ישתנה לערך המקסימלי.
OFFSET: אופציונלי. האינדקס ההתחלתי של התוצאות. ערך ברירת המחדל הוא 0.לדוגמה, אם ההיסט הוא 2, גודל הדף הוא 10 ויש 15 תוצאות להחזרה, התוצאות 2 עד 11 מוחזרות בדף הראשון.
ORDER_BY: אופציונלי. הסדר שבו התוצאות מסודרות.
FILTER: אופציונלי. שדה טקסט לסינון החיפוש באמצעות ביטוי סינון. ערך ברירת המחדל הוא מחרוזת ריקה, כלומר לא מוחל מסנן.לדוגמה:
color: ANY("red", "blue") AND score: IN(*, 100.0e)מידע נוסף מופיע במאמר בנושא סינון חיפוש של נתונים מובְנים או לא מובְנים.
BOOST_SPEC: אופציונלי. מפרט להדגשת מסמכים או להסתרתם. ערכים:-
BOOST: מספר בשיטת נקודה צפה בטווח [-1,1]. אם הערך שלילי, התוצאות יורדות בדירוג (הן יופיעו בחלק התחתון של התוצאות). אם הערך חיובי, התוצאות מקודמות (מופיעות גבוה יותר בתוצאות). -
CONDITION: a ביטוי סינון טקסט to select the documents to which boost is applied. המסנן צריך להחזיר ערך בוליאני.
מידע על שיפור תוצאות חיפוש מובנה זמין במאמר שיפור תוצאות חיפוש.
-
FACET_SPEC: אופציונלי. מפרט של היבט לביצוע חיפוש עם היבטים.
QUERY_EXPANSION_SPEC: אופציונלי. הגדרה שקובעת באילו תנאים יתבצע הרחבת שאילתה. ערך ברירת המחדל הואDISABLED.
SPELL_CORRECTION_SPEC: אופציונלי. מפרט לקביעה של התנאים שבהם צריך לבצע תיקון שגיאות כתיב. ערך ברירת המחדל הואAUTO.
CONTENT_SEARCH_SPEC: אופציונלי. לקבלת תקצירים, תשובות חילוץ, פלחים חילוץ וסיכומי חיפוש. לנתונים לא מובנים בלבד. למידע נוסף:
DATA_STORE_SPEC: מסננים של מאגר נתונים ספציפי לחיפוש. אפשר להשתמש באפשרות הזו אם אפליקציית החיפוש שלכם מקושרת לכמה מאגרי נתונים. מידע נוסף זמין במאמר בנושא DataStoreSpec.צפייה בתוצאות חיפוש מודרך בתגובה לחיפוש:
תוצאות חיפוש מודרכות מוחזרות עם תשובות לחיפושים מובנים ולא מובנים. תוצאת החיפוש המודרך מכילה רשימה של צמדי מפתח/ערך של מאפיינים שחולצו על סמך מסמכי תוצאות החיפוש. כך המשתמשים יכולים לצמצם את תוצאות החיפוש באמצעות מפתחות וערכים של מאפיינים כמסננים.
בדוגמה הזו לתגובה, נעשה שימוש בצבע ירוק כדי לצמצם את תוצאות החיפוש על ידי שליחת בקשת חיפוש חדשה עם שדה הסינון שצוין כ-
_gs.color: ANY("green"):{ "guidedSearchResult": { "refinementAttributes": [ { "attributeKey": "_gs.color", "attributeValue": "green" }, { "attributeKey": "_gs.category", "attributeValue": "shoe" } ] } }
-
קבלת ציוני רלוונטיות של מסמכים עם תוצאות החיפוש
ציוני הרלוונטיות של המסמכים מבוססים על הדמיון בין השאילתה לבין המסמך. הציונים מחולקים ל-11 קטגוריות בטווח: 0, 0.1, 0.2 ועד 1.0. ככל שהציון גבוה יותר, כך המסמך רלוונטי יותר.
כדאי להשתמש בציוני הרלוונטיות של המסמכים בתרחישי השימוש הבאים:
סינון אחרי החיפוש על סמך ציון הרלוונטיות כדי להסיר תוצאות לא רלוונטיות
דירוג אחרי החיפוש או כקלט לאפליקציות אחרות
ניפוי באגים: ציוני הרלוונטיות יכולים לספק תובנות לגבי הסיבות להחזרת תוצאות חיפוש מסוימות
לכל תוצאת חיפוש אפשר להחזיר ציון רלוונטיות:
"results": [
{
"id": "DOCUMENT_ID",
"document": {
...
},
"modelScores": {
"relevance_score": {
"values": [
DOCUMENT-RELEVANCE-SCORE
]
}
}
},
...
אפשר גם לעיין בדוגמה לפקודה שמופיעה בהמשך.
לפני שמתחילים: מוודאים שאפליקציית החיפוש משויכת למאגר נתונים מובְנים או לא מובְנים.
REST
כדי לבקש שהציונים של הרלוונטיות של המסמכים יוחזרו עם תוצאות החיפוש, משתמשים בשיטה engines.servingConfigs.search באופן הבא:
- העיבוד שאחרי של תוצאות החיפוש לא מסתמך על נוכחות של ציונים.
מאתרים את מזהה האפליקציה. אם כבר יש לכם מזהה אפליקציה, דלגו לשלב הבא.
נכנסים לדף Gemini Enterprise במסוף Google Cloud .
בדף אפליקציות, מאתרים את שם האפליקציה ומעתיקים את המזהה שלה מהעמודה מזהה.
מריצים את פקודת ה-Curl הבאה כדי לקבל את הציונים שמוחזרים עם תוצאות החיפוש.
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \ -d '{ "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search", "query": "QUERY", "relevanceScoreSpec": { "returnRelevanceScore": true } }'-
PROJECT_ID: מזהה הפרויקט. -
APP_ID: המזהה של האפליקציה שרוצים לשלוח אליה שאילתה. -
QUERY: טקסט השאילתה לחיפוש.
-
סיכום החיפוש משתנה בהתאם למודל
אם אתם יוצרים סיכומים של שאילתות החיפוש, יכול להיות שתשימו לב שהסיכומים שונים בין התוצאות במסוף לבין התוצאות ב-API. אם אתם רואים את ההודעה הזו, סביר להניח שהסיבה לכך היא שהמסוף משתמש במודל LLM שונה מזה שמשמש את ה-API. בדוגמאות הקוד וב-curl שבדף הזה נעשה שימוש במודל LLM יציב.
כדי לשנות או להציג את מודל ה-LLM שבו נעשה שימוש בדף Preview בממשק המשתמש, עוברים לדף Configurations > הכרטיסייה UI של האפליקציה.
במקרה של קריאות לשיטות, מודל ברירת המחדל הוא המודל היציב. כדי להשתמש במודל LLM שאינו המודל היציב, אפשר לעיין במאמרים איך מציינים את מודל הסיכום ואיך מציינים את מודל התשובה.