Memecahkan masalah fungsi yang dioptimalkan

Dokumen ini menjelaskan error yang mungkin Anda alami saat menggunakan fungsi AI yang dioptimalkan. Contoh error dan perbaikan yang direkomendasikan juga disediakan.

Performa yang lebih rendah diharapkan. Fungsi AI yang dioptimalkan tidak tersedia

Deskripsi

Peringatan ini menunjukkan bahwa kueri kembali menggunakan LLM. Hal ini terjadi saat fungsi yang dioptimalkan masih dalam pelatihan, tidak pernah disiapkan, gagal dalam pemeriksaan validasi akurasi runtime, atau jika kolom konten dan embedding yang direferensikan dalam fungsi ai.if() tidak berasal dari tabel yang sama. Untuk tabel yang lebih kecil, model proxy mungkin tidak dapat digeneralisasi dengan baik, dan akurasinya umumnya kurang dari 95%, sehingga AlloyDB menggunakan LLM secara default.

Contoh kueri yang menyebabkan error

EXECUTE positive_reviews_query;
  • Tunggu hingga pelatihan fungsi yang dioptimalkan selesai.
  • Pastikan kueri disiapkan dengan benar menggunakan pernyataan PREPARE.
  • Verifikasi bahwa kolom konten dan embedding yang direferensikan dalam fungsi ai.if() berasal dari tabel yang sama.
  • Fungsi yang dioptimalkan (Pratinjau) lebih cocok untuk tabel yang lebih besar. Anda juga dapat menggunakan fungsi AI berbasis array untuk meningkatkan performa.
  • Jika Anda ingin melewati pemeriksaan akurasi runtime (misalnya, di lingkungan pengembangan), tetapkan google_ml_integration.runtime_accuracy_check ke off untuk seluruh lingkungan database.

    ALTER DATABASE DATABASE_NAME SET google_ml_integration.runtime_accuracy_check = off;
    

    Ganti DATABASE_NAME dengan nama database Anda.

Kueri tidak memproses baris apa pun atau persiapan model gagal

Deskripsi

Jika kueri tidak memproses baris apa pun, alasan utamanya adalah embedding tidak dibuat atau saat seluruh kolom embedding memiliki nilai NULL. Hal ini menyebabkan persiapan kueri gagal, karena tidak mengambil sampel baris yang memiliki embedding NULL.

  • Buat embedding untuk data Anda sebelum menggunakan fungsi yang dioptimalkan.
  • Pastikan kolom embedding tidak berisi nilai NULL.
  • Kueri yang hanya berbeda dalam nilai konstanta di klausa WHERE mungkin masih menggunakan model terlatih yang ada.

Performa lambat meskipun menggunakan fungsi AI yang dioptimalkan

Deskripsi

Pastikan Anda tidak melebihi kuota Platform Agen Gemini Enterprise. Bahkan dengan fungsi AI yang dioptimalkan, pemeriksaan akurasi runtime awal memerlukan panggilan LLM jarak jauh untuk sampel baris. Kuota yang tidak mencukupi dapat menyebabkan pemeriksaan awal ini lambat atau gagal.

Periksa kuota Platform Agen Anda dan minta peningkatan jika diperlukan untuk memastikan pemeriksaan akurasi runtime awal dapat dilanjutkan tanpa penundaan.

ERROR: function ai.if(prompt => text, embedding => vector) does not exist

Deskripsi

Jika Anda meneruskan parameter model_id bersama dengan kolom embedding saat memanggil fungsi ai.if(), AlloyDB tidak menggunakan model proxy terlatih, dan menghasilkan error yang mirip dengan berikut ini:

testdb=# select ai.if('Is the rating positive?' || review, review_embedding, 'gemini-2.5-pro') from restaurant_reviews;
ERROR:  function ai.if(text, vector, unknown) does not exist
LINE 1: select ai.if('Is the rating positive?' || review, review_embe...
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

Pastikan Anda tidak meneruskan nilai model_id saat memanggil fungsi ai.if(). Hal ini memastikan AlloyDB menggunakan model proxy terlatih untuk memproses kueri.