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 penyimpanan contoh. Contoh akan tersedia segera setelah Anda menguploadnya ke instance Example Store.

Beberapa skenario saat Anda perlu mengupload contoh meliputi hal berikut:

  • Kueri tidak relevan dengan contoh yang ada.

  • Model kesulitan dengan beberapa penalaran.

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

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

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

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

  • LLM berfungsi seperti yang diharapkan untuk kueri serupa.

Jika LLM menunjukkan perilaku atau alasan yang tidak terduga, Anda dapat mengupload respons yang telah dikoreksi untuk memandu model mengikuti pola atau alasan 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:

  • Contoh penulisan berdasarkan output LLM yang diharapkan memerlukan upaya manual yang lebih sedikit.

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

  • Anda dapat membuat contoh berdasarkan respons dari model 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 membuat contoh menggunakan respons tersebut untuk mencapai performa serupa dengan latensi yang lebih rendah menggunakan Gemini 1.5 Flash.

Menggunakan contoh untuk meningkatkan performa panggilan fungsi

Anda dapat menggunakan contoh sedikit tembakan untuk meningkatkan performa panggilan fungsi dengan menunjukkan hal berikut: * Kapan fungsi tertentu dipanggil.

  • Cara mengekstrak argumen untuk digunakan dalam panggilan fungsi.

  • Cara model merespons berdasarkan respons yang ditampilkan oleh fungsi, atau beberapa fungsi dalam kasus 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 bagi Example Store di lingkungan Python lokal Anda.

  1. Jalankan perintah berikut untuk menginstal Vertex AI SDK untuk Python bagi 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.

Contoh upload

Gunakan contoh berikut untuk mengupload contoh ke instance Toko Contoh. 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 Example Store, menggunakan respons yang diterima dari LLM. Sebelum menggunakan contoh berikut, pastikan Anda telah melakukan hal berikut:

Mengupload contoh berdasarkan respons yang diharapkan

Gunakan contoh berikut untuk membuat 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 untuk 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 untuk mendapatkan bantuan dalam menentukan respons fungsi.

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

Mengupload contoh untuk memperbaiki respons yang tidak terduga

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

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

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:

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

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

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

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

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 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

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

Langkah berikutnya