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