Di aplikasi web, Anda bisa mendapatkan jawaban atas pertanyaan Anda dalam bentuk respons streaming. Dokumen ini menunjukkan cara menggunakan REST API untuk mendapatkan jawaban. Jika Anda ingin menggunakan aplikasi web Gemini Enterprise, lihat Berinteraksi dengan asisten.
Ringkasan StreamAssist
StreamAssist menyediakan cara yang canggih dan interaktif untuk menangani kueri pengguna. Fitur ini beroperasi dalam mode streaming, sehingga memungkinkan interaksi dua arah secara real-time.
Kemampuan utama API mencakup hal berikut:
Mempertahankan konteks percakapan: menggunakan sesi untuk mempertahankan konteks percakapan, sehingga memahami kueri lanjutan dalam cakupan interaksi sebelumnya.
Menggabungkan file yang disediakan: menyertakan file terlampir sebagai konteks untuk respons yang lebih tepat dan relevan.
Integrasi yang lancar: terintegrasi dengan berbagai agen dan alat untuk memenuhi berbagai permintaan pengguna.
Sebelum memulai
Pastikan Anda memiliki hal berikut:
Discovery Engine API diaktifkan untuk Google Cloud. Anda dapat mengaktifkannya di halaman Discovery Engine API di Google Cloud konsol.
Peran Discovery Engine yang memiliki izin
discoveryengine.assistants.assistyang ditetapkan untuknya.Aplikasi Gemini Enterprise yang ada. Untuk membuat aplikasi, lihat Membuat aplikasi.
Mendapatkan hasil penelusuran
Anda dapat menggunakan metode streamAssist
untuk membuat kueri dan mendapatkan jawaban dari
Gemini Enterprise. Perintah curl berikut mencantumkan kolom wajib.
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"
}
}'
Ganti kode berikut:
- ENDPOINT_LOCATION: multi-region untuk permintaan API Anda. Tentukan salah satu nilai berikut:
usuntuk multi-region Amerika Serikateuuntuk multi-region Uni Eropaglobaluntuk lokasi Global
- PROJECT_ID: ID project Google Cloud Anda.
- APP_ID: ID unik untuk aplikasi Gemini Enterprise.
- LOCATION: multi-region penyimpanan data Anda:
global,us, ataueu - QUERY_TEXT_1: teks kueri penelusuran.
Untuk mengetahui informasi selengkapnya tentang kolom dan apa yang ditampilkan, lihat Isi respons.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Gemini Enterprise menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Gemini Enterprise Python API dokumentasi referensi.
Untuk melakukan autentikasi ke Gemini Enterprise, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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)
Mendapatkan hasil penelusuran menggunakan sesi yang sama
Untuk melanjutkan percakapan dan mendapatkan jawaban dari Gemini Enterprise dalam sesi yang ada, gunakan metode
streamAssist. Contoh kode berikut menunjukkan kolom wajib:
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"
}
}'
Ganti kode berikut:
- ENDPOINT_LOCATION: multi-region untuk permintaan API Anda. Tentukan salah satu nilai berikut:
usuntuk multi-region Amerika Serikateuuntuk multi-region Uni Eropaglobaluntuk lokasi Global
- PROJECT_ID: ID project Google Cloud Anda.
- APP_ID: ID unik untuk aplikasi Gemini Enterprise.
- LOCATION: multi-region penyimpanan data Anda:
global,us, ataueu - QUERY_TEXT_2: teks kueri penelusuran.
- SESSION_ID: ID sesi dari percakapan atau kueri sebelumnya.
Untuk mengetahui informasi selengkapnya tentang kolom dan apa yang ditampilkan, lihat Isi respons.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Gemini Enterprise menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Gemini Enterprise Python API dokumentasi referensi.
Untuk melakukan autentikasi ke Gemini Enterprise, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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)
Mengupload file dan mendapatkan hasil penelusuran (Pratinjau)
Untuk memberikan lebih banyak konteks kepada asisten, upload file ke sesi, lalu kueri kontennya. Ikuti langkah-langkah berikut:
Upload file ke sesi menggunakan metode
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" }'Ganti kode berikut:
- ENDPOINT_LOCATION: multi-region untuk permintaan API Anda. Tentukan salah satu nilai berikut:
usuntuk multi-region Amerika Serikateuuntuk multi-region Uni Eropaglobaluntuk lokasi Global
- PROJECT_ID: ID project Google Cloud Anda.
- LOCATION: multi-region penyimpanan data Anda:
global,us, ataueu - APP_ID: ID unik untuk aplikasi Gemini Enterprise.
- SESSION_ID: ID sesi dari percakapan atau kueri sebelumnya.
- FILE_NAME: nama file.
- MIME_TYPE: jenis MIME file, misalnya,
text/plainatauapplication/pdf. Untuk mengetahui informasi selengkapnya tentang berbagai jenis media, lihat Jenis Media. - BASE64_ENCODED_FILE: representasi file yang dienkode base64.
Untuk mengetahui informasi selengkapnya tentang kolom dan apa yang ditampilkan, lihat Isi respons.
- ENDPOINT_LOCATION: multi-region untuk permintaan API Anda. Tentukan salah satu nilai berikut:
Gunakan sesi yang sama untuk mengajukan pertanyaan tentang file yang Anda upload menggunakan the
streamAssistmethod.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" } }'Ganti kode berikut:
- ENDPOINT_LOCATION: multi-region untuk permintaan API Anda. Tentukan salah satu nilai berikut:
usuntuk multi-region Amerika Serikateuuntuk multi-region Uni Eropaglobaluntuk lokasi Global
- PROJECT_ID: ID project Google Cloud Anda.
- APP_ID: ID unik untuk aplikasi Gemini Enterprise.
- LOCATION: multi-region penyimpanan data Anda:
global,us, ataueu - QUERY_TEXT_3: teks kueri penelusuran.
- SESSION_ID: ID sesi dari percakapan atau kueri sebelumnya.
- FILE_ID: ID file yang Anda upload ke asisten.
Untuk mengetahui informasi selengkapnya tentang kolom dan apa yang ditampilkan, lihat Isi respons.
- ENDPOINT_LOCATION: multi-region untuk permintaan API Anda. Tentukan salah satu nilai berikut: