אפשר להשתמש בתכונה 'התאמה לרקע באמצעות חיפוש Google' ב-Gemini API וב-AI Studio כדי לשפר את הדיוק ואת העדכניות של התשובות מהמודל. בנוסף לתשובות עובדתיות יותר, כשהאפשרות 'התאמה לעובדות באמצעות חיפוש Google' מופעלת, ה-API של Gemini מחזיר מקורות מידע (קישורים תומכים בתוך הטקסט) והצעות מחיפוש Google יחד עם תוכן התשובה. ההצעות לחיפוש מפנות את המשתמשים לתוצאות החיפוש התואמות לתשובה המבוססת.
התכונה 'התמקדות' בחיפוש Google תומכת רק בהנחיות טקסט. הוא לא תומך בהנחיות במגוון מודלים (טקסט ותמונה, טקסט ואודיו וכו'). התכונה 'השבתה באמצעות חיפוש Google' תומכת בכל השפות הזמינות בדגמי Gemini.
המדריך הזה יעזור לכם להתחיל להשתמש ב-Grounding with Google Search באמצעות אחת מערכות ה-SDK של Gemini API או באמצעות ה-API ל-REST.
הגדרת מודל לשימוש בחיפוש Google
למה כדאי להשתמש בתכונה 'התמקדות' בחיפוש Google?
ב-AI גנרטיבי, הטמעה מתייחסת לתהליך של חיבור המודל למקורות מידע מאומתים. המקורות האלה עשויים לספק מידע על מקום עבודה בעולם האמיתי או הקשר ספציפי אחר. הכלי הזה עוזר לשפר את הדיוק, האמינות והשימושיות של תוצאות ה-AI.
חשוב במיוחד לבצע את ההכנה מראש בהנחיות שדורשות מידע עדכני מהאינטרנט. בעזרת הכלי הזה, המודל יכול לגשת למידע מעבר לתאריך הסגירה של הידע שלו, לקבל מקורות למידע ולענות על שאלות שלא היה יכול לענות עליהן בצורה מדויקת אחרת.
באמצעות Google AI Studio או Gemini API, אפשר לקשר את הפלט של המודל לחיפוש Google. היתרונות של שימוש ב-Grounding בחיפוש Google:
- מאפשרת ליצור תשובות של מודלים שמקושרות לתוכן ספציפי.
- הפחתת תגובות לא תואמות נתונים של המודל – מקרים שבהם המודל יוצר תוכן לא מבוסס.
- עוגנים מייצגים תשובות למקורות שהמשתמש יכול ללחוץ עליהם ולפתוח אותם.
- משפרים את האמינות והרלוונטיות של התוכן שנוצר.
כשמשתמשים ב-Grounding עם חיפוש Google, בעצם מחברים את המודל לתוצאות חיפוש מהימנות מהאינטרנט. מאחר שתשובות המודלים ללא נתונים מבוססות על דפוסים שנלמדו, יכול להיות שלא תקבלו תשובות עובדתיות להנחיות לגבי אירועים עדכניים (לדוגמה, אם תבקשו תחזית מזג אוויר או את התוצאה הסופית של משחק כדורגל שהיה לאחרונה). מאחר שהאינטרנט מספק גישה למידע חדש, הנחיה מבוססת יכולה ליצור תשובות עדכניות יותר, עם ציון מקורות.
הנה דוגמה להשוואה בין תגובה לא מבוססת לבין תגובה מבוססת שנוצרה באמצעות ה-API. (התשובות נוצרו באוקטובר 2024).
Gemini לא מקורקע | התמקדות בנושא באמצעות חיפוש Google |
---|---|
הנחיה: מי ניצח בסופרבול השנה? תשובה: הקבוצה Kansas City Chiefs ניצחה בסופרבול LVII השנה (2023). |
הנחיה: מי ניצח בסופרבול השנה? תשובה: הקבוצה Kansas City Chiefs ניצחה השנה בסופרבול LVIII, אחרי שהביסה את San Francisco 49ers בזמן נוסף בתוצאה 25-22. |
בתגובה ללא עיגון, המודל מתייחס לניצחון של Kansas City Chiefs בסופרבול 2023. בתשובה המבוססת, המודל מפנה בצורה נכונה לניצחון האחרון של הקבוצה ב-2024.
בתמונה הבאה אפשר לראות איך נראית תגובה מבוססת ב-AI Studio.
הצעות בחיפוש Google
כדי להשתמש ב'הצמדה למציאות' עם חיפוש Google, צריך להציג הצעות לחיפוש Google. אלה הצעות לשאילתות שכלולות במטא-נתונים של התשובה המצורפת. מידע נוסף על הדרישות להצגה זמין במאמר שימוש בהצעות לחיפוש ב-Google.
אחזור דינמי
סביר להניח שחלק מהשאילתות ייהנו יותר מהתכונה 'הכנה לקראת חיפוש' ב-Google מאשר שאילתות אחרות. התכונה אחזור דינמי מאפשרת לכם לקבוע מתי להשתמש בתכונה 'התמקדות בנושא' בחיפוש Google.
אם לא צוין מצב אחזור דינמי, תכונת 'התאמה לאתר' באמצעות חיפוש Google מופעלת תמיד. אם המצב מוגדר כדינמי, המודל מחליט מתי להשתמש בהגנה על הקרקע על סמך ערך סף שאפשר להגדיר. הסף הוא ערך של נקודה צפה בטווח [0,1], והערך שמוגדר כברירת מחדל הוא 0.3. אם ערך הסף הוא 0, התשובה תמיד מבוססת על חיפוש Google. אם הערך הוא 1, היא אף פעם לא מבוססת על חיפוש Google.
איך פועל אחזור דינמי
אתם יכולים להשתמש באחזור דינמי בבקשה כדי לבחור מתי להפעיל את התכונה 'התמקדות' באמצעות חיפוש Google. האפשרות הזו שימושית כשההנחיה לא מחייבת תשובה שמבוססת על חיפוש Google, והמודל יכול לספק תשובה על סמך הידע שלו ללא התייחסות למקורות מידע. כך תוכלו לנהל את זמן האחזור, האיכות והעלות בצורה יעילה יותר.
לפני שמפעילים את הגדרת האחזור הדינמי בבקשה, חשוב להבין את המונחים הבאים:
Prediction score (ציון חיזוי): כשמבקשים תשובה מבוססת, Gemini מקצה להנחיה Prediction score (ציון חיזוי). ציון החיזוי הוא ערך נקודה צפה (floating-point) בטווח [0,1]. הערך שלו תלוי בכך שאפשר להשתמש בהנחיה כדי להוסיף לתשובה את המידע העדכני ביותר מחיפוש Google. לכן, אם הנחיה מחייבת תשובה שמבוססת על העובדות העדכניות ביותר באינטרנט, ציון התחזית שלה גבוה יותר. להנחיה שבה תשובה שנוצרה על ידי מודל מספיקה, יש ציון חיזוי נמוך יותר.
ריכזנו כאן כמה דוגמאות להנחיות ולציוני התחזית שלהן.
הנחיה ציון החיזוי תגובה "כתיבת שיר על אדמוניות" 0.13 המודל יכול להסתמך על הידע שלו והתשובה לא צריכה להסתמך על נתונים. "Suggest a toy for a 2yo child" 0.36 המודל יכול להסתמך על הידע שלו והתשובה לא צריכה להסתמך על נתונים. "יש לך מתכון לגואקמולה בהשראת המטבח האסייתי?" 0.55 חיפוש Google יכול לספק תשובה מבוססת, אבל אין צורך בכך באופן מוחלט. יכול להיות שהידע של המודל יספיק. "מה זה Agent Builder? איך מתבצע החיוב על יצירת קשר ראשוני ב-Agent Builder?" 0.72 נדרשת תשובה מבוססת מחיפוש Google. "Who won the latest F1 grand prix?" 0.97 נדרשת תשובה מבוססת מחיפוש Google. סף: בבקשת ה-API, אפשר לציין הגדרה של אחזור דינמי עם סף. הסף הוא ערך נקודה צפה (floating-point) בטווח [0,1], והברירת המחדל שלו היא 0.7. אם ערך הסף הוא אפס, התגובה תמיד תתבסס על חיפוש Google. לכל שאר ערכי הסף, חל הכלל הבא:
- אם ציון התחזית גבוה מהסף או שווה לו, התשובה מבוססת על חיפוש Google. אם הסף נמוך יותר, המשמעות היא שליותר הנחיות יש תשובות שנוצרו באמצעות 'הכנה לשימוש' בחיפוש Google.
- אם ציון התחזית נמוך מהסף, יכול להיות שהמודל עדיין ייצור את התשובה, אבל היא לא תתבסס על חיפוש Google.
במאמר דוגמה לקוד תוכלו לקרוא איך מגדירים את סף אחזור הנתונים הדינמי באמצעות SDK או באמצעות API ל-REST.
אם אתם משתמשים ב-AI Studio, תוכלו להגדיר את סף אחזור הנתונים הדינמי בלחיצה על Edit grounding.
כדי למצוא ערך סף מתאים שמתאים לצרכים העסקיים שלכם, תוכלו ליצור קבוצה מייצגת של שאילתות שאתם מצפים להיתקל בהן. לאחר מכן תוכלו למיין את השאילתות לפי ציון התחזית בתגובה ולבחור ערך סף מתאים לתרחיש לדוגמה.
תגובה מבוססת
אם ההנחיה תעבור בהצלחה לחיפוש Google, התגובה תכלול את הערך groundingMetadata
. תגובה מבוססת עשויה להיראות כך (חלקים מהתגובה הושמטו כדי לקצר את הטקסט):
{
"candidates": [
{
"content": {
"parts": [
{
"text": "Carlos Alcaraz won the Gentlemen's Singles title at the 2024 Wimbledon Championships. He defeated Novak Djokovic in the final, winning his second consecutive Wimbledon title and fourth Grand Slam title overall. \n"
}
],
"role": "model"
},
...
"groundingMetadata": {
"searchEntryPoint": {
"renderedContent": "\u003cstyle\u003e\n.container {\n align-items: center;\n border-radius: 8px;\n display: flex;\n font-family: Google Sans, Roboto, sans-serif;\n font-size: 14px;\n line-height: 20px;\n padding: 8px 12px;\n}\n.chip {\n display: inline-block;\n border: solid 1px;\n border-radius: 16px;\n min-width: 14px;\n padding: 5px 16px;\n text-align: center;\n user-select: none;\n margin: 0 8px;\n -webkit-tap-highlight-color: transparent;\n}\n.carousel {\n overflow: auto;\n scrollbar-width: none;\n white-space: nowrap;\n margin-right: -12px;\n}\n.headline {\n display: flex;\n margin-right: 4px;\n}\n.gradient-container {\n position: relative;\n}\n.gradient {\n position: absolute;\n transform: translate(3px, -9px);\n height: 36px;\n width: 9px;\n}\n@media (prefers-color-scheme: light) {\n .container {\n background-color: #fafafa;\n box-shadow: 0 0 0 1px #0000000f;\n }\n .headline-label {\n color: #1f1f1f;\n }\n .chip {\n background-color: #ffffff;\n border-color: #d2d2d2;\n color: #5e5e5e;\n text-decoration: none;\n }\n .chip:hover {\n background-color: #f2f2f2;\n }\n .chip:focus {\n background-color: #f2f2f2;\n }\n .chip:active {\n background-color: #d8d8d8;\n border-color: #b6b6b6;\n }\n .logo-dark {\n display: none;\n }\n .gradient {\n background: linear-gradient(90deg, #fafafa 15%, #fafafa00 100%);\n }\n}\n@media (prefers-color-scheme: dark) {\n .container {\n background-color: #1f1f1f;\n box-shadow: 0 0 0 1px #ffffff26;\n }\n .headline-label {\n color: #fff;\n }\n .chip {\n background-color: #2c2c2c;\n border-color: #3c4043;\n color: #fff;\n text-decoration: none;\n }\n .chip:hover {\n background-color: #353536;\n }\n .chip:focus {\n background-color: #353536;\n }\n .chip:active {\n background-color: #464849;\n border-color: #53575b;\n }\n .logo-light {\n display: none;\n }\n .gradient {\n background: linear-gradient(90deg, #1f1f1f 15%, #1f1f1f00 100%);\n }\n}\n\u003c/style\u003e\n\u003cdiv class=\"container\"\u003e\n \u003cdiv class=\"headline\"\u003e\n \u003csvg class=\"logo-light\" width=\"18\" height=\"18\" viewBox=\"9 9 35 35\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M42.8622 27.0064C42.8622 25.7839 42.7525 24.6084 42.5487 23.4799H26.3109V30.1568H35.5897C35.1821 32.3041 33.9596 34.1222 32.1258 35.3448V39.6864H37.7213C40.9814 36.677 42.8622 32.2571 42.8622 27.0064V27.0064Z\" fill=\"#4285F4\"/\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M26.3109 43.8555C30.9659 43.8555 34.8687 42.3195 37.7213 39.6863L32.1258 35.3447C30.5898 36.3792 28.6306 37.0061 26.3109 37.0061C21.8282 37.0061 18.0195 33.9811 16.6559 29.906H10.9194V34.3573C13.7563 39.9841 19.5712 43.8555 26.3109 43.8555V43.8555Z\" fill=\"#34A853\"/\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.6559 29.8904C16.3111 28.8559 16.1074 27.7588 16.1074 26.6146C16.1074 25.4704 16.3111 24.3733 16.6559 23.3388V18.8875H10.9194C9.74388 21.2072 9.06992 23.8247 9.06992 26.6146C9.06992 29.4045 9.74388 32.022 10.9194 34.3417L15.3864 30.8621L16.6559 29.8904V29.8904Z\" fill=\"#FBBC05\"/\u003e\n \u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M26.3109 16.2386C28.85 16.2386 31.107 17.1164 32.9095 18.8091L37.8466 13.8719C34.853 11.082 30.9659 9.3736 26.3109 9.3736C19.5712 9.3736 13.7563 13.245 10.9194 18.8875L16.6559 23.3388C18.0195 19.2636 21.8282 16.2386 26.3109 16.2386V16.2386Z\" fill=\"#EA4335\"/\u003e\n \u003c/svg\u003e\n \u003csvg class=\"logo-dark\" width=\"18\" height=\"18\" viewBox=\"0 0 48 48\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n \u003ccircle cx=\"24\" cy=\"23\" fill=\"#FFF\" r=\"22\"/\u003e\n \u003cpath d=\"M33.76 34.26c2.75-2.56 4.49-6.37 4.49-11.26 0-.89-.08-1.84-.29-3H24.01v5.99h8.03c-.4 2.02-1.5 3.56-3.07 4.56v.75l3.91 2.97h.88z\" fill=\"#4285F4\"/\u003e\n \u003cpath d=\"M15.58 25.77A8.845 8.845 0 0 0 24 31.86c1.92 0 3.62-.46 4.97-1.31l4.79 3.71C31.14 36.7 27.65 38 24 38c-5.93 0-11.01-3.4-13.45-8.36l.17-1.01 4.06-2.85h.8z\" fill=\"#34A853\"/\u003e\n \u003cpath d=\"M15.59 20.21a8.864 8.864 0 0 0 0 5.58l-5.03 3.86c-.98-2-1.53-4.25-1.53-6.64 0-2.39.55-4.64 1.53-6.64l1-.22 3.81 2.98.22 1.08z\" fill=\"#FBBC05\"/\u003e\n \u003cpath d=\"M24 14.14c2.11 0 4.02.75 5.52 1.98l4.36-4.36C31.22 9.43 27.81 8 24 8c-5.93 0-11.01 3.4-13.45 8.36l5.03 3.85A8.86 8.86 0 0 1 24 14.14z\" fill=\"#EA4335\"/\u003e\n \u003c/svg\u003e\n \u003cdiv class=\"gradient-container\"\u003e\u003cdiv class=\"gradient\"\u003e\u003c/div\u003e\u003c/div\u003e\n \u003c/div\u003e\n \u003cdiv class=\"carousel\"\u003e\n \u003ca class=\"chip\" href=\"https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4x8Epe-gzpwRBvp7o3RZh2m1ygq1EHktn0OWCtvTXjad4bb1zSuqfJd6OEuZZ9_SXZ_P2SvCpJM7NaFfQfiZs6064MeqXego0vSbV9LlAZoxTdbxWK1hFeqTG6kA13YJf7Fbu1SqBYM0cFM4zo0G_sD9NKYWcOCQMvDLDEJFhjrC9DM_QobBIAMq-gWN95G5tvt6_z6EuPN8QY=\"\u003ewho won wimbledon 2024\u003c/a\u003e\n \u003c/div\u003e\n\u003c/div\u003e\n"
},
"groundingChunks": [
{
"web": {
"uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4whET1ta3sDETZvcicd8FeNe4z0VuduVsxrT677KQRp2rYghXI0VpfYbIMVI3THcTuMwggRCbFXS_wVvW0UmGzMe9h2fyrkvsnQPJyikJasNIbjJLPX0StM4Bd694-ZVle56MmRA4YiUvwSqad1w6O2opmWnw==",
"title": "wikipedia.org"
}
},
{
"web": {
"uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4wR1M-9-yMPUr_KdHlnoAmQ8ZX90DtQ_vDYTjtP2oR5RH4tRP04uqKPLmesvo64BBkPeYLC2EpVDxv9ngO3S1fs2xh-e78fY4m0GAtgNlahUkm_tBm_sih5kFPc7ill9u2uwesNGUkwrQlmP2mfWNU5lMMr23HGktr6t0sV0QYlzQq7odVoBxYWlQ_sqWFH",
"title": "wikipedia.org"
}
},
{
"web": {
"uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4wsDmROzbP-tmt8GdwCW_pqISTZ4IRbBuoaMyaHfcQg8WW-yKRQQvMDTPAuLxJh-8_U8_iw_6JKFbQ8M9oVYtaFdWFK4gOtL4RrC9Jyqc5BNpuxp6uLEKgL5-9TggtNvO97PyCfziDFXPsxylwI1HcfQdrz3Jy7ZdOL4XM-S5rC0lF2S3VWW0IEAEtS7WX861meBYVjIuuF_mIr3spYPqWLhbAY2Spj-4_ba8DjRvmevIFUhRuESTKvBfmpxNSM",
"title": "cbssports.com"
}
},
{
"web": {
"uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4yzjLkorHiUKjhOPkWaZ9b4cO-cLG-02vlEl6xTBjMUjyhK04qSIclAa7heR41JQ6AAVXmNdS3WDrLOV4Wli-iezyzW8QPQ4vgnmO_egdsuxhcGk3-Fp8-yfqNLvgXFwY5mPo6QRhvplOFv0_x9mAcka18QuAXtj0SPvJfZhUEgYLCtCrucDS5XFc5HmRBcG1tqFdKSE1ihnp8KLdaWMhrUQI21hHS9",
"title": "jagranjosh.com"
}
},
{
"web": {
"uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AWhgh4y9L4oeNGWCatFz63b9PpP3ys-Wi_zwnkUT5ji9lY7gPUJQcsmmE87q88GSdZqzcx5nZG9usot5FYk2yK-FAGvCRE6JsUQJB_W11_kJU2HVV1BTPiZ4SAgm8XDFIxpCZXnXmEx5HUfRqQm_zav7CvS2qjA2x3__qLME6Jy7R5oza1C5_aqjQu422le9CaigThS5bvJoMo-ZGcXdBUCj2CqoXNVjMA==",
"title": "apnews.com"
}
}
],
"groundingSupports": [
{
"segment": {
"endIndex": 85,
"text": "Carlos Alcaraz won the Gentlemen's Singles title at the 2024 Wimbledon Championships."
},
"groundingChunkIndices": [
0,
1,
2,
3
],
"confidenceScores": [
0.97380733,
0.97380733,
0.97380733,
0.97380733
]
},
{
"segment": {
"startIndex": 86,
"endIndex": 210,
"text": "He defeated Novak Djokovic in the final, winning his second consecutive Wimbledon title and fourth Grand Slam title overall."
},
"groundingChunkIndices": [
1,
0,
4
],
"confidenceScores": [
0.96145374,
0.96145374,
0.96145374
]
}
],
"webSearchQueries": [
"who won wimbledon 2024"
]
}
}
],
...
}
אם התגובה לא כוללת את groundingMetadata
, סימן שהתגובה לא אומתה. יכולות להיות לכך כמה סיבות, כולל רלוונטיות נמוכה של המקור או מידע חלקי בתשובה של המודל.
כאשר נוצרת תוצאה מבוססת, המטא-נתונים מכילים מזהי URI שמפנים אוטומטית למוציאים לאור של התוכן ששימש ליצירת התוצאה המבוססת.
מזהי ה-URI האלה מכילים את תת-הדומיין vertexaisearch
, כמו בדוגמה המקוצרת הזו:
https://vertexaisearch.cloud.google.com/grounding-api-redirect/...
. המטא-נתונים מכילים גם את הדומיינים של בעלי התוכן הדיגיטלי. אפשר לגשת למזהי ה-URI שסופקו למשך 30 יום אחרי יצירת התוצאה המבוססת.
השדה renderedContent
בתוך searchEntryPoint
הוא הקוד שסופק להטמעת ההצעות של חיפוש Google. למידע נוסף, ראו שימוש בהצעות לחיפוש ב-Google.