Integrasi MongoDB Atlas dengan AI untuk carian vektor
Oleh Ai Flowi · Diterbitkan
Sumber rasmi: dokumentasi MongoDB Atlas Vector Search
Integrasi MongoDB Atlas dengan AI menyediakan URI kluster, pangkalan data, koleksi dan tetapan indeks vektor dalam AI Flowi Workflow. Konfigurasikan medan itu berdasarkan penempatan yang disediakan, sambungkan model pembenaman yang serasi, dan periksa hasil carian JSON atau Table. Antara muka ini berkaitan dengan pengambilan vektor dan pemasukan data, bukannya penyunting pertanyaan MongoDB umum.
Medan khusus Atlas mengenal pasti koleksi, medan vektor dan indeks carian. Panduan langkah demi langkah ini ialah contoh konfigurasi.
1. Kenal pasti penempatan dan indeks
Untuk Atlas, tentukan kebenaran pangkalan data yang diberikan oleh URI kluster sebelum menetapkan koleksi ujian.
Rekodkan pangkalan data dan koleksi yang dimaksudkan bersama nama indeks dan medan vektor. Ini ialah pemilih yang berbeza: koleksi mengenal pasti rekod, manakala tetapan indeks menerangkan sasaran carian. Eksport tidak membuktikan penyediaan indeks automatik atau membekalkan prosedur konfigurasi penyedia. Sahkan penempatan yang disediakan sebelum memberikannya kandungan sebenar.
Jangan sertakan URI sambungan dalam tangkapan skrin yang disalin dan contoh aliran awam. Ia boleh mengandungi maklumat pengesahan sensitif. Jika persekitaran anda menggunakan sijil klien, tentukan cara membekalkan sijil itu secara peribadi dan cara menyelenggarakannya sebelum mengaktifkan suis yang berkaitan.
2. Semak semua input Atlas
Antara muka Atlas mempunyai tetapan indeks yang lebih jelas berbanding antara muka PGVector. Penanda wajibnya termasuk dimensi dan suis mTLS; “wajib” tidak bermaksud mTLS mesti diaktifkan.
Contoh berdasarkan katalog; belum diuji oleh Ai Flowi dalam persekitaran pengeluaran.
| Medan | Perkara untuk diputuskan | Jenis / wajib | Jenis sambungan / pilihan |
|---|---|---|---|
collection_name | Gunakan pengenal koleksi yang dimaksudkan dalam pangkalan data yang dipilih. | str / Ya | Atlas: input_types tidak disertakan |
db_name | Sahkan skop pangkalan data secara berasingan daripada nama koleksi. | str / Ya | Atlas: input_types tidak disertakan |
embedding | Sambungkan objek Embeddings yang serasi dengan vektor yang disediakan; penandanya ialah pilihan dalam eksport. | other / Tidak | Sambungan Atlas: Embeddings |
enable_mtls | Tetapkan boolean wajib ini dengan sengaja mengikut persediaan sambungan yang telah disahkan. | bool / Ya | Atlas: input_types tidak disertakan |
filter_field | Pilih hanya medan yang telah disahkan dalam konfigurasi indeks; tatabahasa penapis tidak didokumenkan. | str / Tidak | Atlas: input_types tidak disertakan |
index_field | Namakan medan vektor yang dimaksudkan dan sahkan susun aturnya dalam rekod yang disediakan. | str / Ya | Atlas: input_types tidak disertakan |
index_name | Gunakan pengenal indeks vektor yang disediakan; jangan simpulkan penciptaan indeks daripada tetapan ini. | str / Ya | Atlas: input_types tidak disertakan |
ingest_data | Sambungkan Data, DataFrame atau Table hanya selepas tingkah laku pemasukan data disemak. | other / Tidak | Sambungan Atlas: Data, DataFrame, Table |
insert_mode | Pilih "append" atau "overwrite" dengan berhati-hati; skop yang terjejas dan tingkah laku pelaksanaan berulang tidak dinyatakan. | str / Tidak | Atlas: input_types tidak disertakan; pilihan: “append”, “overwrite” |
mongodb_atlas_client_cert | Bekalkan bahan sijil peribadi hanya dalam format yang diterima oleh persekitaran yang dikonfigurasi. | str / Tidak | Atlas: input_types ialah [] |
mongodb_atlas_cluster_uri | Masukkan URI sambungan kluster yang dibenarkan secara peribadi dan samarkan nilainya dalam artifak yang dikongsi. | str / Ya | Atlas: input_types ialah [] |
number_dimensions | Padankan representasi tersimpan yang telah disahkan; tiada nilai dimensi sejagat dibekalkan di sini. | int / Ya | Atlas: input_types tidak disertakan |
number_of_results | Gunakan bilangan hasil yang terbatas untuk pemeriksaan carian awal. | int / Tidak | Atlas: input_types tidak disertakan |
quantization | Pilihan yang disenaraikan ialah "scalar" dan "binary"; sahkan keserasian sebelum memilih mana-mana satu. | str / Tidak | Atlas: input_types tidak disertakan; pilihan: “scalar”, “binary” |
search_query | Bekalkan soalan pengambilan melalui medan pertanyaan yang serasi dengan Message. | query / Tidak | Sambungan Atlas: Message |
should_cache_vector_store | Semak sejauh mana data terkini selepas perubahan koleksi atau kelayakan; tingkah laku cache tidak dinyatakan. | bool / Tidak | Atlas: input_types tidak disertakan |
similarity | Padankan indeks yang disediakan menggunakan "cosine", "euclidean" atau "dotProduct" mengikut kesesuaian. | str / Tidak | Atlas: input_types tidak disertakan; pilihan: “cosine”, “euclidean”, “dotProduct” |
3. Selesaikan dimensi dan keserupaan sebelum carian
Latar belakang konsep diterangkan dalam pembenaman teks; keputusan Atlas di sini ialah tetapan indeks jelas yang perlu dimasukkan.
Salin number_dimensions daripada persediaan yang telah disahkan untuk index_field yang dipilih, kemudian selaraskan similarity dengan konfigurasi indeks itu yang direkodkan. Pilihan tepat ialah "cosine", "euclidean" dan "dotProduct". Kekalkan penggunaan huruf besar dan kecil itu: tetapan yang disalin daripada penyedia lain mungkin menggunakan label berbeza. Jika koleksi mempunyai beberapa calon medan vektor, kenal pasti medan yang dimaksudkan sebelum menetapkan dimensi; nama koleksi sahaja tidak mencukupi untuk memilihnya.
Semak quantization secara berasingan, menggunakan pilihan yang dieksport "scalar" atau "binary" hanya selepas memeriksa indeks yang disediakan. Penanda pilihannya tidak membekalkan nilai lalai atau bukti bahawa mengubahnya akan membina semula rekod sedia ada. Simpan rekod konfigurasi sebelum dan selepas apabila menyiasat pilihan berbeza, dan bandingkan petikan sumber yang diketahui dan bukannya menjanjikan penjimatan memori atau ketepatan berdasarkan label itu. Katalog mengenal pasti penyedia pembenaman untuk sambungan model berasingan.
4. Konfigurasikan satu pengambilan sintetik
- Pilih koleksi yang boleh dibuang dengan bahan sumber yang diketahui dan sahkan indeks vektornya sedia dalam persekitaran anda sendiri.
- Tambah MongoDB Atlas, tetapkan
mongodb_atlas_cluster_urisecara peribadi, dan isidb_name,collection_name,index_namedanindex_fielddaripada persediaan itu. - Tetapkan
number_dimensionskepada saiz representasi yang disahkan danenable_mtlskepada mod sambungan yang telah disahkan. Jika diaktifkan, konfigurasikanmongodb_atlas_client_certseperti yang diperlukan oleh persekitaran anda. - Sambungkan komponen pembenaman yang sepadan kepada
embedding, masukkan soalan pengambilan khusus koleksi dalamsearch_query, dan pilih3untuknumber_of_resultssebagai had pemeriksaan yang dicadangkan. - Asingkan pemasukan data daripada siasatan awal. Periksa keadaan pangkalan data serta output carian kerana membiarkan pemasukan data tanpa sambungan belum membuktikan bahawa rekod Atlas kekal tidak berubah.
- Semak rujukan sumber yang dikembalikan dan sama ada hasil tergolong dalam koleksi yang dimaksudkan sebelum menghantar sebarang teks kepada nod lain.
5. Periksa port penerima dan muatan
Port pengambilan Atlas ialah JSON (search_results) dan Table (dataframe). Jenis ini menetapkan keserasian port, bukannya skema hasil yang tetap. Kunci hasil mahupun lajur jadual tidak disertakan dalam eksport.
Output yang dikehendaki ialah kandungan yang diambil daripada koleksi yang disediakan dan boleh diperiksa. Tentukan medan teks dan rujukan sebenarnya dalam pelaksanaan sintetik sebelum membina respons. Jika anda menggunakan penapis kemudian, sahkan bahawa ia mengubah rekod yang dipilih seperti yang dimaksudkan; pemilih filter_field Atlas tidak dapat membuktikan penguatkuasaan setiap kebenaran pembaca.
Batas penyisipan dan percubaan semula
insert_mode menawarkan "append" dan "overwrite". Nama tersebut perlu disemak sebelum menyambungkan data sumber, khususnya apabila koleksi sedia ada mengandungi bahan yang mesti dikekalkan. Skop penimpaan Atlas tiada dalam kontrak yang dieksport: ia mungkin melibatkan item, kelompok atau sumber yang lebih luas, jadi contoh ini tidak membuat dakwaan pemadaman.
Uji pemasukan data secara berasingan dengan rekod yang boleh dibuang. Periksa penghantaran berulang dan pelaksanaan yang terganggu sebelum memutuskan sama ada percubaan semula automatik boleh diterima. Tiada medan katalog membekalkan kunci idempotensi, dan tiada port output ralat berasingan dieksport untuk komponen ini.
Bilakah antara muka MongoDB Atlas ini tidak sesuai?
Gunakan laluan lain untuk tugas CRUD MongoDB biasa atau pengendalian peristiwa; tindakan itu tidak didokumenkan oleh medan stor vektor ini. Elakkan penggunaan dalam persekitaran pengeluaran apabila keserasian indeks, pengendalian sijil atau skop bacaan tidak diketahui. Halaman ini tidak membekalkan ukuran kualiti pengambilan atau jaminan pengasingan yang selamat.
Halaman Pinecone mendokumenkan kontrak penyedia berbeza dengan pemilih indeks dan ruang nama. Bandingkan batas konfigurasi yang khusus itu dan bukannya menganggap nama medan satu penyedia boleh digunakan semula dalam Atlas. Direktori integrasi memautkan perkhidmatan berkaitan.
Pertimbangan penggunaan
Penggunaan perkhidmatan Atlas dan panggilan pembenaman luaran mengikut aturan penyedia anda sendiri. Kira nod dan percubaan semula yang diperhatikan dalam aliran kerja dan bukannya menganggap bilangan hasil atau tetapan dimensi sebagai jumlah penggunaan.