Pangkalan Data Vektor: Pinecone, Weaviate & pgvector · Pelajaran

Kemas Kini dan Pemadaman Masa Nyata

Pelajari teknik mengendalikan data dinamik, termasuk kemas kini dan pemadaman vektor masa nyata yang cekap.

Pelajaran 3 daripada 412 langkah

Kemas Kini dan Pemadaman Masa Nyata ialah pelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pangkalan Data Vektor: Pinecone, Weaviate & pgvector merangkumi sejumlah 4 pelajaran.

Mengendalikan Data Vektor Dinamik

Dalam aplikasi dunia sebenar, data tidak statik. Data sentiasa berubah! Ini bermakna vektor yang mewakili data anda juga perlu dikemas kini atau dialih keluar daripada pangkalan data vektor anda.

Bayangkan katalog produk yang harganya berubah atau profil pengguna yang pilihannya berkembang. Pangkalan data vektor anda mesti mencerminkan perubahan ini supaya kekal tepat.

Mengapa Perubahan Masa Nyata Penting

Kemas kini dan pemadaman masa nyata amat penting untuk mengekalkan integriti dan kerelevanan aplikasi anda:

  • Ketepatan: Memastikan hasil carian anda sentiasa berdasarkan data yang paling terkini.
  • Kerelevanan: Memastikan pengesyoran dan maklumat kontekstual sentiasa terkini untuk pengguna.
  • Tadbir Urus Data: Mematuhi dasar penyimpanan data atau permintaan pengguna untuk memadam data peribadi (contohnya, 'hak untuk dilupakan').

Kemas Kini Penuh Vektor dan Metadata

Untuk menggantikan sepenuhnya nilai benaman vektor sedia ada dan metadata yang berkaitan dengannya dalam Pinecone, anda menggunakan kaedah upsert().

Jika vektor dengan ID yang sama sudah wujud dalam indeks anda, upsert() akan menulis ganti nilai vektor dan metadata sedia ada dengan nilai baharu yang anda berikan. Jika tiada vektor dengan ID tersebut, vektor itu akan dimasukkan sebagai entri baharu.

Contoh: Menggantikan Vektor

Jika penerangan sesuatu produk berubah dengan ketara, benamannya mungkin perlu digantikan sepenuhnya. Kami menggunakan upsert() dengan ID sedia ada untuk mengemas kini vektor dan metadatanya.

from pinecone import Pinecone, Index
import os

# For this example, we'll use a mock class instead of actual Pinecone connection
# In a real app, replace with: 
# pc = Pinecone(api_key=os.environ.get("PINECONE_API_KEY"), environment=os.environ.get("PINECONE_ENVIRONMENT"))
# index = pc.Index("your-index-name")

class MockPineconeIndex:
    def upsert(self, vectors):
        print(f"Upserting vectors: {vectors}")

index = MockPineconeIndex() 

# Assume 'product-123' already exists with an old vector and metadata
print("--- Before Update (Conceptual) ---")
print("Vector 'product-123' has old values and metadata.")

# New vector values and metadata for 'product-123'
new_vector_values = [0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2] # Example 8-dim vector
new_metadata = {"category": "electronics", "price": 129.99, "status": "updated"}

# Use upsert to fully replace the vector and metadata for 'product-123'
index.upsert(
    vectors=[
        {"id": "product-123", "values": new_vector_values, "metadata": new_metadata}
    ]
)

print("\n--- After Update (Conceptual) ---")
print("Vector 'product-123' now has new values and metadata, replacing old ones.")

Kemas Kini Separa dengan `update()`

Adakalanya anda hanya perlu mengubah metadata vektor, atau mungkin hanya nilai vektornya tanpa menyentuh metadata. Pinecone menyediakan kaedah update() untuk pengubahsuaian separa ini.

Menggunakan update() lebih cekap daripada upsert() apabila anda hanya mempunyai perubahan separa, kerana anda hanya menghantar data yang berubah dan bukannya menggantikan keseluruhan entri.

Contoh: Mengemas Kini Metadata Sahaja

Untuk mengemas kini metadata sahaja bagi vektor sedia ada, anda menggunakan kaedah update(). Anda memberikan ID vektor dan parameter set_metadata bersama metadata baharu. Nilai vektor sedia ada tidak akan berubah.

from pinecone import Pinecone, Index
import os

# Mock class for Pinecone's update method
class MockPineconeIndexUpdate:
    def update(self, id, values=None, set_metadata=None):
        print(f"Updating vector ID: {id}")
        if values: print(f"  New values provided (vector will be replaced): {values}")
        if set_metadata: print(f"  Setting metadata: {set_metadata}")

index_update = MockPineconeIndexUpdate() # Replace with pc.Index("your-index-name")

# Assume 'product-456' exists with vector and metadata like {'stock': 10, 'color': 'blue'}
print("--- Before Metadata Update (Conceptual) ---")
print("Vector 'product-456' has existing metadata.")

# Update only the stock count for 'product-456'
updated_metadata = {"stock": 5, "last_checked": "2023-10-27"}

index_update.update(id="product-456", set_metadata=updated_metadata)

print("\n--- After Metadata Update (Conceptual) ---")
print("Vector 'product-456' now has updated stock and last_checked metadata. Other metadata and vector values are unchanged.")

Memadam Vektor dalam Pinecone

Mengalih keluar vektor daripada indeks Pinecone anda ialah operasi yang biasa dilakukan. Pinecone menawarkan cara yang fleksibel untuk memadam vektor:

  • Menggunakan satu atau lebih ID tertentu.
  • Mengikut padanan penapis metadata.
  • Memadam semua vektor dalam indeks atau ruang nama tertentu.

Fungsi ini penting untuk kebersihan data, mengurus maklumat yang sudah lapuk dan mematuhi peraturan privasi.

Contoh: Memadam Satu Vektor

Cara paling mudah untuk memadam vektor ialah menggunakan ID uniknya. Anda menghantar senarai yang mengandungi satu atau lebih ID kepada kaedah delete().

from pinecone import Pinecone, Index
import os

# Mock class for Pinecone's delete method
class MockPineconeIndexDelete:
    def delete(self, ids=None, delete_all=False, filter=None):
        if ids: print(f"Deleting vectors with IDs: {ids}")
        elif delete_all: print("Deleting all vectors.")
        elif filter: print(f"Deleting vectors with filter: {filter}")

index_delete = MockPineconeIndexDelete() # Replace with pc.Index("your-index-name")

# Assume 'user-profile-789' exists in the index
print("--- Before Deletion (Conceptual) ---")
print("Vector 'user-profile-789' is present.")

# Delete a single vector by its ID
index_delete.delete(ids=["user-profile-789"])

print("\n--- After Deletion (Conceptual) ---")
print("Vector 'user-profile-789' has been removed from the index.")

Memadam Banyak Vektor Mengikut Penapis

Walaupun anda boleh memadam berbilang vektor dengan memberikan senarai ID, satu ciri yang berkuasa ialah memadam vektor berdasarkan penapis metadata.

Ini membolehkan anda mengalih keluar semua vektor yang sepadan dengan kriteria metadata tertentu dengan cekap, seperti semua produk daripada kategori tertentu atau semua profil pengguna yang tidak aktif, tanpa mengetahui ID individu mereka.

Contoh: Memadam dengan Penapis

Andaikan kita mahu mengalih keluar semua vektor yang berkaitan dengan produk yang ditandakan sebagai 'out_of_stock'. Kita boleh menggunakan objek penapis dalam kaedah delete().

from pinecone import Pinecone, Index
import os

# Mock class for Pinecone's delete method
class MockPineconeIndexDelete:
    def delete(self, ids=None, delete_all=False, filter=None):
        if ids: print(f"Deleting vectors with IDs: {ids}")
        elif delete_all: print("Deleting all vectors.")
        elif filter: print(f"Deleting vectors with filter: {filter}")

index_delete = MockPineconeIndexDelete() # Replace with pc.Index("your-index-name")

# Assume several products exist, some with 'status': 'out_of_stock'
print("--- Before Filtered Deletion (Conceptual) ---")
print("Vectors for products with status 'out_of_stock' are present.")

# Delete all vectors where the 'status' metadata is 'out_of_stock'
index_delete.delete(filter={
    "status": "out_of_stock"
})

print("\n--- After Filtered Deletion (Conceptual) ---")
print("All vectors for 'out_of_stock' products have been removed.")

Semak Pemahaman Anda

Antara pernyataan berikut, yang manakah tentang mengemas kini dan memadam vektor dalam Pinecone adalah TRUE?

Imbas Kembali dan Langkah Seterusnya

Syabas! Anda telah belajar memastikan indeks Pinecone anda dinamik dan sentiasa terkini.

  • Kami meneroka cara upsert() melakukan penggantian penuh vektor dan metadata.
  • Anda melihat cara kaedah update() digunakan untuk perubahan separa yang cekap, terutamanya bagi metadata.
  • Akhir sekali, kami membincangkan pelbagai cara untuk memadam vektor, termasuk mengikut ID dan menggunakan penapis metadata yang berkuasa.

Operasi ini penting untuk mengurus set data yang berubah dalam aplikasi AI dunia sebenar.

Percuma untuk bermula

Pelajari Pangkalan Data Vektor: Pinecone, Weaviate & pgvector dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Kemas Kini dan Pemadaman Masa Nyata” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector, termasuk “Kemas Kini dan Pemadaman Masa Nyata”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pangkalan Data Vektor: Pinecone, Weaviate & pgvector merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Kemas Kini dan Pemadaman Masa Nyata”?

Pelajari teknik mengendalikan data dinamik, termasuk kemas kini dan pemadaman vektor masa nyata yang cekap. Anda berlatih Pangkalan Data Vektor: Pinecone, Weaviate & pgvector menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Pangkalan Data Vektor: Pinecone, Weaviate & pgvector?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Kemas Kini dan Pemadaman Masa Nyata” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector ini?

Ya. Setiap pelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Penapisan dengan Metadata
  2. Mengurus Ruang Nama
  3. Kemas Kini dan Pemadaman Masa Nyata
  4. Carian Hibrid dengan Vektor Jarang-Padat
← Kembali ke Pangkalan Data Vektor: Pinecone, Weaviate & pgvector