קבלת תוצאות חיפוש מ-StreamAssist

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

StreamAssist סקירה כללית

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

היכולות העיקריות של ה-API כוללות:

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

  • שילוב קבצים שסופקו: הוא כולל את הקבצים המצורפים כהקשר כדי לתת תשובות רלוונטיות ומבוססות יותר.

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

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

ודאו שיש לכם:

קבלת תוצאות חיפוש

אתם יכולים להשתמש ב-streamAssist כדי לשלוח שאילתות ולקבל תשובות מ-Gemini Enterprise. פקודת ה-curl הבאה מציגה את שדות החובה.

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
  -d '
{
  "query": {
    "text": "QUERY_TEXT_1"
  }
}'

מחליפים את מה שכתוב בשדות הבאים:

  • ‫ENDPOINT_LOCATION: האזור במספר אזורים של בקשת ה-API. מציינים אחד מהערכים הבאים:
    • ‫us לאזור הגיאוגרפי שכולל מספר אזורים בארה"ב
    • ‫eu למספר אזורים באיחוד האירופי
    • ‫global למיקום הגלובלי
    מידע נוסף זמין במאמר הגדרת מספר אזורים למאגר הנתונים.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫APP_ID: המזהה הייחודי של אפליקציית Gemini Enterprise.
  • ‫LOCATION: האזור הגיאוגרפי של מאגר הנתונים: global,‏ us או eu
  • ‫QUERY_TEXT_1: הטקסט של שאילתת החיפוש.

מידע נוסף על השדות ועל מה שמוחזר מופיע במאמר גוף התגובה.

Python

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במדריך למתחילים של Gemini Enterprise באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Gemini Enterprise Python API.

כדי לבצע אימות ב-Gemini Enterprise, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine_v1 as discoveryengine

# TODO(developer): Update these variables before running the sample.
project_id = "YOUR_PROJECT_ID"
location = "YOUR_LOCATION"
engine_id = "YOUR_APP_ID"
query = "What is Gemini Enterprise?"


def stream_assist_sample(
    project_id: str,
    location: str,
    engine_id: str,
    query: str,
):
    # For more information, refer to:
    # https://docs.cloud.google.com/gemini/enterprise/docs/locations#specify_a_multi-region_for_your_data_store
    client_options = (
        ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
        if location != "global"
        else None
    )

    client = discoveryengine.AssistantServiceClient(client_options=client_options)

    request = discoveryengine.StreamAssistRequest(
        name=client.assistant_path(
            project=project_id,
            location=location,
            collection="default_collection",
            engine=engine_id,
            assistant="default_assistant",
        ),
        query=discoveryengine.Query(text=query),
    )

    # Make the request
    stream = client.stream_assist(request=request)

    # Handle the response
    for response in stream:
        print(response)

קבלת תוצאות חיפוש באותו סשן

כדי להמשיך שיחה ולקבל תשובות מ-Gemini Enterprise במסגרת סשן קיים, משתמשים בשיטה streamAssist. בדוגמת הקוד הבאה מוצגים שדות החובה:

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
  -d '
{
  "session": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/sessions/SESSION_ID",
  "query": {
    "text": "QUERY_TEXT_2"
  }
}'

מחליפים את מה שכתוב בשדות הבאים:

  • ‫ENDPOINT_LOCATION: האזור במספר אזורים של בקשת ה-API. מציינים אחד מהערכים הבאים:
    • ‫us לאזור הגיאוגרפי שכולל מספר אזורים בארה"ב
    • ‫eu למספר אזורים באיחוד האירופי
    • ‫global למיקום הגלובלי
    מידע נוסף זמין במאמר בנושא הגדרת מספר אזורים למאגר הנתונים.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫APP_ID: המזהה הייחודי של אפליקציית Gemini Enterprise.
  • ‫LOCATION: האזור הגיאוגרפי של מאגר הנתונים: global,‏ us או eu
  • ‫QUERY_TEXT_2: הטקסט של שאילתת החיפוש.
  • ‫SESSION_ID: המזהה של סשן משיחה או משאילתה קודמת.

למידע נוסף על השדות ועל מה שמוחזר, ראו גוף התגובה.

Python

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במדריך למתחילים של Gemini Enterprise באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Gemini Enterprise Python API.

כדי לבצע אימות ב-Gemini Enterprise, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.

from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine_v1 as discoveryengine

# TODO(developer): Update these variables before running the sample.
project_id = "YOUR_PROJECT_ID"
location = "YOUR_LOCATION"
engine_id = "YOUR_APP_ID"
session = "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/sessions/SESSION_ID" # From previous session
query = "What is Gemini Enterprise?"


def stream_assist_session_sample(
    project_id: str,
    location: str,
    engine_id: str,
    session: str,
    query: str,
):
    # For more information, refer to:
    # https://docs.cloud.google.com/gemini/enterprise/docs/locations#specify_a_multi-region_for_your_data_store
    client_options = (
        ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
        if location != "global"
        else None
    )

    client = discoveryengine.AssistantServiceClient(client_options=client_options)

    request = discoveryengine.StreamAssistRequest(
        name=client.assistant_path(
            project=project_id,
            location=location,
            collection="default_collection",
            engine=engine_id,
            assistant="default_assistant",
        ),
        session=session,
        query=discoveryengine.Query(text=query),
    )

    # Make the request
    stream = client.stream_assist(request=request)

    # Handle the response
    for response in stream:
        print(response.answer)
        # Get Session ID
        print(response.session_info.session)

העלאת קובץ וקבלת תוצאות חיפוש (גרסת טרום-השקה (Preview))

כדי לתת ל-Assistant יותר הקשר, אתם יכולים להעלות קובץ לסשן ואז לשאול שאלות לגבי התוכן שלו. איך לעשות את זה?

  1. מעלים קובץ לסשן באמצעות השיטה addContextFile.

    REST

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/sessions/SESSION_ID:addContextFile" \
      -d '
    {
      "fileName": "FILE_NAME",
      "mimeType": "MIME_TYPE",
      "fileContents": "BASE64_ENCODED_FILE"
    }'
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ENDPOINT_LOCATION: האזור במספר אזורים של בקשת ה-API. מציינים אחד מהערכים הבאים:
      • ‫us לאזור הגיאוגרפי שכולל מספר אזורים בארה"ב
      • ‫eu למספר אזורים באיחוד האירופי
      • ‫global למיקום הגלובלי
      מידע נוסף זמין במאמר בנושא הגדרת מספר אזורים למאגר הנתונים.
    • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • ‫LOCATION: האזור המרובה של מאגר הנתונים: ‫global,‏ us או eu
    • ‫APP_ID: המזהה הייחודי של אפליקציית Gemini Enterprise.
    • ‫SESSION_ID: המזהה של סשן משיחה או משאילתה קודמת.
    • ‫FILE_NAME: שם הקובץ.
    • ‫MIME_TYPE: סוג ה-MIME של הקובץ, לדוגמה text/plain או application/pdf. למידע נוסף על סוגי המדיה השונים, קראו את המאמר סוגי מדיה.
    • ‫BASE64_ENCODED_FILE: ייצוג הקובץ בקידוד base64.

    למידע נוסף על השדות ועל מה שמוחזר, ראו גוף התגובה.

  2. משתמשים באותו סשן כדי לשאול שאלה לגבי הקובץ שהעליתם באמצעות השיטה streamAssist.

    REST

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
      -d '
    {
      "session": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/sessions/SESSION_ID",
      "fileIds": ["FILE_ID"],
      "query": {
        "text": "QUERY_TEXT_3"
      }
    }'
    
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ENDPOINT_LOCATION: האזור במספר אזורים של בקשת ה-API. מציינים אחד מהערכים הבאים:
      • ‫us לאזור הגיאוגרפי שכולל מספר אזורים בארה"ב
      • ‫eu למספר אזורים באיחוד האירופי
      • ‫global למיקום הגלובלי
      מידע נוסף זמין במאמר הגדרת מספר אזורים למאגר הנתונים.
    • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • ‫APP_ID: המזהה הייחודי של אפליקציית Gemini Enterprise.
    • ‫LOCATION: האזור של מאגר הנתונים: global,‏ us או eu
    • ‫QUERY_TEXT_3: הטקסט של שאילתת החיפוש.
    • ‫SESSION_ID: המזהה של סשן משיחה או משאילתה קודמת.
    • ‫FILE_ID: המזהה של הקובץ שהעליתם ל-Assistant.

    מידע נוסף על השדות ועל מה שמוחזר מופיע במאמר גוף התגובה.