עיגון בנתונים באמצעות חיפוש האינטרנט של Exa

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

‫Grounding עם חיפוש באינטרנט של Exa ב-Gemini Enterprise Agent Platform הוא מוצר נפרד (כפי שמוגדר Google Cloud בהסכם שלך) שמקשר בין מודלים של Gemini לבין נתונים ציבוריים באינטרנט שסופקו על ידי Exa Search API.

תרחישים לדוגמה

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

  • סוכנים כלליים וצ'אט בוטים: אחזור מידע עדכני כדי ליצור תשובות מהימנות יותר.
  • סוכני מחקר: עורכים מחקר מעמיק ב<a href="https://support.google.com/googlesearch/answer/10300182">רשת העמוקה (deep web)</a> במקורות רבים.
  • סוכני תכנות: משיכת קטעי הקוד, המסמכים וההפניות הטכניות העדכניים ביותר.
  • סוכנים קוליים: אחזור מהאינטרנט כדי לתמוך באינטראקציות קוליות בזמן אמת ובזמן אחזור קצר.
  • סוכנים ספציפיים לתחום: מאחזרים מידע עדכני וספציפי לדומיין, שמותאם לתחום ידע או לתעשייה מסוימים.
  • העשרת נתונים: הוספת הקשר ומטא-נתונים עדכניים מהאינטרנט לקבוצות נתונים פנימיות.
  • תהליכי עבודה אוטומטיים: איסוף תקופתי של חדשות, נתונים על אנשים, חברות או נתונים אחרים שמתעדכנים לעיתים קרובות, לשימוש בתהליכי עבודה פנימיים או בתהליכי ייצור.

דוגמה

מי ניצח בסופרבול 2026?

ללא Grounding עם עיגון
אני לא יכול לומר לך מי ניצח בסופרבול בשנת 2026 כי האירוע הזה עדיין לא התקיים. קבוצת סיאטל סיהוקס ניצחה בסופרבול ה-60 ב-8 בפברואר 2026, והביסה את ניו אינגלנד פטריוטס בתוצאה הסופית 29-13. מקורות: domain1.com, domain2.com, ...

מודלים נתמכים

בקטע הזה מפורטים המודלים שתומכים בביסוס באמצעות חיפוש באינטרנט של Exa.

לחצו כדי להרחיב את רשימת המודלים הנתמכים

לפני שמתחילים

כדי להשתמש ב-Grounding with Exa, אתם צריכים לקבל מפתח API מהאתר של Exa. מפתח ה-API הזה משמש בבקשה שלכם ל-Gemini.

הוספת מידע לתשובות של Gemini באמצעות Exa

אפשר לבקש מ-Gemini תשובות מעוגנות בנתונים באמצעות Google Gen AI SDK או API בארכיטקטורת REST. כדי לקבל את הביצועים הטובים ביותר, מומלץ להשתמש בהגדרות ברירת המחדל של פרמטרים אופציונליים, אלא אם אתם צריכים ערכים שונים מערכי ברירת המחדל.

לפני שמריצים את הדוגמאות, צריך להשלים את הדרישות המוקדמות, כולל קבלת מפתח Exa API.

Python

התקנה

pip install --upgrade google-genai

מידע נוסף זמין ב מאמרי העזרה של ה-SDK.

מגדירים משתני סביבה כדי להשתמש ב-Google Gen AI SDK עם Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

לפני שמריצים את הדוגמה, צריך להחליף את הערכים הבאים:

  • ‫MODEL_ID: המזהה של מודל נתמך שבו רוצים להשתמש, כמו gemini-2.5-flash.
  • ‫TEXT: פרומפט טקסטואלי לשליחה למודל.
  • ‫API_KEY: מפתח ה-API שלכם לחיפוש באינטרנט באמצעות Exa.
  • ‫SEARCH_TYPE: אופציונלי: סוג החיפוש ב-Exa שרוצים להריץ. הערכים הנתמכים הם fast ו-instant. ערך ברירת המחדל הוא fast, שמספק תוצאות מקיפות עם זמן אחזור קצר יותר ומתאים לתהליכי עבודה אינטראקטיביים ולחיפוש שגלוי למשתמשים. מומלץ להשתמש ב-instant במקרים שבהם נדרש זמן אחזור נמוך במיוחד, כמו בצ'אט, בנציגים קוליים ובהשלמה אוטומטית. המודל הזה נותן עדיפות למהירות על פני עומק החיפוש, כדי לצמצם את זמן התגובה.
  • ‫EXCLUDE_DOMAINS: אופציונלי: רשימת דומיינים שיוחרגו מתוצאות החיפוש. אם מציינים דומיינים, לא יוחזרו תוצאות מהדומיינים האלה. כדי להחריג יותר מדומיין אחד, מוסיפים כל דומיין כמחרוזת נפרדת עם מרכאות ברשימה (לדוגמה, ["example.com", "example.net"]). אפשר לציין עד 1,200 דומיינים.
  • ‫INCLUDE_DOMAINS: אופציונלי: רשימת הדומיינים שייכללו בחיפוש. אם מציינים דומיינים, התוצאות יגיעו רק מהם. כדי לכלול יותר מדומיין אחד, צריך להוסיף כל דומיין כמחרוזת נפרדת במירכאות ברשימה (לדוגמה, ["example.com", "example.net"]). אפשר לציין עד 1,200 דומיינים.
  • ‫MAX_CHARACTERS: אופציונלי: מספר התווים המקסימלי שיוחזר עבור נקודות מרכזיות. הגדרת האורך הכולל של הטקסט המודגש שמוחזר לכל כתובת URL.
  • ‫NUM_RESULTS: אופציונלי: המספר המקסימלי של תוצאות חיפוש שישמשו לביסוס. אם לא מציינים ערך, ברירת המחדל היא 5.

from google import genai
from google.genai import types

client = genai.Client()

response = client.models.generate_content(
    model="MODEL_ID",
    contents="TEXT",
    config=types.GenerateContentConfig(
        tools=[
            types.Tool(
                exa_ai_search=types.ToolExaAiSearch(
                    # Required. Your API key for Exa web search.
                    api_key="API_KEY",
                    # Optional. Customize the search. Click a placeholder to
                    # enter a value, or remove the line to accept the default.
                    custom_configs={
                        "type": "SEARCH_TYPE",
                        "excludeDomains": ["EXCLUDE_DOMAINS"],
                        "includeDomains": ["INCLUDE_DOMAINS"],
                        "contents": {
                            "highlights": {
                                "maxCharacters": MAX_CHARACTERS,
                            },
                        },
                        "numResults": NUM_RESULTS,
                    },
                )
            )
        ],
    ),
)

print(response.text)

# The grounding metadata contains the web sources used to ground the response.
print(response.candidates[0].grounding_metadata.grounding_chunks)

Java

איך מתקינים או מעדכנים את Java

מידע נוסף זמין ב מאמרי העזרה של ה-SDK.

מגדירים משתני סביבה כדי להשתמש ב-Google Gen AI SDK עם Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

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

  • ‫MODEL_ID: המזהה של מודל נתמך לשימוש, כמו gemini-2.5-flash.
  • ‫TEXT: פרומפט טקסטואלי לשליחה למודל.
  • ‫API_KEY: מפתח ה-API שלכם לחיפוש באינטרנט באמצעות Exa.
  • ‫SEARCH_TYPE: אופציונלי: סוג החיפוש ב-Exa שרוצים להריץ. הערכים הנתמכים הם fast ו-instant. ערך ברירת המחדל הוא fast, שמספק תוצאות מקיפות עם זמן אחזור קצר יותר ומתאים לתהליכי עבודה אינטראקטיביים ולחיפוש שגלוי למשתמשים. מומלץ להשתמש ב-instant במקרים שבהם נדרש זמן אחזור נמוך במיוחד, כמו בצ'אט, בנציגים קוליים ובהשלמה אוטומטית. המודל הזה נותן עדיפות למהירות על פני עומק החיפוש, כדי לצמצם את זמן התגובה.
  • ‫EXCLUDE_DOMAINS: אופציונלי: רשימת דומיינים שיוחרגו מתוצאות החיפוש. אם מציינים דומיינים, לא יוחזרו תוצאות מהדומיינים האלה. כדי להחריג יותר מדומיין אחד, מוסיפים כל דומיין כמחרוזת נפרדת עם מרכאות ברשימה (לדוגמה, ["example.com", "example.net"]). אפשר לציין עד 1,200 דומיינים.
  • ‫INCLUDE_DOMAINS: אופציונלי: רשימת הדומיינים שייכללו בחיפוש. אם מציינים דומיינים, התוצאות יגיעו רק מהם. כדי לכלול יותר מדומיין אחד, צריך להוסיף כל דומיין כמחרוזת נפרדת במירכאות ברשימה (לדוגמה, ["example.com", "example.net"]). אפשר לציין עד 1,200 דומיינים.
  • ‫MAX_CHARACTERS: אופציונלי: מספר התווים המקסימלי שיוחזר עבור נקודות מרכזיות. הגדרת האורך הכולל של הטקסט המודגש שמוחזר לכל כתובת URL.
  • ‫NUM_RESULTS: אופציונלי: המספר המקסימלי של תוצאות החיפוש שישמשו כבסיס. אם לא מציינים ערך, ברירת המחדל היא 5.

import com.google.genai.Client;
import com.google.genai.types.GenerateContentConfig;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.Tool;
import com.google.genai.types.ToolExaAiSearch;
import java.util.List;
import java.util.Map;

public class ExaGroundingSample {
  public static void main(String[] args) {
    try (Client client = Client.builder().build()) {

      GenerateContentConfig config =
          GenerateContentConfig.builder()
              .tools(
                  Tool.builder()
                      .exaAiSearch(
                          ToolExaAiSearch.builder()
                              // Required. Your API key for Exa web search.
                              .apiKey("API_KEY")
                              // Optional. Customize the search. Click a
                              // placeholder to enter a value, or remove the
                              // entry to accept the default.
                              .customConfigs(
                                  Map.of(
                                      "type", "SEARCH_TYPE",
                                      "excludeDomains",
                                      List.of("EXCLUDE_DOMAINS"),
                                      "includeDomains",
                                      List.of("INCLUDE_DOMAINS"),
                                      "contents",
                                      Map.of(
                                          "highlights",
                                          Map.of(
                                              "maxCharacters",
                                              MAX_CHARACTERS)),
                                      "numResults", NUM_RESULTS))
                              .build())
                      .build())
              .build();

      GenerateContentResponse response =
          client.models.generateContent(
              "MODEL_ID", "TEXT", config);

      System.out.println(response.text());

      // The grounding metadata contains the web sources used to ground the response.
      System.out.println(
          response.candidates().get().get(0).groundingMetadata().get().groundingChunks().get());
    }
  }
}

Node.js

התקנה

npm install @google/genai

מידע נוסף זמין ב מאמרי העזרה של ה-SDK.

מגדירים משתני סביבה כדי להשתמש ב-Google Gen AI SDK עם Vertex AI:

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=global
export GOOGLE_GENAI_USE_ENTERPRISE=True

לפני שמריצים את הדוגמה, צריך להחליף את הערכים הבאים:

  • ‫MODEL_ID: המזהה של מודל נתמך שבו רוצים להשתמש, כמו gemini-2.5-flash.
  • ‫TEXT: פרומפט טקסטואלי לשליחה למודל.
  • ‫API_KEY: מפתח ה-API שלכם לחיפוש באינטרנט באמצעות Exa.
  • ‫SEARCH_TYPE: אופציונלי: סוג החיפוש ב-Exa שרוצים להריץ. הערכים הנתמכים הם fast ו-instant. ערך ברירת המחדל הוא fast, שמספק תוצאות מקיפות עם זמן אחזור קצר יותר ומתאים לתהליכי עבודה אינטראקטיביים ולחיפוש שגלוי למשתמשים. מומלץ להשתמש ב-instant במקרים שבהם נדרש זמן אחזור נמוך במיוחד, כמו בצ'אט, בנציגים קוליים ובהשלמה אוטומטית. המודל הזה נותן עדיפות למהירות על פני עומק החיפוש, כדי לצמצם את זמן התגובה.
  • ‫EXCLUDE_DOMAINS: אופציונלי: רשימת דומיינים שיוחרגו מתוצאות החיפוש. אם מציינים דומיינים, לא יוחזרו תוצאות מהדומיינים האלה. כדי להחריג יותר מדומיין אחד, מוסיפים כל דומיין כמחרוזת נפרדת עם מרכאות ברשימה (לדוגמה, ["example.com", "example.net"]). אפשר לציין עד 1,200 דומיינים.
  • ‫INCLUDE_DOMAINS: אופציונלי: רשימת הדומיינים שייכללו בחיפוש. אם מציינים דומיינים, התוצאות יגיעו רק מהם. כדי לכלול יותר מדומיין אחד, צריך להוסיף כל דומיין כמחרוזת נפרדת במירכאות ברשימה (לדוגמה, ["example.com", "example.net"]). אפשר לציין עד 1,200 דומיינים.
  • ‫MAX_CHARACTERS: אופציונלי: מספר התווים המקסימלי שיוחזר עבור נקודות מרכזיות. הגדרת האורך הכולל של הטקסט המודגש שמוחזר לכל כתובת URL.
  • ‫NUM_RESULTS: אופציונלי: המספר המקסימלי של תוצאות החיפוש שישמשו כבסיס. אם לא מציינים ערך, ברירת המחדל היא 5.

import {GoogleGenAI} from '@google/genai';

const ai = new GoogleGenAI({});

const response = await ai.models.generateContent({
  model: 'MODEL_ID',
  contents: 'TEXT',
  config: {
    tools: [
      {
        exaAiSearch: {
          // Required. Your API key for Exa web search.
          apiKey: 'API_KEY',
          // Optional. Customize the search. Click a placeholder to enter a
          // value, or remove the line to accept the default.
          customConfigs: {
            type: 'SEARCH_TYPE',
            excludeDomains: ['EXCLUDE_DOMAINS'],
            includeDomains: ['INCLUDE_DOMAINS'],
            contents: {
              highlights: {
                maxCharacters: MAX_CHARACTERS,
              },
            },
            numResults: NUM_RESULTS,
          },
        },
      },
    ],
  },
});

console.log(response.text);

// The grounding metadata contains the web sources used to ground the response.
console.log(response.candidates[0].groundingMetadata.groundingChunks);

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫LOCATION: האזור שבו הבקשה תעובד. כדי להשתמש בנקודת הקצה הגלובלית, צריך להחריג את המיקום משם נקודת הקצה ולהגדיר את מיקום המשאב כ-`global`.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫MODEL_ID: המזהה של המודל שבו רוצים להשתמש.
  • TEXT: פרומפט טקסטואלי לשליחה למודל.
  • ‫API_KEY: מפתח ה-API שלכם לחיפוש באינטרנט באמצעות Exa.
  • ‫SEARCH_TYPE: אופציונלי: סוג החיפוש ב-Exa שרוצים להריץ. הערכים הנתמכים הם fast ו-instant. ערך ברירת המחדל הוא fast, שמספק תוצאות מקיפות עם זמן אחזור קצר יותר ומתאים לחיפוש שגלוי למשתמשים ולתהליכי עבודה אינטראקטיביים. מומלץ להשתמש ב-instant במקרים הבאים: כשנדרש זמן אחזור נמוך במיוחד, כמו בצ'אט, בנציגים קוליים ובהשלמה אוטומטית. כדי למזער את זמן התגובה על ידי מתן עדיפות למהירות על פני עומק החיפוש.
  • ‫EXCLUDE_DOMAINS: אופציונלי: רשימת דומיינים להחרגה מתוצאות החיפוש. אם מציינים דומיינים, לא יוחזרו תוצאות מהדומיינים האלה. אפשר לציין עד 1,200 דומיינים.
  • ‫INCLUDE_DOMAINS (אופציונלי): רשימה של דומיינים שרוצים לכלול בחיפוש. אם מציינים דומיינים, התוצאות יגיעו רק מהם. אפשר לציין עד 1,200 דומיינים.
  • ‫MAX_CHARACTERS: אופציונלי: מספר התווים המקסימלי שיוחזר להדגשות. המאפיין הזה קובע את האורך הכולל של הטקסט המודגש שמוחזר לכל כתובת URL.
  • ‫NUM_RESULTS: אופציונלי: המספר המקסימלי של תוצאות החיפוש שישמשו כבסיס להנמקה. אם לא מציינים ערך, ברירת המחדל היא 5.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent

תוכן בקשת JSON:

{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "TEXT"
    }]
  }],
  "tools": [{
    "exaAiSearch": {
        "api_key": "API_KEY",
        "customConfigs": {
            "type": "SEARCH_TYPE",
            "excludeDomains": ["EXCLUDE_DOMAINS"],
            "includeDomains": ["INCLUDE_DOMAINS"],
            "contents": {
                "highlights": {
                    "maxCharacters": MAX_CHARACTERS
                }
            },
            "numResults": NUM_RESULTS
        }
    }
}],
  "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID"
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

מכסה

מכסת ברירת המחדל היא 200 הנחיות לדקה. אם אתם צריכים להגדיל את מגבלות הקצב, פנו אל support@exa.ai ואל צוות החשבון שלכם ב-Google, וציינו את תרחיש השימוש והדרישות שלכם.

חיוב

השימוש ב-Grounding with Exa כרוך בחיובים הבאים:

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