Mengurus Ruang Nama
Fahami cara membahagikan data dalam satu indeks Pinecone menggunakan ruang nama untuk organisasi yang lebih baik.
Mengurus Ruang Nama ialah pelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector percuma di CoddyKit. Ini ialah pelajaran 2 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.
Apakah Ruang Nama Pinecone?
Selamat datang ke pengurusan ruang nama dalam Pinecone! Ruang nama adalah seperti pembahagian logik dalam satu indeks Pinecone.
Bayangkan ruang nama sebagai folder dalam direktori utama. Ruang nama membolehkan anda membahagikan data tanpa perlu mencipta indeks yang berasingan sepenuhnya.
Mengapa Menggunakan Ruang Nama?
Ruang nama amat berguna untuk menyusun data vektor anda, terutamanya dalam aplikasi yang kompleks:
- Pelbagai Penyewa: Asingkan data untuk pengguna atau pelanggan yang berbeza dalam satu indeks.
- Ujian A/B: Simpan versi benaman yang berbeza untuk eksperimen.
- Pengasingan Data: Pastikan set data yang berbeza kekal berasingan sambil menggunakan infrastruktur indeks yang sama.
- Pengkategorian: Kumpulkan vektor mengikut topik, sumber atau jenis.
Ruang Nama Lalai
Setiap indeks Pinecone mempunyai ruang nama lalai. Jika anda tidak menentukan ruang nama secara jelas semasa menggunakan upsert atau membuat pertanyaan, operasi anda akan berinteraksi dengan ruang nama lalai ini.
Ruang nama ini biasanya diwakili oleh rentetan kosong "" atau dengan tidak menyertakan parameter ruang nama.
Persediaan untuk Ruang Nama
Sebelum bekerja dengan ruang nama, pastikan klien Pinecone anda telah dimulakan. Kami menganggap anda telah menyediakan kunci API dan persekitaran, biasanya melalui pemboleh ubah persekitaran.
Berikut ialah persediaan asas untuk demonstrasi:
from pinecone import Pinecone
import os
def main():
# Replace with your actual API key and environment from environment variables
api_key = os.environ.get("PINECONE_API_KEY", "YOUR_API_KEY")
environment = os.environ.get("PINECONE_ENVIRONMENT", "YOUR_ENVIRONMENT")
if api_key == "YOUR_API_KEY" or environment == "YOUR_ENVIRONMENT":
print("Please set PINECONE_API_KEY and PINECONE_ENVIRONMENT env vars.")
return
pc = Pinecone(api_key=api_key, environment=environment)
print("Pinecone client initialized.")
if __name__ == "__main__":
main()Menggunakan Upsert Data ke dalam Ruang Nama
Untuk menambahkan vektor ke ruang nama tertentu, anda hanya perlu menyertakan parameter namespace dalam panggilan index.upsert() anda.
Contoh ini menggunakan upsert untuk memasukkan beberapa vektor ke dalam ruang nama bernama "product-recommendations".
from pinecone import Pinecone, Index
import os
def main():
api_key = os.environ.get("PINECONE_API_KEY", "YOUR_API_KEY")
environment = os.environ.get("PINECONE_ENVIRONMENT", "YOUR_ENVIRONMENT")
if api_key == "YOUR_API_KEY" or environment == "YOUR_ENVIRONMENT":
print("Please set PINECONE_API_KEY and PINECONE_ENVIRONMENT env vars.")
return
pc = Pinecone(api_key=api_key, environment=environment)
index_name = "my-product-index" # Ensure this index exists
if index_name not in pc.list_indexes():
print(f"Index '{index_name}' does not exist. Please create it first.")
return
index = pc.Index(index_name)
vectors_to_upsert = [
{"id": "item-1", "values": [0.1, 0.2, 0.3]}, # 3 dimensions for example
{"id": "item-2", "values": [0.4, 0.5, 0.6]}
]
# Upsert into a specific namespace
index.upsert(vectors=vectors_to_upsert, namespace="product-recommendations")
print("Vectors upserted into 'product-recommendations' namespace.")
if __name__ == "__main__":
main()Membuat Pertanyaan pada Ruang Nama Tertentu
Apabila anda mahu mendapatkan semula vektor daripada ruang nama tertentu, anda juga perlu menentukan parameter namespace dalam panggilan index.query() anda.
Ini memastikan carian anda terhad kepada segmen indeks tersebut.
from pinecone import Pinecone, Index
import os
def main():
api_key = os.environ.get("PINECONE_API_KEY", "YOUR_API_KEY")
environment = os.environ.get("PINECONE_ENVIRONMENT", "YOUR_ENVIRONMENT")
if api_key == "YOUR_API_KEY" or environment == "YOUR_ENVIRONMENT":
print("Please set PINECONE_API_KEY and PINECONE_ENVIRONMENT env vars.")
return
pc = Pinecone(api_key=api_key, environment=environment)
index_name = "my-product-index"
if index_name not in pc.list_indexes():
print(f"Index '{index_name}' does not exist. Please create it first.")
return
index = pc.Index(index_name)
query_vector = [0.15, 0.25, 0.35] # Example query vector
# Query within the 'product-recommendations' namespace
results = index.query(
vector=query_vector,
top_k=2,
namespace="product-recommendations",
include_values=False
)
print("Query results from 'product-recommendations' namespace:")
for match in results.matches:
print(f"ID: {match.id}, Score: {match.score}")
if __name__ == "__main__":
main()Memahami Skop Pertanyaan
Anda mesti ingat bahawa pertanyaan dalam Pinecone secara lalai adalah khusus mengikut ruang nama. Jika anda membuat pertanyaan tanpa menentukan ruang nama, carian hanya akan dilakukan dalam ruang nama lalai.
Tiada cara langsung untuk membuat pertanyaan merentasi semua ruang nama dengan satu panggilan API; anda perlu membuat pertanyaan pada setiap ruang nama secara berasingan jika mahu menggabungkan hasilnya.
Menyenaraikan Ruang Nama dalam Indeks
Untuk melihat ruang nama yang wujud dalam indeks anda pada masa ini serta statistiknya, anda boleh menggunakan kaedah index.describe_index_stats().
Kaedah ini mengembalikan ringkasan yang merangkumi peta ruang nama dan bilangan vektornya.
from pinecone import Pinecone, Index
import os
def main():
api_key = os.environ.get("PINECONE_API_KEY", "YOUR_API_KEY")
environment = os.environ.get("PINECONE_ENVIRONMENT", "YOUR_ENVIRONMENT")
if api_key == "YOUR_API_KEY" or environment == "YOUR_ENVIRONMENT":
print("Please set PINECONE_API_KEY and PINECONE_ENVIRONMENT env vars.")
return
pc = Pinecone(api_key=api_key, environment=environment)
index_name = "my-product-index"
if index_name not in pc.list_indexes():
print(f"Index '{index_name}' does not exist. Please create it first.")
return
index = pc.Index(index_name)
# Get index statistics
index_stats = index.describe_index_stats()
print("Namespaces in index:")
for ns, stats in index_stats.namespaces.items():
print(f"- Namespace: '{ns}', Vector Count: {stats.vector_count}")
if __name__ == "__main__":
main()Memadam Vektor daripada Ruang Nama
Anda boleh memadam vektor tertentu daripada ruang nama dengan memberikan IDnya bersama parameter namespace kepada index.delete().
Contoh ini memadam item tertentu daripada ruang nama "product-recommendations".
from pinecone import Pinecone, Index
import os
def main():
api_key = os.environ.get("PINECONE_API_KEY", "YOUR_API_KEY")
environment = os.environ.get("PINECONE_ENVIRONMENT", "YOUR_ENVIRONMENT")
if api_key == "YOUR_API_KEY" or environment == "YOUR_ENVIRONMENT":
print("Please set PINECONE_API_KEY and PINECONE_ENVIRONMENT env vars.")
return
pc = Pinecone(api_key=api_key, environment=environment)
index_name = "my-product-index"
if index_name not in pc.list_indexes():
print(f"Index '{index_name}' does not exist. Please create it first.")
return
index = pc.Index(index_name)
# Delete a specific vector by ID within a namespace
index.delete(ids=["item-1"], namespace="product-recommendations")
print("Vector 'item-1' deleted from 'product-recommendations' namespace.")
if __name__ == "__main__":
main()Memadam Seluruh Ruang Nama
Untuk mengalih keluar semua vektor dalam ruang nama tertentu, sekali gus memadam ruang nama itu sendiri, anda boleh menggunakan index.delete() dengan parameter namespace dan menetapkan delete_all=True.
Berhati-hati: Tindakan ini tidak boleh dibuat asal dan akan memadam semua data dalam ruang nama tersebut!
from pinecone import Pinecone, Index
import os
def main():
api_key = os.environ.get("PINECONE_API_KEY", "YOUR_API_KEY")
environment = os.environ.get("PINECONE_ENVIRONMENT", "YOUR_ENVIRONMENT")
if api_key == "YOUR_API_KEY" or environment == "YOUR_ENVIRONMENT":
print("Please set PINECONE_API_KEY and PINECONE_ENVIRONMENT env vars.")
return
pc = Pinecone(api_key=api_key, environment=environment)
index_name = "my-product-index"
if index_name not in pc.list_indexes():
print(f"Index '{index_name}' does not exist. Please create it first.")
return
index = pc.Index(index_name)
# Delete all vectors within a specific namespace
# This effectively removes the 'test-namespace' and all its contents
index.delete(namespace="test-namespace", delete_all=True)
print("All vectors in 'test-namespace' deleted. Namespace effectively removed.")
if __name__ == "__main__":
main()Semakan Pengetahuan Ruang Nama
Anda mempunyai indeks bernama "my-app-index". Anda menggunakan upsert untuk memasukkan vektor ke dalam ruang nama "user-1" dan "user-2". Jika anda kemudian memanggil index.query(vector=my_vec, top_k=5) tanpa menentukan namespace, apakah yang akan berlaku?
Imbas Kembali: Susun dengan Ruang Nama
Syabas! Anda telah mempelajari kuasa ruang nama Pinecone.
- Ruang nama membantu membahagikan data dalam satu indeks.
- Ruang nama amat sesuai untuk pelbagai penyewa dan ujian A/B.
- Operasi (upsert, query, delete) adalah khusus mengikut ruang nama.
- Ruang nama lalai digunakan jika tiada ruang nama ditentukan.
- Anda boleh menyenaraikan ruang nama sedia ada dan memadam seluruh ruang nama.
Penggunaan ruang nama yang berkesan memastikan data vektor anda tersusun dan mudah diurus!
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 “Mengurus Ruang Nama” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector, termasuk “Mengurus Ruang Nama”, 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 “Mengurus Ruang Nama”?
Fahami cara membahagikan data dalam satu indeks Pinecone menggunakan ruang nama untuk organisasi yang lebih baik. 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 2 daripada 4.
Berapa lamakah pelajaran “Mengurus Ruang Nama” 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
- Penapisan dengan Metadata
- Mengurus Ruang Nama
- Kemas Kini dan Pemadaman Masa Nyata
- Carian Hibrid dengan Vektor Jarang-Padat