Cara guna PGVector untuk carian vektor PostgreSQL
Oleh Ai Flowi · Diterbitkan
Sumber rasmi: repositori rasmi pgvector
Cara guna PGVector untuk carian vektor PostgreSQL melibatkan sambungan pangkalan data, nama koleksi dan model pembenaman untuk mengambil kandungan berkaitan. Nod PGVector dalam AI Flowi Workflow menyediakan tetapan itu bersama medan pemasukan data dan carian pilihan. Ia ialah antara muka stor vektor, berasingan daripada memasukkan SQL dalam komponen SQL Database.
PGVector didokumenkan dalam katalog; belum diuji dalam persekitaran pengeluaran oleh Ai Flowi. Input koleksi dan pembenaman yang wajib membezakan kontrak pengambilan PostgreSQL ini. Persediaan carian yang dicadangkan ialah contoh konfigurasi, bukan ujian yang direkodkan.
1. Tentukan batas pangkalan data
Minta pentadbir pangkalan data mengesahkan keupayaan vektor, susun atur koleksi dan URL sambungan peribadi untuk persekitaran itu.
Katalog tidak memasang modul tambahan PostgreSQL, menyediakan pelayan atau menyenaraikan pemacu yang serasi. Ia juga tidak mentakrifkan jadual fizikal sesuatu koleksi. Minta koleksi ujian yang telah disediakan dan bukannya meneka nama jadual daripada collection_name. Sahkan akses rangkaian dan keselamatan sambungan di luar contoh sebelum menambah dokumen sebenar.
Pengambilan vektor mencari representasi kandungan dan bukannya sekadar memadankan medan tepat. Perbezaan itu penting apabila pengguna memerlukan rekod yang tepat: carian pengenal biasa mungkin lebih sesuai. Rujukan SQL Database sedia ada menerangkan antara muka pertanyaannya; halaman ini menumpukan kontrak koleksi dan pembenaman PGVector.
2. Konfigurasikan medan koleksi dan sambungan
Tidak seperti beberapa komponen vektor lain, PGVector menandai embedding sebagai wajib selain koleksi dan URL pelayan. Tujuh input yang dieksport disenaraikan di bawah.
| Medan | Perkara untuk diputuskan | Jenis / wajib | Jenis sambungan / pilihan |
|---|---|---|---|
collection_name | Kenal pasti koleksi ujian yang disediakan; jangan anggap nilai ini sebagai nama jadual SQL. | str / Ya | PGVector: input_types tidak disertakan |
embedding | Bekalkan sambungan Embeddings wajib yang serasi dengan kandungan tersimpan. | other / Ya | Sambungan PGVector: Embeddings |
ingest_data | Gunakan input Data, DataFrame atau Table pilihan ini hanya selepas menyemak tingkah laku penyisipan. | other / Tidak | Sambungan PGVector: Data, DataFrame, Table |
number_of_results | Pilih bilangan hasil yang boleh diperiksa, kemudian sahkan hasil kosong dan hasil yang kurang daripada bilangan diminta. | int / Tidak | PGVector: input_types tidak disertakan |
pg_server_url | Tetapkan URL sambungan peribadi; samarkan nilainya kerana rentetan sambungan boleh mengandungi kelayakan. | str / Ya | PGVector: input_types ialah [] |
search_query | Bekalkan pertanyaan yang serasi dengan Message dan menerangkan kandungan yang ingin dicari. | query / Tidak | Sambungan PGVector: Message |
should_cache_vector_store | Pilih tetapan ini dengan sengaja; penyambungan semula PGVector dan pembatalan cache masih tidak dinyatakan. | bool / Tidak | PGVector: input_types tidak disertakan |
3. Sambungkan model pembenaman yang sepadan
- Sahkan model dan representasi yang digunakan semasa koleksi ujian diisi. Rekodkan konfigurasi itu bersama nama koleksi kerana model pembenaman berbeza mengubah persoalan keserasian koleksi.
- Tambah OpenAI Embeddings hanya apabila ia sepadan dengan persediaan itu. Tetapkan
openai_api_keydalam tetapan peribadi, pilihmodel, dan semakdimensionsjika koleksi yang disediakan bergantung padanya. Katalog menyenaraikan medan itu tanpa nilai serasi sejagat. - Sambungkan output
embeddingsnya kepada inputembeddingPGVector yang wajib, kemudian simpan nilai koleksi dan sambungan bersama dalam catatan konfigurasi. - Masukkan
pg_server_urlanda sendiri, tetapkancollection_namekepada koleksi sintetik, dan pilihnumber_of_resultssebagai3untuk pemeriksaan kecil. Bilangan ini ialah tetapan contoh, bukannya hasil yang diukur. - Bekalkan
search_queryyang sumber dijangkanya diketahui. Mulakan tanpa sambungan pemasukan data dan periksa hasil aliran kerja serta keadaan pangkalan data sebelum menganggap pelaksanaan itu tidak membuat perubahan. - Ulang semakan dengan soalan yang tidak berkaitan dengan kandungan sintetik. Tentukan cara langkah penerima mengendalikan hasil tidak relevan atau kosong sebelum menyediakan carian kepada pengguna.
Selesaikan kelayakan model melalui sambungan model sebelum menggunakan langkah pembenaman; pengesahan PostgreSQL hanya meliputi pangkalan data.
4. Pilih JSON atau Table sebagai batas output
PGVector menyatakan dua batas penerimaan: JSON melalui search_results, atau Table melalui dataframe. Itulah satu-satunya port hasil yang dinyatakan. Katalog tidak memberikan nama lajur, susun atur metadata atau hasil ralat. Periksa hasil itu sendiri sebelum menghantarnya kepada pemformat, penapis atau model yang menjawab.
Output yang berguna mengandungi kandungan sumber yang diambil dan boleh disemak terhadap rekod pangkalan data anda. Simpan rujukan kepada dokumen asal apabila susun atur storan membenarkannya. Jangan reka medan score, id atau text dalam nod penerima; pilih kunci sebenar daripada pelaksanaan sintetik anda.
Semak pemasukan data sebelum membenarkan penulisan
Kehadiran ingest_data menunjukkan antara muka pemasukan data, tetapi tidak mentakrifkan protokol kemas kini. Eksport tidak membekalkan pemilih mod penyisipan, tetapan transaksi, kunci pendua atau kawalan pengunduran untuk PGVector. Uji input sintetik yang sama dua kali dan periksa koleksi untuk mengetahui sama ada pelaksanaan menambah, menggantikan atau menolak rekod.
Terapkan kebenaran pangkalan data pada batas operasi sebenar. Label koleksi tidak membuktikan kebenaran akses antara pasukan, dan sambungan yang berjaya mungkin mempunyai lebih banyak keistimewaan daripada yang dimaksudkan. Kekalkan perubahan skema dan persediaan modul tambahan di bawah pentadbiran pangkalan data dan bukannya menggambarkan nod ini sebagai alat penyediaan.
Bilakah PGVector tidak sesuai?
Jangan gunakan konfigurasi ini sebagai penyunting SQL biasa, sandaran pangkalan data atau penala indeks automatik. Tiada medan PGVector yang dieksport menerima pertanyaan SQL atau menyatakan pengikatan parameter SQL. Ketepatan carian, versi modul tambahan yang disokong, pengumpulan sambungan, tingkah laku TLS dan semantik penulisan serentak kekal di luar bukti katalog.
Rujuk pembenaman teks untuk penerangan bersama tentang perubahan model dan keserasian representasi.
Untuk siasatan PGVector, simpan koleksi yang boleh dibuang pada pelayan sama yang telah disediakan sebagai sasaran perbandingan berasingan. Andaikan koleksi yang dimaksudkan mengandungi catatan penyelenggaraan manakala koleksi perbandingan mengandungi catatan pembelian: soalan penyelenggaraan yang diketahui tidak boleh diterima hanya kerana sambungan berjaya dan rekod pembelian muncul. Semak collection_name yang dikonfigurasi, identiti pangkalan data dan sumber yang dikembalikan bersama. Ini mengasingkan kesilapan pemilihan sumber sebelum anda menyiasat kerelevanan atau pemasukan data.
Integrasi Pinecone menggunakan API penyedia dan bukannya URL sambungan PostgreSQL ini; Confluence berkaitan dengan sumber wiki yang boleh disemak secara berasingan untuk pemasukan data.
Andaian penggunaan
Setiap pelaksanaan nod menggunakan 1 Flowi Token. Token yang disertakan setiap bulan: Go 5,000; Plus 10,000; Pro 100 50,000; Pro 200 100,000; Pro 500 250,000. Tempah demo
Peruntukkan bajet pengehosan pangkalan data dan panggilan pembenaman mengikut aturan penyedia anda sendiri, kemudian kira nod yang benar-benar dilaksanakan dalam aliran kerja. Baris hasil bukan pelaksanaan nod. Katalog dan direktori integrasi menyediakan rujukan komponen dan perkhidmatan yang berkaitan.