Ekstensi google_ml_integration di AlloyDB untuk PostgreSQL memungkinkan Anda membuat embedding teks langsung di SQL menggunakan fungsi dalam skema public dan google_ml. Anda dapat memanggil fungsi embedding() dalam skema public dengan model embedding Gemini Enterprise Agent Platform apa pun tanpa mendaftarkan endpoint. Untuk meneruskan parameter kustom seperti jenis tugas
atau menggunakan model pihak ketiga,
daftarkan endpoint model dan
panggil fungsi google_ml.embedding() dalam skema google_ml.
Cara kerja penyematan
Bayangkan database yang berjalan di AlloyDB dengan karakteristik berikut:
Database berisi tabel,
items. Setiap baris dalam tabel ini menjelaskan item yang dijual bisnis Anda.Tabel
itemsberisi kolom,complaints. KolomTEXTini menyimpan keluhan pembeli yang dicatat untuk setiap item.Database ini terintegrasi dengan Model Garden, sehingga memberikan akses ke model bahasa Inggris
gemini-embedding-001.
Meskipun database ini menyimpan keluhan tentang item, keluhan tersebut disimpan sebagai teks biasa, sehingga sulit untuk dikueri. Misalnya, untuk melihat item mana yang paling banyak dikeluhkan oleh pelanggan yang menerima warna merchandise yang salah, Anda dapat menjalankan kueri SQL biasa pada tabel, yang mencari berbagai kecocokan kata kunci. Namun, pendekatan ini hanya mencocokkan baris yang berisi kata kunci yang sama persis.
Misalnya, kueri SQL dasar seperti SELECT * FROM item WHERE complaints LIKE
"%wrong color%" tidak menampilkan baris yang kolom complaints-nya hanya berisi
The picture shows a blue one, but the one I received was red.
Kueri SQL yang menggunakan embedding yang didukung LLM dapat membantu menampilkan respons yang mirip secara semantik untuk kueri tersebut. Dengan menerapkan embedding, Anda dapat membuat kueri tabel dalam contoh ini untuk item yang keluhannya memiliki kemiripan semantik dengan perintah teks tertentu, seperti It was the
wrong color.
Untuk pembuatan sematan dasar, pilih salah satu skema berikut.
Sebelum memulai
Untuk mengizinkan AlloyDB membuat embedding, lakukan hal berikut:
- Hubungkan ke database Anda menggunakan
psqlatau AlloyDB untuk PostgreSQL Studio sebagai penggunapostgres. Pastikan ekstensi
google_ml_integrationtelah diinstal.Untuk memeriksa versi ekstensi Anda dengan perintah berikut:
SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';Jika Anda perlu memperbarui ekstensi, gunakan perintah
ALTER EXTENSION google_ml_integration UPDATE;.Sebelum dapat membuat embedding dari database AlloyDB, Anda harus mengonfigurasi AlloyDB agar berfungsi dengan Agent Platform. Untuk mengetahui informasi selengkapnya, lihat Mengintegrasikan database Anda dengan Platform Agen.
Memberikan izin kepada pengguna database untuk membuat sematan.
Jika Anda menggunakan
psql, hubungkan ke database yang ingin Anda beri izin ke:\c DB_NAME GRANT EXECUTE ON FUNCTION embedding TO "USER_NAME";Ganti kode berikut:
- DB_NAME: nama database yang ingin Anda beri izin.
- USER_NAME: nama pengguna yang ingin Anda beri izin.
Jika Anda menggunakan AlloyDB untuk PostgreSQL Studio, pilih nama database yang ingin Anda beri izin dalam daftar Database. Berikan izin
EXECUTEpada fungsigoogle_ml.embeddingkepada pengguna:GRANT EXECUTE ON FUNCTION google_ml.embedding TO "USER_NAME";Ganti USER_NAME dengan nama pengguna yang ingin Anda beri izin.
Membuat embedding
Gunakan fungsi SQL google_ml.embedding() untuk memanggil model embedding teks.
Untuk memanggil model dan membuat embedding, jalankan kueri berikut:
SELECT
google_ml.embedding(
model_id => 'MODEL_ID',
content => 'CONTENT');
Ganti kode berikut:
MODEL_ID: ID model yang memenuhi syarat, misalnya,gemini-embedding-001.CONTENT: teks yang akan diterjemahkan menjadi embedding vektor.
Contoh untuk membuat embedding
Beberapa contoh untuk membuat embedding menggunakan endpoint model terdaftar tercantum di bagian ini.
Model embedding Gemini
Untuk membuat embedding bagi endpoint model gemini-embedding-001 yang terdaftar, jalankan pernyataan berikut:
SELECT
google_ml.embedding(
model_id => 'gemini-embedding-001',
content => 'AlloyDB is a managed, cloud-hosted SQL database service');
Jika cluster AlloyDB dan endpoint Gemini Enterprise Agent Platform berada di project yang berbeda, ikuti langkah-langkah berikut:
Jalankan pernyataan
CALLberikut.CALL google_ml.create_model( model_id => 'gemini-embedding-001', model_request_url => 'https://REGION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_ID/publishers/google/models/gemini-embedding-001:predict', model_provider => 'google', model_type => 'text_embedding', model_auth_type => 'alloydb_service_agent_iam', model_in_transform_fn => 'google_ml.vertexai_text_embedding_input_transform', model_out_transform_fn => 'google_ml.vertexai_text_embedding_output_transform' );Untuk membuat embedding bagi endpoint model
gemini-embedding-001yang terdaftar, jalankan pernyataan berikut:SELECT google_ml.embedding( model_id => 'gemini-embedding-001', content => 'AlloyDB is a managed, cloud-hosted SQL database service');
Model embedding OpenAI
Untuk membuat embedding untuk endpoint model text-embedding-ada-002 terdaftar oleh OpenAI, jalankan pernyataan berikut:
SELECT
google_ml.embedding(
model_id => 'text-embedding-ada-002',
content => 'e-mail spam');
Untuk membuat embedding bagi endpoint model text-embedding-3-small atau text-embedding-3-large terdaftar oleh OpenAI, jalankan pernyataan berikut:
SELECT
google_ml.embedding(
model_id => 'text-embedding-3-small',
content => 'Vector embeddings in AI');
Langkah berikutnya
- Menjalankan penelusuran kemiripan vektor.
- Pelajari cara membuat asisten belanja cerdas dengan AlloyDB, pgvector, dan pengelolaan endpoint model.
- Membuat indeks dan mengkueri vektor.
- Pelajari contoh alur kerja embedding.
- Pelajari referensi pengelolaan endpoint model.