באתר, אתם יכולים לקבל תשובות לשאלות שלכם בצורה של תשובות בסטרימינג. במאמר הזה מוסבר איך להשתמש ב-API בארכיטקטורת REST כדי לקבל תשובות. אם אתם רוצים להשתמש ב-Gemini Enterprise בדפדפן, תוכלו לקרוא את המאמר בנושא שיחה עם העוזר הדיגיטלי.
StreamAssist סקירה כללית
StreamAssist מספק דרך יעילה ואינטראקטיבית לטפל בשאילתות של משתמשים. הוא פועל בסטרימינג, ומאפשר אינטראקציות דו-כיווניות בזמן אמת.
היכולות העיקריות של ה-API כוללות:
שמירה על ההקשר של השיחה: הסוכן משתמש בסשנים כדי לשמור על ההקשר של השיחה, וכך הוא יכול להבין שאילתות המשך במסגרת האינטראקציות הקודמות.
שילוב קבצים שסופקו: הוא כולל את הקבצים המצורפים כהקשר כדי לתת תשובות רלוונטיות ומבוססות יותר.
שילוב חלק: הוא משתלב עם מגוון נציגים וכלים כדי למלא מגוון רחב של בקשות משתמשים.
לפני שמתחילים
ודאו שיש לכם:
Discovery Engine API מופעל עבור Google Cloud. אפשר להפעיל אותו בדף Discovery Engine API במסוףGoogle Cloud .
תפקיד במנוע Discovery שהוקצתה לו ההרשאה
discoveryengine.assistants.assist.אפליקציית Gemini Enterprise קיימת. כדי ליצור אפליקציה, עיינו במאמר יצירת אפליקציה.
קבלת תוצאות חיפוש
אתם יכולים להשתמש ב-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 יותר הקשר, אתם יכולים להעלות קובץ לסשן ואז לשאול שאלות לגבי התוכן שלו. איך לעשות את זה?
מעלים קובץ לסשן באמצעות השיטה
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.
למידע נוסף על השדות ועל מה שמוחזר, ראו גוף התגובה.
- ENDPOINT_LOCATION: האזור במספר אזורים של בקשת ה-API. מציינים אחד מהערכים הבאים:
משתמשים באותו סשן כדי לשאול שאלה לגבי הקובץ שהעליתם באמצעות השיטה
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.
מידע נוסף על השדות ועל מה שמוחזר מופיע במאמר גוף התגובה.
- ENDPOINT_LOCATION: האזור במספר אזורים של בקשת ה-API. מציינים אחד מהערכים הבאים: