In Ihrer Web-App können Sie Antworten auf Ihre Fragen in Form von Streaming-Antworten erhalten. In diesem Dokument erfahren Sie, wie Sie mit der REST API Antworten erhalten. Wenn Sie die Gemini Enterprise Web-App verwenden möchten, lesen Sie den Hilfeartikel Mit dem Assistenten chatten.
StreamAssist-Übersicht
StreamAssist bietet eine leistungsstarke, interaktive Möglichkeit, Nutzeranfragen zu bearbeiten. Es funktioniert im Streaming-Modus und ermöglicht so Echtzeit-Interaktionen.
Zu den wichtigsten Funktionen der API gehören:
Kontext der Unterhaltung beibehalten: Es verwendet Sitzungen, um den Kontext der Unterhaltung beizubehalten, damit Folgefragen im Rahmen früherer Interaktionen verstanden werden.
Bereitgestellte Dateien einbeziehen: Die angehängten Dateien werden als Kontext für fundiertere und relevantere Antworten verwendet.
Nahtlose Integration: Er lässt sich in verschiedene KI-Agenten und Tools einbinden, um eine Vielzahl von Nutzeranfragen zu erfüllen.
Hinweis
Die müssen Folgendes haben:
Die Discovery Engine API ist für Ihr Google Cloudaktiviert. Sie können sie in derGoogle Cloud Console auf der Seite Discovery Engine API aktivieren.
Eine Discovery Engine-Rolle, der die Berechtigung
discoveryengine.assistants.assistzugewiesen ist.Eine vorhandene Gemini Enterprise-App. Informationen zum Erstellen einer App finden Sie unter App erstellen.
Suchergebnisse abrufen
Mit der Methode streamAssist können Sie Gemini Enterprise abfragen und Antworten erhalten. Der folgende curl-Befehl listet die Pflichtfelder auf.
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"
}
}'
Ersetzen Sie Folgendes:
- ENDPOINT_LOCATION: die Multiregion für Ihre API-Anfrage. Geben Sie einen der folgenden Werte an:
usfür die Multiregion „USA“eufür die Multiregion „EU“globalfür den Standort „Global“
global, us oder euWeitere Informationen zu den Feldern und den zurückgegebenen Daten finden Sie unter Antworttext.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Python in der Gemini Enterprise-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Gemini Enterprise Python API.
Richten Sie zur Authentifizierung bei Gemini Enterprise Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
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)
Suchergebnisse mit derselben Sitzung abrufen
Wenn Sie eine Unterhaltung fortsetzen und Antworten von Gemini Enterprise in einer vorhandenen Sitzung erhalten möchten, verwenden Sie die Methode streamAssist. Das folgende Codebeispiel zeigt die Pflichtfelder:
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"
}
}'
Ersetzen Sie Folgendes:
- ENDPOINT_LOCATION: die Multiregion für Ihre API-Anfrage. Geben Sie einen der folgenden Werte an:
usfür die Multiregion „USA“eufür die Multiregion „EU“globalfür den Standort „Global“
global, us oder euWeitere Informationen zu den Feldern und den zurückgegebenen Daten finden Sie unter Antworttext.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Python in der Gemini Enterprise-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Gemini Enterprise Python API.
Richten Sie zur Authentifizierung bei Gemini Enterprise Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
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)
Datei hochladen und Suchergebnisse abrufen (Vorabversion)
Wenn Sie dem Assistenten mehr Kontext geben möchten, laden Sie eine Datei in eine Sitzung hoch und fragen Sie dann den Inhalt ab. Gehen Sie so vor:
Laden Sie eine Datei mit der Methode
addContextFilein eine Sitzung hoch.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" }'Ersetzen Sie Folgendes:
- ENDPOINT_LOCATION: die Multiregion für Ihre API-Anfrage. Geben Sie einen der folgenden Werte an:
usfür die Multiregion „USA“eufür die Multiregion „EU“globalfür den Standort „Global“
- PROJECT_ID: die ID Ihres Projekts in Google Cloud .
- LOCATION: Der multiregionale Standort Ihres Datenspeichers:
global,usodereu.- APP_ID: die eindeutige Kennung für die Gemini Enterprise-App.
- SESSION_ID: die ID einer Sitzung aus einer vorherigen Unterhaltung oder Anfrage.
- FILE_NAME: Der Name der Datei.
- MIME_TYPE: Der MIME-Typ der Datei, z. B.
text/plainoderapplication/pdf. Weitere Informationen zu den verschiedenen Medientypen finden Sie unter Medientypen.- BASE64_ENCODED_FILE: die base64-codierte Darstellung der Datei.
Weitere Informationen zu den Feldern und den zurückgegebenen Daten finden Sie unter Antworttext.
Verwenden Sie dieselbe Sitzung, um mit der Methode
streamAssisteine Frage zu der hochgeladenen Datei zu stellen.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" } }'Ersetzen Sie Folgendes:
- ENDPOINT_LOCATION: die Multiregion für Ihre API-Anfrage. Geben Sie einen der folgenden Werte an:
usfür die Multiregion „USA“eufür die Multiregion „EU“globalfür den Standort „Global“
- PROJECT_ID: die ID Ihres Projekts in Google Cloud .
- APP_ID: die eindeutige Kennung für die Gemini Enterprise-App.
- LOCATION: Der multiregionale Standort Ihres Datenspeichers:
global,usodereu.- QUERY_TEXT_3: der Text der Suchanfrage.
- SESSION_ID: die ID einer Sitzung aus einer vorherigen Unterhaltung oder Anfrage.
- FILE_ID: die ID der Datei, die Sie in den Assistenten hochgeladen haben.
Weitere Informationen zu den Feldern und den zurückgegebenen Werten finden Sie unter Antworttext.