In Ihrer Web-App können Sie Antworten auf Ihre Fragen in Form von Streaming-Antworten erhalten. In diesem Dokument wird beschrieben, wie Sie die REST API verwenden, um Antworten zu erhalten. Wenn Sie die Gemini Enterprise-Web-App verwenden möchten, lesen Sie den Artikel Mit dem Assistenten chatten.
StreamAssist-Übersicht
StreamAssist bietet eine leistungsstarke, interaktive Möglichkeit, Nutzeranfragen zu bearbeiten. Der Dienst funktioniert im Streaming-Modus und ermöglicht so Interaktionen in Echtzeit.
Die wichtigsten Funktionen der API sind:
Gesprächskontext beibehalten:Der Gesprächskontext wird in Sitzungen beibehalten, sodass Folgefragen im Rahmen der vorherigen Interaktionen verstanden werden.
Bereitgestellte Dateien einbeziehen:Die angehängten Dateien werden als Kontext für fundiertere und relevantere Antworten verwendet.
Nahtlose Integration:Der Dienst lässt sich in verschiedene 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-Projekt aktiviert Google Cloud. Sie können sie in der Console auf der Seite Discovery Engine API aktivieren. Google Cloud
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 streamAssist
Methode können Sie Gemini Enterprise abfragen und Antworten erhalten. Im folgenden `curl`-Befehl sind die Pflichtfelder aufgeführt.
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 Werten finden Sie unter Antworttext.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Python Einrichtungsanleitung 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 in derselben Sitzung abrufen
Wenn Sie eine Unterhaltung fortsetzen und Antworten von Gemini Enterprise in einer
vorhandenen Sitzung erhalten möchten, verwenden Sie die
streamAssist Methode. Im folgenden Codebeispiel sind die Pflichtfelder aufgeführt:
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 Werten finden Sie unter Antworttext.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Python Einrichtungsanleitung 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 (Vorschau)
Wenn Sie dem Assistenten mehr Kontext geben möchten, laden Sie eine Datei in eine Sitzung hoch und fragen Sie dann ihren Inhalt ab. Gehen Sie so vor:
Laden Sie mit der
addContextFileMethode eine Datei in 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: die Multiregion 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 Abfrage.
- 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 Werten finden Sie unter Antworttext.
Verwenden Sie dieselbe Sitzung, um mit der
streamAssistMethode eine Frage zur 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: die Multiregion Ihres Datenspeichers:
global,usodereu- QUERY_TEXT_3: der Text der Suchanfrage.
- SESSION_ID: die ID einer Sitzung aus einer vorherigen Unterhaltung oder Abfrage.
- 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.