Lexique · Frameworks / outils IA

Pinecone : définition, fonctionnement et exemple en Python

La base de données vectorielle managée qui stocke les embeddings et les retrouve par similarité, sans serveur à administrer : index, namespaces, filtres, architecture serverless et exemple en Python.

Par Équipe Blent· Mis à jour le · 15 min de lecture· Niveau intermédiaire

Pinecone en bref

Type
Base de données vectorielle managée (SaaS)
Éditeur
Pinecone, fondée en 2019 par Edo Liberty
Lancement public
2021
Modèle
Service propriétaire, pas de version open source
Clouds
AWS, Google Cloud, Microsoft Azure
Architecture
Serverless, stockage et calcul séparés
Notions clés
Index, namespaces, métadonnées, filtres

Définition : Pinecone

Pinecone est une base de données vectorielle proposée uniquement sous forme de service managé dans le cloud. Elle stocke des embeddings, c'est-à-dire des vecteurs numériques qui représentent le sens de textes, d'images ou d'autres contenus, et retrouve en quelques millisecondes ceux qui sont les plus proches d'un vecteur de requête. Chaque vecteur peut porter des métadonnées filtrables et être rangé dans un namespace pour isoler les données d'un client ou d'un projet. Sans serveur à installer ni à dimensionner, Pinecone sert surtout de brique de recherche dans les systèmes RAG, les moteurs de recherche sémantique et les systèmes de recommandation.

En une phrase : Pinecone stocke vos embeddings dans le cloud et retrouve les plus proches d'une requête, sans infrastructure à gérer.

Dans cette définition

Qu'est-ce que Pinecone ?

Pinecone est une base de données spécialisée dans un seul type de donnée : le vecteur. Dans une application d'IA générative, chaque document, paragraphe ou image est converti en embedding, une liste de plusieurs centaines de nombres qui encode son sens. Retrouver les contenus pertinents pour une question revient alors à chercher les vecteurs les plus proches de celui de la question. Pinecone fait exactement cela, à l'échelle de millions ou de milliards de vecteurs.

L'entreprise a été fondée en 2019 par Edo Liberty, ancien responsable de laboratoire de recherche chez Amazon et Yahoo, et a ouvert son service au public en 2021. L'essor des LLM et du RAG à partir de 2023 en a fait l'une des bases vectorielles les plus citées. En 2024, Pinecone a lancé une architecture serverless qui sépare le stockage, confié à un stockage objet, de la puissance de calcul, allouée à la demande.

Son positionnement est net : Pinecone est un service managé, et uniquement cela. Il n'existe pas de version open source à installer sur vos serveurs. On crée un index par API, on y écrit, on l'interroge, et l'éditeur se charge de la réplication, des sauvegardes et de la montée en charge. C'est ce qui le distingue de bases comme Weaviate ou Qdrant, open source et auto-hébergeables.

À retenir : Pinecone ne génère pas de texte et ne comprend pas les documents. Il stocke des vecteurs produits par un modèle d'embedding et retrouve rapidement les plus proches.

Comment fonctionne Pinecone ?

Utiliser Pinecone revient à suivre cinq étapes, de la création de l'index à l'exploitation des résultats par un LLM ou une application.

  1. Créer un index

    On choisit la dimension des vecteurs (celle du modèle d'embedding), la métrique de similarité (cosinus, produit scalaire ou distance euclidienne), le cloud et la région d'hébergement.

  2. Vectoriser les contenus

    Chaque texte ou image est transformé en vecteur par un modèle d'embedding, exécuté chez vous ou directement par Pinecone, qui héberge aussi des modèles d'embedding.

  3. Insérer les vecteurs

    L'opération upsert envoie chaque vecteur avec un identifiant unique et ses métadonnées (source, date, langue, droits), dans le namespace choisi. Un identifiant existant est mis à jour.

  4. Interroger l'index

    La requête est vectorisée avec le même modèle. Pinecone renvoie les k vecteurs les plus proches, éventuellement restreints par un filtre sur les métadonnées, avec leur score de similarité.

  5. Exploiter les résultats

    Les passages retrouvés sont réordonnés si besoin par un modèle de reranking, puis transmis au LLM dans un RAG, ou affichés directement dans un moteur de recherche.

Exemple : indexer et interroger une FAQ avec le client Python

Une plateforme de support veut retrouver les réponses de sa FAQ les plus proches d'une question client, en isolant les données de chacun de ses clients. Le code suivant utilise le SDK officiel (paquet pinecone) et un modèle d'embedding open source exécuté localement.

python
import os

from pinecone import Pinecone, ServerlessSpec
from sentence_transformers import SentenceTransformer

pc = Pinecone(api_key=os.environ["PINECONE_API_KEY"])
encoder = SentenceTransformer("sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")

# 1. Index serverless : la dimension est celle du modèle (384)
index_name = "support-faq"
if not pc.has_index(index_name):
    pc.create_index(
        name=index_name,
        dimension=384,
        metric="cosine",
        spec=ServerlessSpec(cloud="aws", region="eu-west-1"),
    )
index = pc.Index(index_name)

# 2. Upsert : identifiant, vecteur et métadonnées, dans le namespace du client
faq = [
    {"id": "faq-001", "text": "Le remboursement intervient sous 14 jours après réception du retour.", "produit": "boutique", "annee": 2026},
    {"id": "faq-002", "text": "Les frais de livraison sont offerts dès 50 euros d'achat.", "produit": "boutique", "annee": 2025},
    {"id": "faq-003", "text": "L'abonnement peut être résilié à tout moment depuis l'espace client.", "produit": "abonnement", "annee": 2026},
]
index.upsert(
    vectors=[
        {
            "id": item["id"],
            "values": encoder.encode(item["text"]).tolist(),
            "metadata": {"text": item["text"], "produit": item["produit"], "annee": item["annee"]},
        }
        for item in faq
    ],
    namespace="client-acme",
)

# 3. Query : les 3 vecteurs les plus proches, filtrés sur les métadonnées
question = "Sous quel délai suis-je remboursé ?"
results = index.query(
    namespace="client-acme",
    vector=encoder.encode(question).tolist(),
    top_k=3,
    filter={"produit": {"$eq": "boutique"}, "annee": {"$gte": 2025}},
    include_metadata=True,
)
for match in results.matches:
    print(match.id, round(match.score, 3), match.metadata["text"])

Trois points méritent attention. La dimension de l'index doit correspondre exactement à celle du modèle d'embedding, et la question doit être vectorisée avec ce même modèle. Le texte d'origine est stocké dans les métadonnées pour pouvoir l'afficher ou le transmettre au LLM sans seconde requête. Enfin, le filtre restreint la recherche aux vecteurs dont les métadonnées respectent les conditions, avec des opérateurs proches de ceux de MongoDB ($eq, $in, $gte, $and...). Dans un RAG, ces résultats sont ensuite injectés dans le prompt, souvent par l'intermédiaire de LangChain ou de LlamaIndex, qui disposent d'intégrations officielles.

Index, namespaces, métadonnées : l'organisation des données

Pinecone structure les données sur trois niveaux, qu'il faut concevoir avant d'écrire le premier vecteur.

  • Index : le conteneur principal, défini par une dimension, une métrique et une région. Un index est dense (vecteurs d'embeddings classiques) ou creux (vecteurs de termes pour la recherche lexicale). On crée en général un index par modèle d'embedding.
  • Namespace : une partition de l'index. Requêtes et écritures ciblent toujours un namespace, ce qui garantit l'isolation des données. On l'utilise pour séparer les clients d'un SaaS, les environnements ou les langues. Supprimer toutes les données d'un client revient à supprimer son namespace.
  • Métadonnées : des paires clé-valeur (texte, nombre, booléen, liste de textes) attachées à chaque vecteur. Elles servent à filtrer la recherche (par date, source, droit d'accès) et à restituer le contenu.

L'architecture serverless

Dans l'architecture serverless, les vecteurs sont stockés sur un stockage objet et regroupés en fichiers indexés. Les requêtes sont traitées par des ressources de calcul allouées à la demande, qui ne chargent que les portions utiles de l'index. Conséquence pratique : il n'y a plus de capacité à réserver, et la facturation suit les volumes stockés, lus et écrits. L'architecture historique à base de pods, où l'on choisissait le type et le nombre de machines, laisse place à ce modèle, désormais recommandé par l'éditeur.

La recherche hybride

La recherche vectorielle seule rate parfois des correspondances exactes : un code produit, un nom propre, un acronyme interne. Pinecone répond à ce besoin avec des vecteurs creux, qui encodent la présence et le poids des termes. On peut stocker vecteurs denses et creux dans un même index et pondérer leur contribution, ou interroger un index dense et un index creux puis fusionner les classements, par exemple avec la Reciprocal Rank Fusion. Un modèle de reranking hébergé peut ensuite réordonner les meilleurs résultats.

À quoi sert Pinecone ?

Pinecone intervient partout où il faut retrouver des contenus proches par le sens plutôt que par les mots exacts.

  • RAG en production

    Fournir à un LLM les passages pertinents d'un corpus de plusieurs millions de fragments.

  • Recherche sémantique

    Trouver des documents qui répondent à une question formulée avec d'autres mots.

  • Recommandation

    Suggérer des produits, articles ou contenus proches de ceux qu'un utilisateur consulte.

  • SaaS multi-clients

    Isoler les données de chaque client dans un namespace, au sein d'un même index.

  • Détection de doublons

    Repérer des tickets, fiches ou images quasi identiques à l'aide de leurs vecteurs.

  • Mémoire d'agent

    Conserver et retrouver les faits utiles aux conversations passées d'un agent IA.

Quels sont les avantages de Pinecone ?

L'argument principal de Pinecone est opérationnel : la recherche vectorielle à grande échelle sans équipe d'infrastructure dédiée.

  • Aucun serveur à installer, dimensionner, mettre à jour ou sauvegarder.
  • Mise à l'échelle automatique avec l'architecture serverless, facturée à l'usage.
  • Filtres sur métadonnées et namespaces natifs, adaptés aux applications multi-clients.
  • API simple et SDK officiels, avec intégrations dans LangChain et LlamaIndex.
  • Modèles d'embedding et de reranking hébergés, pour simplifier le pipeline.
  • Disponible sur les trois grands clouds, avec choix de la région d'hébergement.

Quelles sont les limites de Pinecone ?

La contrepartie d'un service entièrement managé : moins de contrôle, et une dépendance forte à un fournisseur.

  • Service propriétaire : pas d'installation sur vos propres serveurs ni de code source accessible.
  • Dépendance à l'éditeur : migrer vers une autre base suppose de réexporter tous les vecteurs.
  • Coût difficile à prévoir quand le volume de requêtes varie fortement.
  • Les données quittent votre infrastructure, ce qui peut bloquer certains projets réglementés.
  • Les écritures récentes peuvent mettre quelques secondes à devenir interrogeables.

Pinecone vs bases auto-hébergées : quelles différences ?

Le choix d'une base vectorielle se joue moins sur la qualité de la recherche, comparable d'une solution à l'autre, que sur le modèle d'exploitation. Voici comment Pinecone se situe face aux trois alternatives les plus fréquentes.

CritèrePineconeWeaviateQdrantpgvector
ModèleService propriétaireOpen source (BSD-3)Open source (Apache 2.0)Extension PostgreSQL open source
HébergementCloud de l'éditeur uniquementVos serveurs ou cloud managéVos serveurs ou cloud managéPartout où tourne PostgreSQL
ExploitationAucuneÀ votre charge si auto-hébergéÀ votre charge si auto-hébergéCelle de votre base existante
Recherche hybrideVecteurs denses et creuxBM25 et vecteurs natifsVecteurs denses et creuxÀ composer avec le plein texte PostgreSQL
Multi-locataireNamespacesTenants natifsFiltres ou collectionsSchémas, lignes et droits SQL
CoûtÀ l'usageInfrastructure ou abonnementInfrastructure ou abonnementInclus dans la base existante
Idéal pourÉquipes sans exploitation, croissance rapideContrôle des données, vectorisation intégréePerformances et filtres finsCorpus modestes, stack PostgreSQL

Une démarche fréquente consiste à prototyper avec un index en mémoire ou pgvector, puis à choisir la base de production selon les contraintes : souveraineté des données et réversibilité orientent vers une solution open source, absence d'équipe d'exploitation vers Pinecone. Notre article Pinecone : la base de données vectorielle managée revient en détail sur le fonctionnement des bases vectorielles.

Quand choisir Pinecone ?

Le critère décisif est rarement la qualité de la recherche, comparable entre bases vectorielles : c'est le modèle d'exploitation que vous acceptez.

Pertinent si

Vous voulez déléguer l'infrastructure

  • L'équipe est réduite et sans compétence d'exploitation de bases de données.
  • Le volume de vecteurs ou de requêtes croît vite et de façon imprévisible.
  • L'application sert plusieurs clients à isoler les uns des autres.
  • Héberger les données chez un fournisseur cloud est acceptable.
Moins adapté si

Vous devez garder la main

  • Les données doivent rester sur votre infrastructure ou sur site.
  • Vous exigez une solution open source et réversible.
  • Le corpus est modeste et une base PostgreSQL existe déjà.
  • Le coût doit être fixe et maîtrisé quel que soit le trafic.

Outils et alternatives autour de Pinecone

Pinecone s'insère dans une chaîne qui comprend un modèle d'embedding, un framework d'orchestration et, souvent, une base concurrente évaluée en parallèle.

Les concepts à connaître pour utiliser Pinecone

Ces notions expliquent ce que Pinecone stocke, comment il compare les vecteurs et où il se place dans une application IA.

Ressources pour approfondir Pinecone

Trois articles du blog Blent pour comprendre les bases vectorielles et les exploiter dans un RAG.

Questions fréquentes

Questions fréquentes

Pinecone propose une offre gratuite limitée en stockage et en requêtes, suffisante pour prototyper. Au-delà, la facturation dépend des volumes stockés, des lectures et des écritures. Il est prudent de simuler le coût mensuel sur un trafic réaliste avant de s'engager.

Expertise

À propos de l'auteur

Équipe Blent

Les ingénieurs et mentors Blent conçoivent, évaluent et mettent en production des applications LLM, et forment chaque année des centaines de professionnels à l'IA générative.

Sources et méthodologie

  • Documentation officielle Pinecone (index, namespaces, filtres, SDK Python)
  • Annonce de Pinecone Serverless, janvier 2024
  • Retours d'expérience des projets et formations Blent