Chargement

Après avoir découpé un document en segments, l'étape suivante dans un pipeline RAG consiste à trouver quels segments sont les plus pertinents par rapport à la question d'un utilisateur. Il s'agit essentiellement d'un problème de recherche - vous devez parcourir tous vos segments de texte et identifier ceux qui se rapportent à ce que l'utilisateur demande.

L'approche la plus courante pour trouver des segments pertinents est la recherche sémantique. Contrairement à la recherche par mots-clés qui cherche des correspondances exactes de mots, la recherche sémantique utilise des embeddings de texte pour comprendre le sens et le contexte à la fois de la question de l'utilisateur et de chaque segment de texte.

Embeddings de texte

Un embedding de texte est une représentation numérique du sens contenu dans un texte. Pensez-y comme à la conversion de mots et de phrases dans un format avec lequel les ordinateurs peuvent travailler mathématiquement.

Voici comment fonctionne le processus :

  • Vous fournissez du texte à un modèle d'embedding
  • Le modèle produit une longue liste de nombres (l'embedding)
  • Chaque nombre varie de -1 à +1
  • Ces nombres représentent différentes qualités ou caractéristiques du texte d'entrée

Comprendre les nombres

Chaque nombre dans un embedding est essentiellement un « score » pour une certaine qualité du texte d'entrée. Cependant, voici la mise en garde importante : nous ne savons pas précisément ce que représente chaque nombre.

Bien qu'il soit utile d'imaginer qu'un nombre pourrait représenter « à quel point le texte est joyeux » ou « à quel point le texte parle des océans », ce ne sont que des exemples conceptuels. Le sens réel de chaque dimension est appris par le modèle pendant l'entraînement et n'est pas directement interprétable par les humains.

VoyageAI pour les embeddings

Puisqu'Anthropic ne fournit pas actuellement de génération d'embeddings, le fournisseur recommandé est VoyageAI. Vous devrez :

  • Vous inscrire pour un compte VoyageAI séparé
  • Obtenir une clé API (gratuite pour commencer)
  • Ajouter la clé à vos variables d'environnement

Dans votre fichier .env, ajoutez :

bash
VOYAGE_API_KEY="your_key_here"

Implémentation

Tout d'abord, installez la bibliothèque VoyageAI :

bash
%pip install voyageai

Ensuite, configurez le client et créez une fonction pour générer des embeddings :

python
from dotenv import load_dotenv
import voyageai

load_dotenv()
client = voyageai.Client()

def generate_embedding(text, model="voyage-3-large", input_type="query"):
    result = client.embed([text], model=model, input_type=input_type)
    return result.embeddings[0]

Lorsque vous exécutez cette fonction sur un segment de texte, vous obtiendrez en retour une liste de nombres à virgule flottante représentant l'embedding. Le processus est rapide et simple - le véritable défi consiste à comprendre comment utiliser ces embeddings efficacement dans votre pipeline RAG pour trouver le contenu le plus pertinent.

L'étape suivante consiste à apprendre comment comparer les embeddings pour déterminer quels segments sont les plus similaires à la question d'un utilisateur, ce qui constitue le cœur du processus de recherche sémantique.