pgvector adalah ekstensi untuk PostgreSQL (juga disebut Postgres) yang menyederhanakan pekerjaan dengan vektor, sehingga Anda dapat menyimpan, menelusuri, dan mengindeksnya secara langsung di database relasional Anda.
Dengan pgvector, menambahkan kemampuan lanjutan seperti penelusuran kemiripan ke aplikasi dan agen AI Anda dapat dilakukan dengan mudah dan skalabel, tanpa harus memindahkan data atau mengubah arsitektur aplikasi untuk menghubungkan jenis data vektor baru.
pgvector adalah ekstensi open source untuk PostgreSQL yang membantu Anda menyimpan, mengindeks, dan menelusuri vektor berdimensi tinggi secara langsung di dalam database PostgreSQL yang ada. pgvector dikenal karena mendukung:
Vektor merepresentasikan data secara numerik dengan cara yang menangkap karakteristik utamanya, memetakannya ke dalam ruang matematika virtual. Di ruang ini, item serupa—seperti kata, gambar, atau objek—ditempatkan berdekatan.
Misalnya, pertimbangkan kata “mantel” dan “jaket”. Penelusuran tradisional berbasis kata kunci tidak akan menghubungkan kedua kata ini sebagai kata yang mirip, karena hurufnya sangat berbeda. Sistem e-commerce yang ingin menggabungkan kata kunci ini harus melakukannya secara manual. Namun, representasi vektor dari kedua kata ini akan sangat mirip karena keduanya memiliki arti yang serupa, sehingga memberikan hasil penelusuran yang lebih akurat bagi pengguna dan menghemat waktu bagi developer.
Demikian pula, jika Anda mengambil dua foto kucing yang berbeda, piksel demi pikselnya mungkin sangat berbeda. Namun, embedding vektornya akan menempatkan keduanya sangat berdekatan dalam ruang matematika, sama seperti manusia yang akan dengan mudah mengidentifikasi keduanya sebagai gambar kucing:

Agar hal ini dapat berfungsi, model embedding mengubah data mentah—seperti gambar atau teks—menjadi embedding vektor. pgvector menyimpan embedding ini di database Anda. Saat pengguna mengirimkan kueri, input tersebut juga dikonversi menjadi vektor. pgvector kemudian menghitung jarak antara vektor kueri dan vektor yang disimpan untuk mengidentifikasi "tetangga terdekat" dengan skor kemiripan tertinggi secara efisien.
Ingin tahu berbagai jenis penelusuran tetangga terdekat? Lihat panduan pengembangan aplikasi AI generatif kami.
PostgreSQL adalah sistem manajemen database relasional open source yang tangguh dan dirancang untuk menangani data terstruktur menggunakan tabel, baris, dan kolom.
pgvector adalah ekstensi yang berjalan di dalam PostgreSQL. Ekstensi ini menambahkan “vektor”, jenis data baru, ke database, sehingga memungkinkan penyimpanan dan pemrosesan embedding vektor bersama data operasional standar Anda.
Tidak, pgvector adalah ekstensi yang terintegrasi langsung ke dalam database PostgreSQL yang sudah ada. Hal ini memungkinkan Anda menambahkan kemampuan penelusuran dan AI canggih tanpa mengelola infrastruktur baru atau terpisah.
Untuk mendukung fitur berbasis AI saat ini, Anda memerlukan kemampuan untuk menyimpan dan mengelola embedding vektor.
PostgreSQL dapat menjadi sangat canggih, tetapi karena datanya terstruktur secara kaku ke dalam tabel, baris, dan kolom, kemampuan kuerinya sebagian besar terbatas pada pencocokan kata kunci dan pola.
Dalam dunia AI, data kompleks seperti teks, gambar, dan audio dienkode sebagai representasi vektor. Encoding ini memungkinkan model AI memahami konteks dan hubungan semantik dalam data Anda, yang menjadi tulang punggung fitur seperti penelusuran cerdas, rekomendasi, dan AI generatif.
Ekstensi pgvector menghadirkan penelusuran semantik ke PostgreSQL, menggunakan embedding vektor untuk menemukan hasil berdasarkan makna kueri, bukan hanya pencocokan kata kunci seperti yang dilakukan SQL. Proses ini, yang dikenal sebagai penelusuran kemiripan, memudahkan Anda menambahkan kemampuan penelusuran lanjutan langsung ke aplikasi tanpa perlu merancang ulang atau memindahkan data ke database vektor terpisah.
Ingin mempelajari embedding vektor lebih lanjut? Lihat panduan pengembangan aplikasi AI generatif kami.
Dengan kemampuannya menangani vektor berdimensi tinggi, pgvector mendukung berbagai aplikasi canggih.
Pencocokan kata kunci dalam database relasional tradisional sering kali gagal mengidentifikasi koneksi yang bermakna dalam data. Penelusuran kemiripan membandingkan kedekatan vektor menggunakan metrik seperti jarak Euclidean dan jarak kosinus untuk menemukan pola yang lebih dalam, yang penting untuk aplikasi seperti pengenalan citra dan penelusuran semantik, yang hasilnya diberi peringkat berdasarkan makna. Dalam e-commerce, misalnya, penelusuran kesamaan memungkinkan rekomendasi produk dengan menganalisis perilaku pengguna dan menemukan item terkait.
Natural language processing berbasis vektor memungkinkan agen AI memahami konteks, sehingga menghasilkan percakapan yang lebih dipersonalisasi dan respons yang lebih akurat. Dukungan multibahasa meningkatkan performa mereka sebagai asisten virtual dan platform layanan pelanggan.
pgvector meningkatkan alur kerja AI dengan memungkinkan penyimpanan dan kueri embedding vektor, yang penting untuk mengidentifikasi pola yang tidak biasa dalam data. Dengan menganalisis kedekatan vektor, pgvector membantu mendeteksi anomali secara real time untuk pencegahan penipuan, keamanan jaringan, atau kontrol kualitas.
Analisis sentimen menganalisis maksud pesan, sehingga Anda dapat merutekan komentar negatif dengan tepat untuk tindakan yang lebih cepat, sehingga menghasilkan resolusi yang disesuaikan.
Dengan memanfaatkan skalabilitas, dukungan transaksi, dan keandalan PostgreSQL yang kuat, pgvector secara efisien mengelola set data berdimensi tinggi. Selain itu, penggunaan sintaksis SQL yang familiar membuatnya dapat diakses oleh tim yang sudah ada, sehingga tidak memerlukan alat atau infrastruktur tambahan yang didedikasikan untuk pengindeksan dan penelusuran vektor.
Mudah diintegrasikan ke dalam aplikasi berbasis PostgreSQL yang ada.
Meningkatkan skalabilitas PostgreSQL untuk set data yang terus bertambah.
Menawarkan fitur yang dapat disesuaikan seperti metrik jarak dan pengindeksan.
Mewarisi keamanan dan keandalan PostgreSQL yang tepercaya.
Memungkinkan Anda membuat kueri dengan lancar di seluruh data terstruktur dan tidak terstruktur.
Menyediakan solusi yang ramah developer untuk menangani data berskala besar dan berdimensi tinggi.
Untuk database tunggal yang unggul dalam kueri SQL tradisional dan penelusuran vertex modern, pertimbangkan AlloyDB untuk PostgreSQL. AlloyDB menggunakan algoritma penelusuran kemiripan vektor ScaNN (Scalable Nearest Neighbor) yang dikembangkan oleh Google, sehingga memberikan performa yang jauh lebih tinggi dibandingkan layanan PostgreSQL berbasis cloud lainnya untuk workload transaksional dan analitis dalam database besar.
Pelajari cara AlloyDB melakukan penelusuran simultan pada data terstruktur dan tidak terstruktur.
Cloud SQL dan AlloyDB untuk PostgreSQL mendukung pgvector, sehingga Anda dapat menyimpan dan mengkueri embedding vektor menggunakan perintah SQL standar.
Gunakan klien PostgreSQL pilihan Anda (seperti psql, pgAdmin, atau Konsol Google Cloud) untuk terhubung ke instance Cloud SQL atau AlloyDB Anda.
Jalankan perintah SQL berikut untuk mengaktifkan ekstensi di database Anda. Anda hanya perlu melakukan ini sekali per database.
Buat tabel baru (atau ubah tabel yang sudah ada) untuk menyertakan kolom bagi data vektor. Anda harus menentukan dimensi vektor. Misalnya, untuk membuat tabel guna menyimpan embedding 3 dimensi:
Anda dapat menyisipkan embedding vektor seperti data standar. Vektor diformat sebagai array yang diapit tanda kurung.
Anda kini dapat mengkueri data untuk menemukan tetangga terdekat. Operator <-> menghitung jarak Euclidean (jarak L2), yang umum digunakan untuk menemukan item yang paling mirip.
Untuk set data yang lebih besar, menambahkan indeks dapat mempercepat performa penelusuran secara signifikan. Indeks HNSW dan ScaNN adalah opsi yang umum digunakan. Berikut contoh HNSW:
Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari 20 produk yang selalu gratis.