Mendapatkan hasil penelusuran dari StreamAssist

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.

    Buka Discovery Engine API

  • Peran Discovery Engine yang memiliki izin discoveryengine.assistants.assist yang 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:
    • us untuk multi-region Amerika Serikat
    • eu untuk multi-region Uni Eropa
    • global untuk lokasi Global
    Untuk mengetahui informasi selengkapnya, lihat Menentukan multi-region untuk penyimpanan data Anda.
  • PROJECT_ID: ID project Google Cloud Anda.
  • APP_ID: ID unik untuk aplikasi Gemini Enterprise.
  • LOCATION: multi-region penyimpanan data Anda: global, us, atau eu
  • 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:
    • us untuk multi-region Amerika Serikat
    • eu untuk multi-region Uni Eropa
    • global untuk lokasi Global
    Untuk mengetahui informasi selengkapnya, lihat Menentukan multi-region untuk penyimpanan data Anda.
  • PROJECT_ID: ID project Google Cloud Anda.
  • APP_ID: ID unik untuk aplikasi Gemini Enterprise.
  • LOCATION: multi-region penyimpanan data Anda: global, us, atau eu
  • 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:

  1. 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:
      • us untuk multi-region Amerika Serikat
      • eu untuk multi-region Uni Eropa
      • global untuk lokasi Global
      Untuk mengetahui informasi selengkapnya, lihat Menentukan multi-region untuk penyimpanan data Anda.
    • PROJECT_ID: ID project Google Cloud Anda.
    • LOCATION: multi-region penyimpanan data Anda: global, us, atau eu
    • 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/plain atau application/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.

  2. Gunakan sesi yang sama untuk mengajukan pertanyaan tentang file yang Anda upload menggunakan the streamAssist method.

    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:
      • us untuk multi-region Amerika Serikat
      • eu untuk multi-region Uni Eropa
      • global untuk lokasi Global
      Untuk mengetahui informasi selengkapnya, lihat Menentukan multi-region untuk penyimpanan data Anda.
    • PROJECT_ID: ID project Google Cloud Anda.
    • APP_ID: ID unik untuk aplikasi Gemini Enterprise.
    • LOCATION: multi-region penyimpanan data Anda: global, us, atau eu
    • 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.