Contoh upload

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

Beberapa skenario saat Anda perlu 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 pemikiran yang Anda harapkan.

Dengan menulis contoh yang relevan dalam format yang diharapkan, Anda dapat mencapai hal berikut:

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

  • Mengurangi potensi dampak negatif dari menambahkan 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 menulis contoh berdasarkan output LLM. Membuat contoh berdasarkan output dari LLM memiliki keunggulan berikut dibandingkan membuat contoh secara manual:

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

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

  • Anda dapat menulis contoh berdasarkan respons dari model yang berperforma baik untuk meningkatkan perilaku model lain. Misalnya, jika Gemini 1.5 Pro memberikan respons yang lebih baik daripada Gemini 1.5 Flash, tetapi dengan latensi yang lebih tinggi, Anda dapat menulis contoh menggunakan respons tersebut untuk mencapai performa yang serupa dengan latensi yang lebih rendah menggunakan Gemini 1.5 Flash.

Menggunakan contoh untuk meningkatkan performa panggilan fungsi

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

  • Cara mengekstrak argumen yang akan digunakan dalam panggilan fungsi Anda.

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

Untuk mempelajari lebih lanjut pemanggilan fungsi, lihat Dokumentasi pemanggilan fungsi.

Prasyarat

Sebelum menggunakan contoh Python di halaman ini, Anda harus menginstal dan melakukan inisialisasi Vertex AI SDK untuk Python untuk Example Store di lingkungan Python lokal Anda.

  1. Jalankan perintah berikut untuk menginstal Vertex AI SDK untuk Python untuk Example Store.

    pip install --upgrade google-cloud-aiplatform>=1.87.0
  2. Gunakan contoh kode berikut untuk mengimpor dan melakukan inisialisasi 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.

Contoh upload

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 panggilan fungsi dengan membuat dan mengupload contoh ke instance Contoh Store, menggunakan respons yang diterima dari LLM. Sebelum menggunakan contoh berikut, pastikan Anda telah melakukan hal berikut:

Upload contoh berdasarkan respons yang diharapkan

Gunakan contoh berikut untuk menulis dan mengupload contoh dalam skenario saat respons dari LLM dalam 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 = Content(
    role="user",
    parts=[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. Contoh, gemini-2.0-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 panggilan 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 panggilan dan respons fungsi yang diharapkan.

Upload contoh untuk memperbaiki 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 alasan yang diharapkan untuk permintaan berikutnya.

Gunakan contoh berikut untuk mengupload contoh dengan respons yang dikoreksi ke instance Contoh Toko.

user_content = Content(
    role="user",
    parts=[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:

REST

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

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • LOCATION: Region tempat Anda ingin membuat contoh toko. Satu-satunya wilayah yang didukung adalah us-central1.
  • EXAMPLE_STORE_ID: ID instance Contoh Toko 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

Isi JSON permintaan:

{
  "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 berikut ini, dengan EXAMPLE_ID mewakili ID numerik yang dihasilkan untuk contoh.

Langkah berikutnya