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 Mulai percakapan dengan asisten.
Ringkasan StreamAssist
StreamAssist menyediakan cara yang efektif dan interaktif untuk menangani kueri pengguna. Model ini beroperasi secara streaming, sehingga memungkinkan interaksi dua arah secara real-time.
Kemampuan utama API ini meliputi:
Mempertahankan konteks percakapan: menggunakan sesi untuk mempertahankan konteks percakapan, sehingga memastikan bahwa model memahami kueri lanjutan dalam cakupan interaksi sebelumnya.
Menggabungkan file yang diberikan: menyertakan file terlampir sebagai konteks untuk respons yang lebih informatif dan relevan.
Integrasi yang lancar: terintegrasi dengan berbagai agen dan alat untuk memenuhi berbagai permintaan pengguna.
Sebelum memulai
Pastikan Anda memiliki:
Discovery Engine API diaktifkan untuk Google CloudAnda. Anda dapat mengaktifkannya di halaman Discovery Engine API di konsolGoogle Cloud .
Peran Discovery Engine yang memiliki izin
discoveryengine.assistants.assistyang ditetapkan untuknya.Aplikasi Gemini Enterprise yang sudah 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 diisi.
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 ASeuuntuk multi-region Uni Eropaglobaluntuk lokasi Global
- PROJECT_ID: ID Google Cloud project 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 dokumentasi referensi Python API Gemini Enterprise.
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 diisi:
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 ASeuuntuk multi-region Uni Eropaglobaluntuk lokasi Global
- PROJECT_ID: ID Google Cloud project 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 dokumentasi referensi Python API Gemini Enterprise.
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 ASeuuntuk multi-region Uni Eropaglobaluntuk lokasi Global
- PROJECT_ID: ID Google Cloud project 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 metode
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" } }'Ganti kode berikut:
- ENDPOINT_LOCATION: multi-region untuk permintaan API Anda. Tentukan salah satu nilai berikut:
usuntuk multi-region ASeuuntuk multi-region Uni Eropaglobaluntuk lokasi Global
- PROJECT_ID: ID Google Cloud project 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: