0Pricing
Vector Databases: Pinecone, Weaviate & pgvector · Leçon

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

  1. Créer un index Pinecone
  2. Insérer ou mettre à jour des données dans Pinecone
  3. Interroger des données vectorielles dans Pinecone
  4. Comprendre la tarification et les pods de Pinecone
← Retour à Vector Databases: Pinecone, Weaviate & pgvector