Nella tua app web, puoi ricevere risposte alle tue domande sotto forma di risposte in streaming. Questo documento mostra come utilizzare l'API REST per ottenere risposte. Se vuoi utilizzare l'app web Gemini Enterprise, consulta Chatta con l'assistente.
Panoramica di StreamAssist
StreamAssist offre un modo potente e interattivo per gestire le query degli utenti. Opera in modalità streaming, consentendo interazioni in tempo reale e bidirezionali.
Le funzionalità chiave dell'API includono:
Mantenimento del contesto conversazionale: utilizza le sessioni per mantenere il contesto conversazionale, assicurandosi di comprendere le query aggiuntive nell'ambito delle interazioni precedenti.
Incorporazione dei file forniti: include i file allegati come contesto per risposte più informate e pertinenti.
Integrazione perfetta: si integra con vari agenti e strumenti per soddisfare un'ampia gamma di richieste degli utenti.
Prima di iniziare
Assicurati di disporre di quanto segue:
L'API Discovery Engine abilitata per il tuo progetto Google Cloud. Puoi abilitarla nella pagina API Discovery Engine della Google Cloud console.
Un ruolo Discovery Engine a cui è assegnata l'autorizzazione
discoveryengine.assistants.assist.Un'app Gemini Enterprise esistente. Per creare un'app, consulta Crea un'app.
Ottenere i risultati di ricerca
Puoi utilizzare il streamAssist
metodo per eseguire query e ottenere risposte da
Gemini Enterprise. Il seguente comando curl elenca i campi obbligatori.
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"
}
}'
Sostituisci quanto segue:
- ENDPOINT_LOCATION: la multi-regione per la richiesta API. Specifica uno dei seguenti valori:
usper la multi-regione Stati Unitieuper la multi-regione UEglobalper la località globale
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- APP_ID: l'identificatore univoco dell'app Gemini Enterprise.
- LOCATION: la multi-regione del datastore:
global,usoeu - QUERY_TEXT_1: il testo della query di ricerca.
Per saperne di più sui campi e su ciò che viene restituito, consulta Corpo della risposta.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python nella guida rapida di Gemini Enterprise per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Gemini Enterprise Python.
Per eseguire l'autenticazione in Gemini Enterprise, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
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)
Ottenere i risultati di ricerca utilizzando la stessa sessione
Per continuare una conversazione e ottenere risposte da Gemini Enterprise all'interno di una
sessione esistente, utilizza il
streamAssist metodo. Il seguente esempio di codice mostra i campi obbligatori:
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"
}
}'
Sostituisci quanto segue:
- ENDPOINT_LOCATION: la multi-regione per la richiesta API. Specifica uno dei seguenti valori:
usper la multi-regione Stati Unitieuper la multi-regione UEglobalper la località globale
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- APP_ID: l'identificatore univoco dell'app Gemini Enterprise.
- LOCATION: la multi-regione del datastore:
global,usoeu - QUERY_TEXT_2: il testo della query di ricerca.
- SESSION_ID: l'ID di una sessione di una conversazione o di una query precedente.
Per saperne di più sui campi e su ciò che viene restituito, consulta Corpo della risposta.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python nella guida rapida di Gemini Enterprise per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Gemini Enterprise Python.
Per eseguire l'autenticazione in Gemini Enterprise, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
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)
Caricare un file e ottenere i risultati di ricerca (anteprima)
Per fornire all'assistente più contesto, carica un file in una sessione e poi esegui una query sui suoi contenuti. Segui questi passaggi:
Carica un file in una sessione utilizzando il
addContextFilemetodo.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" }'Sostituisci quanto segue:
- ENDPOINT_LOCATION: la multi-regione per la richiesta API. Specifica uno dei seguenti valori:
usper la multi-regione Stati Unitieuper la multi-regione UEglobalper la località globale
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- LOCATION: la multi-regione del datastore:
global,usoeu - APP_ID: l'identificatore univoco dell'app Gemini Enterprise.
- SESSION_ID: l'ID di una sessione di una conversazione o di una query precedente.
- FILE_NAME: il nome del file.
- MIME_TYPE: il tipo MIME del file, ad esempio
text/plainoapplication/pdf. Per saperne di più sui diversi tipi di media, consulta Tipi di media. - BASE64_ENCODED_FILE: la rappresentazione del file codificata in Base64.
Per saperne di più sui campi e su ciò che viene restituito, consulta Corpo della risposta.
- ENDPOINT_LOCATION: la multi-regione per la richiesta API. Specifica uno dei seguenti valori:
Utilizza la stessa sessione per porre una domanda sul file che hai caricato utilizzando il
streamAssistmetodo.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" } }'Sostituisci quanto segue:
- ENDPOINT_LOCATION: la multi-regione per la richiesta API. Specifica uno dei seguenti valori:
usper la multi-regione Stati Unitieuper la multi-regione UEglobalper la località globale
- PROJECT_ID: l'ID del tuo Google Cloud progetto.
- APP_ID: l'identificatore univoco dell'app Gemini Enterprise.
- LOCATION: la multi-regione del datastore:
global,usoeu - QUERY_TEXT_3: il testo della query di ricerca.
- SESSION_ID: l'ID di una sessione di una conversazione o di una query precedente.
- FILE_ID: l'ID del file che hai caricato nell'assistente.
Per saperne di più sui campi e su ciò che viene restituito, consulta Corpo della risposta.
- ENDPOINT_LOCATION: la multi-regione per la richiesta API. Specifica uno dei seguenti valori: