Insérer ou mettre à jour des données dans Pinecone
Maîtrisez l’insertion et la mise à jour de données vectorielles, ainsi que de leurs métadonnées associées, dans votre index Pinecone.
Insérer ou mettre à jour des données dans Pinecone est une leçon Vector Databases: Pinecone, Weaviate & pgvector gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Vector Databases: Pinecone, Weaviate & pgvector, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Vector Databases: Pinecone, Weaviate & pgvector comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
What is Upserting Data?
In vector databases like Pinecone, upserting is a key operation. It's a blend of 'update' and 'insert'.
- If a vector with a given ID doesn't exist, it's inserted.
- If it already exists, the existing vector (and its metadata) is updated with the new data.
This single operation simplifies managing dynamic vector data without needing to check for existence first.
Connecting to Your Pinecone Index
Before we upsert, you need to connect to your Pinecone index. This involves initializing the Pinecone client and selecting your target index.
Remember to replace YOUR_API_KEY and YOUR_ENVIRONMENT with your actual credentials, typically loaded from environment variables.
import os
from pinecone import Pinecone
# Initialize Pinecone client
pc = Pinecone(
api_key=os.environ.get("PINECONE_API_KEY", "YOUR_API_KEY"),
environment=os.environ.get("PINECONE_ENVIRONMENT", "YOUR_ENVIRONMENT")
)
# Connect to your index (e.g., 'my-index')
index_name = "my-index"
index = pc.Index(index_name)
print(f"Connected to index: {index_name}")Upserting a Single Vector
To upsert a single vector, you provide a unique id and the vector data (a list of floats). Each vector needs an ID for Pinecone to identify it.
The dimension of the vector must match the dimension configured for your Pinecone index (e.g., 3 for our simple examples).
Demo: Single Vector Upsert
Here's how to insert a single vector into your index. We'll use a simple 3-dimensional vector for demonstration.
import os
from pinecone import Pinecone
pc = Pinecone(
api_key=os.environ.get("PINECONE_API_KEY", "YOUR_API_KEY"),
environment=os.environ.get("PINECONE_ENVIRONMENT", "YOUR_ENVIRONMENT")
)
index = pc.Index("my-index") # Assuming 'my-index' exists
# Upsert a single vector
index.upsert(
vectors=[
{"id": "vec1", "values": [0.1, 0.2, 0.3]}
]
)
print("Single vector 'vec1' upserted!")Efficient Batch Upserts
For better performance, it's highly recommended to upsert multiple vectors in batches rather than one by one. This reduces network overhead.
You can prepare a list of dictionaries, where each dictionary represents a vector with its id and values.
Demo: Batch Upserting Vectors
This example shows how to upsert several vectors at once. Notice the vectors parameter takes a list of vector objects.
import os
from pinecone import Pinecone
pc = Pinecone(
api_key=os.environ.get("PINECONE_API_KEY", "YOUR_API_KEY"),
environment=os.environ.get("PINECONE_ENVIRONMENT", "YOUR_ENVIRONMENT")
)
index = pc.Index("my-index") # Assuming 'my-index' exists
# Prepare multiple vectors for batch upsert
batch_vectors = [
{"id": "vec2", "values": [0.4, 0.5, 0.6]},
{"id": "vec3", "values": [0.7, 0.8, 0.9]},
{"id": "vec4", "values": [0.11, 0.12, 0.13]}
]
# Upsert the batch
index.upsert(vectors=batch_vectors)
print("Batch of vectors upserted!")Adding Metadata to Vectors
Metadata allows you to store additional key-value pairs alongside your vectors. This is incredibly useful for filtering search results later.
Metadata can include properties like a document's title, author, category, or creation date. It's stored as a dictionary within each vector object.
Demo: Upsert with Metadata
Let's add some context to our vectors using metadata. This makes them much more powerful for real-world applications.
import os
from pinecone import Pinecone
pc = Pinecone(
api_key=os.environ.get("PINECONE_API_KEY", "YOUR_API_KEY"),
environment=os.environ.get("PINECONE_ENVIRONMENT", "YOUR_ENVIRONMENT")
)
index = pc.Index("my-index") # Assuming 'my-index' exists
# Upsert a vector with metadata
index.upsert(
vectors=[
{
"id": "doc1",
"values": [0.2, 0.3, 0.4],
"metadata": {"genre": "sci-fi", "year": 2023}
},
{
"id": "doc2",
"values": [0.5, 0.6, 0.7],
"metadata": {"genre": "fantasy", "author": "J. Doe"}
}
]
)
print("Vectors 'doc1' and 'doc2' upserted with metadata!")How Upsert Handles Updates
The 'update' part of 'upsert' means that if you try to upsert a vector with an id that already exists in your index, Pinecone won't create a new entry.
Instead, it will overwrite the existing vector's values and metadata with the new data you provide. This ensures data consistency and avoids duplicates.
Upserting Knowledge Check
You've learned about upserting. Let's check your understanding!
Recap: Mastering Upserts
Great job! You've learned the essentials of upserting data into Pinecone:
- Upsert = Update + Insert: A single operation for adding new or modifying existing vectors.
- IDs are Key: Each vector requires a unique ID for identification and updates.
- Batching for Performance: Always upsert multiple vectors in batches for efficiency.
- Metadata for Context: Add key-value pairs to vectors for powerful filtering and search.
- Updates are Automatic: Upserting with an existing ID overwrites the old vector.
Next, we'll explore how to query these vectors to find similar items!
Questions Fréquemment Posées
La leçon « Insérer ou mettre à jour des données dans Pinecone » est-elle gratuite ?
Oui — le texte complet de « Insérer ou mettre à jour des données dans Pinecone » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Vector Databases: Pinecone, Weaviate & pgvector, passe à CoddyKit PRO. Le cours Vector Databases: Pinecone, Weaviate & pgvector comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Insérer ou mettre à jour des données dans Pinecone » ?
Maîtrisez l’insertion et la mise à jour de données vectorielles, ainsi que de leurs métadonnées associées, dans votre index Pinecone. Tu pratiques Vector Databases: Pinecone, Weaviate & pgvector avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Vector Databases: Pinecone, Weaviate & pgvector ?
Aucune expérience préalable n'est requise. Vector Databases: Pinecone, Weaviate & pgvector sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Insérer ou mettre à jour des données dans Pinecone » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Vector Databases: Pinecone, Weaviate & pgvector ?
Oui. Chaque leçon Vector Databases: Pinecone, Weaviate & pgvector inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Créer un index Pinecone
- Insérer ou mettre à jour des données dans Pinecone
- Interroger des données vectorielles dans Pinecone
- Comprendre la tarification et les pods de Pinecone