Contoh upload

Setelah membuat instance Example Store, Anda dapat mulai membuat dan mengupload contoh ke instance tersebut. Tidak ada batasan jumlah contoh yang dapat Anda simpan dalam instance example store. Contoh akan langsung tersedia setelah Anda menguploadnya ke instance Example Store.

Beberapa skenario yang mengharuskan Anda mengupload contoh mencakup hal berikut:

  • Kueri tidak relevan dengan contoh yang ada.

  • Model mengalami kesulitan dengan beberapa penalaran.

  • Contoh yang tersedia tidak mencakup semua fungsi, hasil, atau penalaran yang Anda harapkan.

Dengan membuat contoh relevan yang memiliki format yang diharapkan, Anda dapat mencapai hal berikut:

  • Meningkatkan kemampuan LLM untuk memperhatikan contoh dan menggunakannya, sehingga menghindari perubahan pola respons yang tidak terduga yang dihasilkan dari perubahan kecil pada perintah.

  • Mengurangi potensi dampak negatif dari penambahan contoh untuk kueri yang tidak relevan.

  • LLM berperforma seperti yang diharapkan untuk kueri serupa.

Jika LLM menunjukkan perilaku atau penalaran yang tidak terduga, Anda dapat mengupload respons yang dikoreksi untuk memandu model agar mengikuti pola atau penalaran yang diharapkan dalam permintaan berikutnya.

Contoh di halaman ini memungkinkan Anda membuat contoh berdasarkan output LLM. Membuat contoh berdasarkan output dari LLM memiliki keuntungan berikut dibandingkan membuat contoh secara manual:

  • Membuat contoh berdasarkan output LLM yang diharapkan memerlukan lebih sedikit upaya manual.

  • Dengan membuat contoh berdasarkan perilaku LLM yang tidak terduga, Anda dapat langsung mengoreksi kasus kegagalan.

  • Anda dapat membuat contoh berdasarkan respons dari model berperforma baik untuk meningkatkan perilaku model lain.

Menggunakan contoh untuk meningkatkan performa pemanggilan fungsi

Anda dapat menggunakan contoh few-shot untuk meningkatkan performa pemanggilan fungsi dengan menunjukkan hal berikut: * Kapan fungsi tertentu dipanggil.

  • Cara mengekstrak argumen yang akan digunakan dalam pemanggilan fungsi.

  • Cara model merespons berdasarkan respons yang ditampilkan oleh fungsi, atau beberapa fungsi jika penalaran multi-langkah.

Untuk mempelajari pemanggilan fungsi lebih lanjut, lihat dokumentasi Pemanggilan fungsi.

Prasyarat

Sebelum menggunakan contoh Python di halaman ini, Anda harus menginstal dan menginisialisasi Agent Platform SDK untuk Example Store di lingkungan Python lokal.

  1. Jalankan perintah berikut untuk menginstal Agent Platform SDK untuk Example Store.

    pip install --upgrade google-cloud-aiplatform>=1.87.0
  2. Gunakan contoh kode berikut untuk mengimpor dan menginisialisasi SDK untuk Example Store.

    import vertexai
    from vertexai.preview import example_stores
    
    vertexai.init(
      project="PROJECT_ID",
      location="LOCATION"
    )
    

    Ganti kode berikut:

    • PROJECT_ID: Project ID Anda.

    • LOCATION: Region Anda. Hanya us-central1 yang didukung.

Mengupload contoh

Gunakan contoh berikut untuk mengupload contoh ke instance Example Store. Anda dapat mengupload maksimal lima contoh per permintaan.

Python

Contoh berikut memungkinkan Anda meningkatkan perilaku LLM dan performa pemanggilan fungsi dengan membuat dan mengupload contoh ke instance Example Store, menggunakan respons yang diterima dari LLM. Sebelum menggunakan contoh berikut, pastikan Anda telah melakukan hal berikut:

Ikuti petunjuk penyiapan Python di Menginstal library klien dan menyiapkan autentikasi menggunakan Kredensial Default Aplikasi.

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Agent Platform Python API.

Mengupload contoh berdasarkan respons yang diharapkan

Gunakan contoh berikut untuk membuat dan mengupload contoh dalam skenario saat respons dari LLM memiliki format yang diharapkan. Contoh ini memungkinkan Anda mengirim permintaan, membuat contoh berdasarkan respons, lalu mengupload contoh ke instance Example Store.

from vertexai.preview.example_stores import ContentsExample, StoredContentsExample

client = genai.Client(
    http_options=genai_types.HttpOptions(api_version="v1"),
    vertexai=True,
    project="PROJECT_ID",
    location="LOCATION")

user_content = genai_types.Content(
    role="user",
    parts=[genai_types.Part(text="EXAMPLE_QUERY")],
)

response = client.models.generate_content(
    model="MODEL_NAME",
    user_content,
    config=genai_types.GenerateContentConfig(
      tools=[FUNCTION_OR_FUNCTION_DECLARATION]
    )
  )

# Upload example.
example = {
  "contents_example": {
    "contents": [user_content.to_json_dict()],
    "expected_contents": [
      {"content": response.candidates[0].content.to_json_dict()},
      {"content": EXPECTED_FUNCTION_RESPONSE.to_json_dict()},
      {"content": EXPECTED_FINAL_MODEL_RESPONSE.to_json_dict()},
    ],
  },
  "search_key": user_content.parts[0].text,
}
example_store.upsert_examples(examples=[example])

Ganti kode berikut:

  • PROJECT_ID: Project ID Anda.

  • LOCATION: Region Anda. Hanya us-central1 yang didukung.

  • EXAMPLE_QUERY: Permintaan atau kueri pengguna ke LLM atau agen.

  • MODEL_NAME: Nama model. Contohnya, gemini-3.5-flash.

  • FUNCTION_OR_FUNCTION_DECLARATION: Fungsi atau deklarasi fungsi yang akan digunakan dalam permintaan. Lihat dokumentasi GenAI SDK untuk Pemanggilan Fungsi guna mendapatkan bantuan dalam menentukan fungsi sebagai alat.

  • EXPECTED_FUNCTION_RESPONSE: Respons fungsi yang diharapkan (objek FunctionResponse) untuk pemanggilan fungsi yang diharapkan. Lihat dokumentasi GenAI SDK untuk Pemanggilan Fungsi guna mendapatkan bantuan dalam menentukan respons fungsi.

  • EXPECTED_FINAL_MODEL_RESPONSE: Respons model akhir yang diharapkan (objek Content) untuk pemanggilan dan respons fungsi yang diharapkan.

Mengupload contoh untuk mengoreksi respons yang tidak terduga

Jika LLM tidak menghasilkan respons seperti yang diharapkan, Anda dapat membuat contoh berdasarkan respons yang dikoreksi. Hal ini membantu LLM mengikuti penalaran yang diharapkan untuk permintaan berikutnya.

Gunakan contoh berikut untuk mengupload contoh dengan respons yang dikoreksi ke instance Example Store.

user_content = genai_types.Content(
    role="user",
    parts=[genai_types.Part(text="EXAMPLE_QUERY")],
)

example = {
  "contents_example": {
    "contents": [user_content.to_json_dict()],
    "expected_contents": [
      {"content": EXPECTED_FUNCTION_CALL.to_json_dict()},
      {"content": EXPECTED_FUNCTION_RESPONSE.to_json_dict()},
      {"content": EXPECTED_FINAL_MODEL_RESPONSE.to_json_dict()},
    ],
  },
  "search_key": user_content.parts[0].text,
}

example_store.upsert_examples(examples=[example])

Ganti kode berikut:

  • EXAMPLE_QUERY: Permintaan atau kueri pengguna ke LLM atau agen.

  • EXPECTED_FUNCTION_CALL: Pemanggilan fungsi yang diharapkan (objek FunctionCall) untuk kueri pengguna yang diberikan. Lihat dokumentasi GenAI SDK untuk Pemanggilan Fungsi guna mendapatkan bantuan dalam menentukan pemanggilan fungsi.

  • EXPECTED_FUNCTION_RESPONSE: Respons fungsi yang diharapkan (objek FunctionResponse) untuk pemanggilan fungsi yang diharapkan. Lihat dokumentasi GenAI SDK untuk Pemanggilan Fungsi guna mendapatkan bantuan dalam menentukan respons fungsi.

  • EXPECTED_FINAL_MODEL_RESPONSE: Respons model akhir yang diharapkan (objek Content) untuk pemanggilan dan respons fungsi yang diharapkan.

REST

Untuk mengupload contoh ke instance Example Store, kirim POST permintaan menggunakan exampleStores.upsertExamples metode.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • LOCATION: Region tempat Anda ingin membuat example store. Satu-satunya region yang didukung adalah us-central1.
  • EXAMPLE_STORE_ID: ID instance Example Store tempat Anda ingin mengupload contoh.

Metode HTTP dan URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:upsertExamples

Meminta isi JSON:

{
  "examples": [
      {
          "stored_contents_example": {
              "contents_example": {
                  "contents": [
                      {
                          "role": "user",
                          "parts": [
                              {
                                  "text": "Is there a store in Mountain View, CA that I can visit to try the new Pixel 8 Pro?"
                              }
                          ]
                      }
                  ],
                  "expected_contents": [
                      {
                          "content": {
                              "role": "model",
                              "parts": [
                                  {
                                      "text": ""Yes, there is a store located at 2000 N Shoreline Blvd, Mountain View, CA 94043, US."
                                  }
                              ]
                          }
                      }
                  ]
              },
              "search_key_generation_method": {
                  "last_entry": {}
              }
          }
      }
  ]
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:upsertExamples"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:upsertExamples" | Select-Object -Expand Content

Anda akan menerima respons JSON yang mirip dengan contoh berikut, dengan EXAMPLE_ID mewakili ID numerik yang dibuat untuk contoh.

Langkah berikutnya