Accéder au contenu principal

Tutoriel sur l'outil de recherche de fichiers Google : Développer des applications RAG avec l'API Gemini

Découvrez comment créer une application RAG à l'aide de Google File Search et de l'API Gemini. Guide étape par étape avec code, découpage, filtrage des métadonnées et citations
Actualisé 25 nov. 2025  · 14 min de lecture

Dans ce tutoriel, je vais vous guider dans la création d'un assistant de documentation médicale à l'aide de Google File Search. Vous découvrirez comment le configurer, mettre en œuvre des requêtes et utiliser des fonctionnalités avancées telles que le découpage personnalisé et le filtrage des métadonnées. À la fin, vous comprendrez quand il est préférable d'utiliser un RAG géré plutôt que de créer votre propre pile.

Qu'est-ce que l'outil de recherche de fichiers Google ?

Développer des applications RAG implique généralement de gérer des bases de données vectorielles, des pipelines d'intégration et une infrastructure importante. L'outil de recherche de fichiers de Google, lancé en novembre 2025, élimine cette complexité grâce à une solution entièrement gérée. RAG intégré directement dans le API.

Cet outil gère les aspects complexes à votre place : découpage des documents, génération d'intégrations et gestion de la recherche sémantique, sans nécessiter d'outils externes tels que Pinecone ou ChromaDB. Le processus est simple : téléchargez les fichiers, créez un magasin et commencez à effectuer des requêtes. Vous bénéficiez également de citations intégrées qui vous permettent de vérifier la provenance des réponses.

Comprendre le RAG et pourquoi Google le simplifie

Gemini File Search se présente comme un système RAG géré. Comprendre le RAG vous aide à bien utiliser cet outil et à déterminer quand il convient à votre cas d'utilisation.

À la base, la génération augmentée par la récupération (RAG) relie les modèles linguistiques à des connaissances externes. Avant de générer une réponse, le modèle récupère les informations pertinentes dans vos documents, fondant ses réponses sur vos données réelles plutôt que de se baser uniquement sur les données d'entraînement.

Le défi DIY RAG

Bien que le concept RAG semble simple, la mise en place d'un pipeline RAG implique la gestion de plusieurs composants :

  • Bases de données vectorielles: Configurer et gérer des services tels que Pinecone, ChromaDBou Weaviate pour stocker les intégrations.
  • Intégration des pipelines: Convertissez les documents en vecteurs numériques et gérez les mises à jour lorsque le contenu change.
  • Stratégies de segmentation: Divisez les documents en plusieurs parties qui équilibrent le contexte et la précision de la recherche.
  • s en matière d'infrastructure: Surveillez les performances, ajustez les paramètres et gérez la mise à l'échelle à mesure que vos données augmentent.

Chaque composant nécessite une expertise et une maintenance continue. Que vous développiez un système de production qui exige une grande fiabilité ou un prototype qui nécessite une grande rapidité, la charge infrastructurelle reste le même obstacle.

Pourquoi la gestion RAG est-elle importante ?

Les services gérés tels que Google File Search permettent d'éliminer ce problème. Au lieu d'ajuster les systèmes de recherche, vous rédigez des requêtes. Au lieu de procéder au débogage des pipelines d'intégration, vous validez les résultats. L'infrastructure fonctionne en arrière-plan pendant que vous vous concentrez sur la logique applicative.

Gemini File Search gère la complexité technique tandis que vous contrôlez ce qui importe : quels documents indexer, comment les interroger et comment utiliser les résultats. Cet équilibre est particulièrement efficace lorsque vous avez besoin d'une qualité de production sans frais généraux opérationnels. Pour approfondir vos connaissances sur les principes fondamentaux du RAG, je vous recommande de consulter le tutoriel de DataCamp sur le RAG agentique. RAG agentique.

Un diagramme de workflow simple illustrant les deux phases de Google File Search : (1) Indexation : téléchargement de documents (PDF, DOCX ou TXT) vers un magasin File Search, où ils sont automatiquement divisés et transformés en intégrations ; (2) Requête : la requête de l'utilisateur est mise en correspondance avec des extraits de documents pertinents, que le modèle Gemini utilise pour rédiger une réponse avec des citations. Indiquez clairement « Indexation unique » pour la première phase (en bleu) et « Requêtes répétées » pour la seconde (en vert). Utilisez des icônes pour représenter les documents, le magasin, la recherche et le modèle Gemini, ainsi que des flèches pour illustrer le flux depuis le téléchargement jusqu'à la génération de la réponse.

La meilleure façon de comprendre Google File Search est de l'utiliser. Dans la section suivante, vous allez créer un assistant de documentation médicale complet qui illustre l'ensemble du processus, du téléchargement des documents aux réponses fondées accompagnées de citations.

Création d'un assistant de documentation médicale à l'aide de Google File Search

Avertissement: Ce tutoriel présente les fonctionnalités de recherche de fichiers à l'aide des étiquettes des médicaments de la FDA à des fins éducatives uniquement. L'assistant que vous allez créer n'est pas destiné à un usage clinique, à la prise de décisions relatives aux soins des patients ou au diagnostic médical. Veuillez toujours consulter des professionnels de santé qualifiés pour obtenir des conseils médicaux. Les systèmes d'IA peuvent générer des informations incorrectes même lorsqu'ils s'appuient sur des documents sources.

Cette section vous guide dans la création d'un assistant de documentation médicale complet à l'aide de la recherche de fichiers. Vous travaillerez avec les étiquettes de médicaments de la FDA pour trois médicaments courants, en créant un système qui répond aux questions sur les interactions médicamenteuses, les effets secondaires et les contre-indications. L'assistant fournit des réponses vérifiables en citant des passages spécifiques tirés des documents sources.

La recherche de fichiers s'effectue en deux étapes : vous indexez vos documents une seule fois, puis vous effectuez des requêtes à plusieurs reprises. Vous devrez d'abord mettre en place l'infrastructure d'indexation, puis vous concentrer entièrement sur la formulation de questions et l'interprétation des réponses fondées.

Étape 1 : Veuillez installer l'API et configurer l'authentification.

Il est nécessaire de disposer de Python 3.9 ou d'une version ultérieure. Veuillez installer le SDK Google Generative AI et ses dépendances :

pip install google-genai python-dotenv

Veuillez obtenir votre clé API auprès de Google AI Studio. Veuillez le stocker dans un fichier .env dans le répertoire de votre projet :

GOOGLE_API_KEY=your_api_key_here

Configurez vos importations et initialisez le client :

from google import genai
from google.genai import types
import time
from dotenv import load_dotenv

load_dotenv()
client = genai.Client()

genai.Client() gère automatiquement l'authentification à l'aide de votre variable d'environnement. Vous utiliserez cet objet client pour toutes les opérations de recherche de fichiers.

Étape 2 : Créer un magasin de recherche de fichiers

Veuillez créer un magasin pour stocker vos documents indexés :

file_search_store = client.file_search_stores.create(
    config={"display_name": "fda-drug-labels"}
)
print(f"Created store: {file_search_store.name}")

Un magasin de recherche de fichiers sert de conteneur pour vos documents indexés. Contrairement aux téléchargements de fichiers temporaires qui expirent après 48 heures, les magasins sont conservés indéfiniment. Cela signifie que vous indexez les documents une seule fois et que vous pouvez les consulter des milliers de fois sans avoir à les télécharger ou à les traiter à nouveau.

L'identifiant unique ( file_search_store.name ) contient un identifiant unique auquel vous ferez référence lors de vos requêtes. Cela ressemble à fileSearchStores/fdadruglabels-abc123. Veuillez enregistrer cette valeur si vous avez besoin d'interroger le magasin à partir d'une autre session.

Étape 3 : Télécharger et indexer des documents PDF

Pour ce tutoriel, vous travaillerez avec trois étiquettes de médicaments approuvées par la FDA. Veuillez télécharger ces fichiers PDF depuis le site Web de la FDA :

Veuillez les enregistrer dans le répertoire de votre projet, puis les télécharger dans votre boutique File Search :

pdf_files = ["metformin.pdf", "atorvastatin.pdf", "lisinopril.pdf"]

for pdf_file in pdf_files:
    operation = client.file_search_stores.upload_to_file_search_store(
        file=pdf_file,
        file_search_store_name=file_search_store.name,
        config={"display_name": pdf_file.replace(".pdf", "")},
    )

    # Wait for indexing to complete
    while not operation.done:
        time.sleep(3)
        operation = client.operations.get(operation)

    print(f"{pdf_file} indexed")

Lors du téléchargement, File Search découpe chaque fichier PDF en segments et convertit ces segments en intégrations à l'aide du modèle gemini-embedding-001. Cesintégrations d' s sont des représentations numériques qui capturent la signification sémantique, permettant au système de trouver des passages pertinents même lorsque votre question ne correspond pas exactement à la formulation du document.

Le modèle de sondage (while not operation.done) gère la nature asynchrone de l'indexation. Les documents volumineux nécessitent plus de temps pour être traités. Par conséquent, l'API renvoie immédiatement une réponse et il est recommandé de vérifier régulièrement l'état d'avancement du traitement. Pour les systèmes de production, il est recommandé d'envisager l'ajout d'une logique de délai d'expiration afin d'éviter les boucles infinies.

Chaque fragment conserve les métadonnées qui le relient à son document source et à sa position. Ces métadonnées deviennent importantes lorsque vous accédez ultérieurement aux citations.

Étape 4 : Requête pour des informations sur un seul document

Veuillez maintenant interroger vos documents indexés :

query1 = "What are the contraindications for metformin?"

response1 = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=query1,
    config=types.GenerateContentConfig(
        tools=[
            types.Tool(
                file_search=types.FileSearch(
                    file_search_store_names=[file_search_store.name]
                )
            )
        ]
    ),
)

print(response1.text)

Ceci affiche la réponse générée :

Metformin is contraindicated in several conditions:

* Severe renal impairment (eGFR below 30 mL/min/1.73 m2)
* Acute or chronic metabolic acidosis
* Hypersensitivity to metformin

La recherche de fichiers récupère les segments les plus proches sémantiquement dans vos documents et les fournit comme contexte à l'gemini-2.5-flash, qui génère la réponse. La configuration du tableau d'tools s indique au modèle d'utiliser la recherche de fichiers lors de la génération. Vous pouvez associer la recherche de fichiers à d'autres outils tels que l'exécution de code ou la recherche Google dans la même requête.

Étape 5 : Accédez aux citations et aux métadonnées de référence.

Veuillez indiquer les documents qui ont servi de base à la réponse :

print("Sources used:")
for i, chunk in enumerate(response1.candidates[0].grounding_metadata.grounding_chunks, 1):
    source_name = chunk.retrieved_context.title
    print(f"  [{i}] {source_name}")

Résultat :

Sources used:
  [1] metformin
  [2] atorvastatin

Chaque segment des métadonnées de référence comprend le titre du document source et le passage spécifique du texte qui a inspiré la réponse. Cela permet de créer un chemin de vérification entre la réponse générée et vos documents originaux, ce qui est indispensable pour les applications médicales, juridiques ou financières où la précision est essentielle.

Le tableau d'grounding_chunks s contient tous les passages récupérés, classés par pertinence. Bien que la requête porte spécifiquement sur la metformine, la recherche de fichiers a également récupéré le contenu du document sur l'atorvastatine, probablement parce qu'il contient des informations connexes sur les contre-indications. Ceci illustre l'approche de recherche sémantique : le système identifie le contenu conceptuellement lié, et non pas seulement les correspondances de mots-clés.

Étape 6 : Requête sur plusieurs documents

Veuillez tester une question relative aux interactions médicamenteuses à partir de plusieurs documents :

query2 = "Can a patient take both atorvastatin and metformin together? Are there any drug interactions?"

response2 = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=query2,
    config=types.GenerateContentConfig(
        tools=[
            types.Tool(
                file_search=types.FileSearch(
                    file_search_store_names=[file_search_store.name]
                )
            )
        ]
    ),
)

print(response2.text)

Le même modèle d'API extrait désormais des informations de plusieurs documents et les synthétise. Veuillez accéder aux extraits de texte récupérés :

print("Sources used:")

for i, chunk in enumerate(response2.candidates[0].grounding_metadata.grounding_chunks, 1):
    source_name = chunk.retrieved_context.title
    source_text = chunk.retrieved_context.text[:100] + "..."
    print(f"  [{i}] {source_name}")
    print(f"      {source_text}")

La sortie affiche des extraits des deux étiquettes de médicaments :

Sources used:
  [1] atorvastatin
      Concomitant use with diabetes medications is generally safe but monitor glucose levels...
  [2] metformin
      Carbonic anhydrase inhibitors may increase the risk of lactic acidosis...

La recherche de fichiers extrait les sections pertinentes des deux documents, et le modèle les synthétise en une réponse cohérente. L'attribut retrieved_context.text vous fournit le passage exact utilisé, vous permettant ainsi de vérifier que le modèle n'a pas généré d'informations erronées.

Étape 7 : Effectuer des comparaisons entre documents

Veuillez poser une question analytique qui nécessite la comparaison des trois documents :

query3 = "Which medications have muscle-related side effects?"

response3 = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=query3,
    config=types.GenerateContentConfig(
        tools=[
            types.Tool(
                file_search=types.FileSearch(
                    file_search_store_names=[file_search_store.name]
                )
            )
        ]
    ),
)

print(response3.text)

# Check which documents were consulted
metadata = response3.candidates[0].grounding_metadata
for i, chunk in enumerate(metadata.grounding_chunks, 1):
    print(f"  [{i}] {chunk.retrieved_context.title}")

Le résultat identifie l'atorvastatine comme ayant des effets secondaires liés aux muscles (myalgie, myopathie, rhabdomyolyse) et confirme que les autres médicaments ne présentent pas de tels effets. Les métadonnées de base indiquent que File Search a consulté les trois documents pour répondre à la question de comparaison.

Vous avez maintenant créé un assistant de documentation médicale fonctionnel. Le flux de travail principal reste identique : configurez l'outil de recherche de fichiers dans votre appel generate_content(), récupérez le texte de réponse et accédez aux métadonnées de base pour vérification. Le magasin est conservé sur les serveurs de Google, vous pouvez donc le consulter lors de sessions ultérieures sans avoir à le réindexer.

Ensuite, vous découvrirez des fonctionnalités avancées telles que les configurations de découpage personnalisées et le filtrage des métadonnées, qui vous permettront de contrôler plus précisément le comportement de récupération.

Fonctionnalités avancées et personnalisation de l'outil de recherche de fichiers Google

Le flux de travail de base de la recherche de fichiers couvre la plupart des cas d'utilisation, mais les systèmes de production nécessitent souvent un contrôle plus précis du comportement de récupération. Cette section explique comment personnaliser les stratégies de découpage, filtrer les documents à l'aide de métadonnées, optimiser les performances et gérer plusieurs magasins pour différents cas d'utilisation.

Configuration personnalisée du découpage en morceaux

La recherche de fichiers divise automatiquement les documents en segments lors de l'indexation. Par défaut, il utilise une stratégie de fragmentation optimisée pour les documents généraux, mais vous pouvez personnaliser ce comportement lorsque des types de documents spécifiques nécessitent un traitement différent.

Prenons l'exemple de l'assistant médical. Les étiquettes des médicaments contiennent des informations techniques détaillées sous forme de tableaux et de courts paragraphes. Des segments plus courts vous permettent de récupérer des informations précises, telles que des dosages spécifiques ou des contre-indications, sans inclure de contexte non pertinent. Les blocs plus volumineux sont plus adaptés aux sections narratives qui nécessitent davantage de contexte pour être bien comprises.

Veuillez configurer les paramètres de fragmentation lors du téléchargement de documents :

operation = client.file_search_stores.upload_to_file_search_store(
    file="metformin.pdf",
    file_search_store_name=file_search_store.name,
    config={
        "display_name": "metformin",
        "chunking_config": {
            "white_space_config": {
                "max_tokens_per_chunk": 200,
                "max_overlap_tokens": 20
            }
        }
    }
)

Le paramètre « chunking_config » (Partager les documents en plusieurs parties) contrôle la manière dont la fonction de recherche de fichiers divise vos documents. Le paramètre « max_tokens_per_chunk » définit la taille maximale de chaque segment, tandis que « max_overlap_tokens » détermine le degré de chevauchement entre les segments consécutifs. Ce chevauchement garantit que les informations qui s'étendent au-delà des limites des blocs ne sont pas perdues lors de la récupération.

Le compromis est important : des segments plus courts permettent une recherche plus précise, mais peuvent omettre le contexte général, tandis que des segments plus longs conservent davantage de sens, mais peuvent inclure des informations non pertinentes. 

Pour la documentation technique comportant des sections clairement délimitées, veuillez utiliser des segments plus courts (150 à 250 tokens). Pour les documents narratifs tels que les articles de recherche ou les rapports, des segments plus longs (400 à 600 tokens) permettent de préserver le fil conducteur et le contexte de l'argumentation. La documentation officielle sur la recherche de fichiers fournit des conseils supplémentaires sur le choix de la taille des segments pour différents types de documents.

Filtrage des métadonnées

Lorsque votre magasin contient des dizaines ou des centaines de documents, le filtrage des métadonnées réduit la portée de la recherche avant que la recherche sémantique ne soit lancée. Cela améliore la précision et réduit le temps de traitement.

Veuillez ajouter des métadonnées lors du téléchargement du document afin de permettre un filtrage ultérieur :

operation = client.file_search_stores.upload_to_file_search_store(
    file="metformin.pdf",
    file_search_store_name=file_search_store.name,
    config={
        "display_name": "metformin",
        "custom_metadata": [
            {"key": "category", "string_value": "diabetes"},
            {"key": "year", "numeric_value": 2017},
            {"key": "drug_class", "string_value": "biguanide"}
        ]
    }
)

Le paramètre custom_metadata accepte un tableau de paires clé-valeur. Veuillez utiliser string_value pour les métadonnées textuelles telles que les catégories ou les classes de médicaments, et numeric_value pour les années, les versions ou d'autres données numériques.

Effectuez une requête avec des filtres de métadonnées pour rechercher uniquement les documents pertinents :

query = "What are the common side effects?"

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=query,
    config=types.GenerateContentConfig(
        tools=[
            types.Tool(
                file_search=types.FileSearch(
                    file_search_store_names=[file_search_store.name],
                    metadata_filter="category=diabetes"
                )
            )
        ]
    )
)

Le paramètre « metadata_filter » limite la recherche aux documents correspondant aux critères spécifiés. Dans cet exemple, la recherche de fichiers ne prend en compte que les documents contenant « category=diabetes », en ignorant les médicaments pour la pression artérielle et le cholestérol, même s'ils sont disponibles dans le même magasin.

Cela devient particulièrement important lorsque les magasins contiennent des documents hétérogènes. Une base de connaissances médicales peut inclure des notices de médicaments, des articles de recherche et des directives cliniques. Le filtrage par type de document garantit que vous obtenez des informations sur les posologies à partir d'étiquettes et non de résumés de recherche.

Il est possible de combiner le filtrage des métadonnées avec la fonctionnalité de recherche sémantique complète. Le filtre s'exécute d'abord pour sélectionner les documents candidats, puis la recherche sémantique identifie les passages les plus pertinents dans ces documents.

Optimisation des performances

Les performances de la recherche de fichiers dépendent de la taille du magasin, de la complexité de la requête et du choix du modèle. Le respect de ces directives permet d'assurer une récupération rapide et des coûts raisonnables.

Limites de taille des magasins: Veuillez vous assurer que chaque magasin reste inférieur à 20 Go afin de garantir une latence de récupération optimale. La recherche de fichiers stocke les intégrations avec vos documents, et les intégrations nécessitent environ trois fois la taille de vos fichiers d'origine. Une collection de fichiers PDF de 7 Go génère environ 21 Go de données stockées une fois indexées, ce qui dépasse la limite recommandée.

Lorsque vous approchez de cette limite, veuillez créer des magasins distincts organisés par catégorie, période ou modèle d'accès. Pour l'assistant médical, il serait préférable de créer des magasins distincts pour les différentes catégories de médicaments plutôt que de répertorier tous les médicaments disponibles dans un seul magasin.

s sur la structure des coûts: File Search facture 0,15 $ par million de jetons pour l'indexation. Une fois l'indexation effectuée, vous pouvez exécuter des milliers de requêtes sans frais d'indexation supplémentaires. Ce modèle de tarification est particulièrement adapté aux charges de travail impliquant de nombreuses lectures, où vous interrogez les mêmes documents à plusieurs reprises.

s relatives à la sélection du modèle: Veuillez utiliser gemini-2.5-flash pour la plupart des requêtes. Il traite les demandes en 1 à 2 secondes et est nettement moins coûteux que gemini-2.5-pro. Veuillez réserver l'utilisation de l'gemini-2.5-pro e pour les requêtes nécessitant un raisonnement approfondi à partir de plusieurs sources ou pour traiter des tâches de synthèse extrêmement complexes. La différence de coût entre les modèles est plus importante que les coûts d'indexation pour les applications à volume élevé.

Veuillez surveiller la taille du magasin lorsque vous ajoutez des documents. Vous pouvez vérifier cela via l'API, bien que le calcul de la taille soit effectué sur le backend de Google et puisse ne pas être immédiatement visible après le téléchargement. Pour obtenir les spécifications techniques complètes et les limites, veuillez consulter la documentation de l'API Gemini File. documentation de l'API Gemini File.

Gestion de plusieurs magasins

Chaque projet Google Cloud prend en charge jusqu'à 10 magasins File Search. Plusieurs magasins vous permettent de séparer les documents en fonction du contrôle d'accès, des exigences de performance ou de l'organisation logique.

Veuillez créer des boutiques spécialisées pour différents cas d'utilisation :

# Create separate stores for different document categories
diabetes_store = client.file_search_stores.create(
    config={"display_name": "diabetes-medications"}
)

cardio_store = client.file_search_stores.create(
    config={"display_name": "cardiovascular-medications"}
)

Interrogez plusieurs magasins en une seule requête :

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="What medications treat both diabetes and heart disease?",
    config=types.GenerateContentConfig(
        tools=[
            types.Tool(
                file_search=types.FileSearch(
                    file_search_store_names=[
                        diabetes_store.name,
                        cardio_store.name
                    ]
                )
            )
        ]
    )
)

La recherche de fichiers récupère les résultats de tous les magasins spécifiés et les synthétise. Les métadonnées de base identifient la source de chaque citation, garantissant ainsi une traçabilité complète. 

Les magasins sont conservés indéfiniment et doivent être supprimés manuellement lorsqu'ils ne sont plus nécessaires, ce qui les rend adaptés aux applications de production où les documents restent consultables d'une session à l'autre et d'un déploiement à l'autre.

Ensuite, vous découvrirez comment File Search se positionne par rapport aux autres solutions RAG et dans quels cas il est préférable d'opter pour une approche gérée plutôt que pour une approche DIY.

Outil de recherche de fichiers Google par rapport à d'autres outils de recherche de fichiers et RAG

La recherche de fichiers n'est pas la seule option pour créer des applications RAG. Comprendre comment il se positionne par rapport aux alternatives vous aide à choisir l'outil approprié. Comparons l'approche de Google avec l'offre d'OpenAI et les constructions personnalisées traditionnelles.

Fonctionnalité

Recherche de fichiers Google

Recherche de fichiers OpenAI

RAG personnalisé (LangChain)

Modèle de tarification

0,15 $/M jetons (indice uniquement)

0,10 $ par Go de stockage quotidien

Coûts d'infrastructure et de développement

Contrôle du fractionnement

Automatisé avec une configuration de base

Configurable (800 jetons par défaut, 400 chevauchements)

Contrôle total sur la stratégie

Type de recherche

Sémantique (vecteur uniquement)

Hybride (vecteur + mot-clé)

Toute méthode que vous mettez en œuvre

Formats de fichiers

Plus de 150 types (PDF, DOCX, code, etc.)

6 types (TXT, MD, HTML, DOCX, PPTX, PDF)

Dépend des analyseurs syntaxiques utilisés

Temps de configuration

Minutes

Minutes

Jours à semaines

Citations

Intégré avec des métadonnées de base

Intégré

Il est nécessaire de mettre en œuvre vous-même

Idéal pour

Volume de requêtes élevé, déploiement rapide

Requêtes riches en mots-clés, contrôle modéré

Exigences complexes, personnalisation complète

Recherche de fichiers Google vs Recherche de fichiers OpenAI

Les deux entreprises proposent des services RAG hébergés, mais elles adoptent des approches différentes en matière de tarification et de fonctionnalités.

Tarification : Google vous facture une fois lors de l'indexation (2,50 $ par millier de requêtes, plus 0,10 $ par Go par jour pour le stockage). Si vous effectuez de nombreuses requêtes mais mettez rarement à jour des documents, le modèle de Google vous permet de réaliser des économies. Si vous réindexez constamment, les calculs deviennent intéressants.

Contrôle de la configuration : Google simplifie les choses grâce à un découpage automatisé et une configuration limitée. OpenAI vous offre davantage de contrôle. Vous pouvez définir la taille des segments (800 tokens par défaut) et le chevauchement (400 tokens). OpenAI utilise également une recherche hybride combinant la correspondance vectorielle et la correspondance par mots-clés, tandis que Google s'appuie uniquement sur la recherche sémantique. Ceci est important lorsque vos requêtes contiennent des termes techniques spécifiques ou des codes de produits.

Formats de fichiers : Google prend en charge plus de 150 types de fichiers, y compris les fichiers de code et divers formats de documents. OpenAI prend en charge six : TXT, MD, HTML, DOCX, PPTX et PDF. Aucun des deux ne gère efficacement les données structurées telles que CSV ou JSONL. C'est là que les constructions personnalisées prennent tout leur sens.

Intégration : Google s'associe aux modèles Gemini et aux services Google Cloud. OpenAI se connecte à sa famille de modèles et à Azure. Les deux vous fournissent des citations et un suivi des sources.

La véritable divergence réside dans le choix entre simplicité et contrôle. Google regroupe toutes les opérations dans un seul appel API. OpenAI vous permet d'ajuster la récupération, mais cela implique une plus grande complexité. Il n'y a pas de gagnant unique ici. Cela dépend si vous privilégiez la rapidité ou la personnalisation pour votre projet.

Fonctionnalités RAG personnalisées

Construire votre propre système RAG à l'aide d'outils tels que LangChain vous permet d'accéder à des fonctionnalités qui ne sont pas proposées par les services hébergés. DataCamp's RAG avec LangChain explique cette approche en détail.

Les constructions personnalisées permettent l'utilisation de techniques avancées :

  • Division sémantique qui détecte les changements de sujet au lieu de couper à des longueurs fixes
  • Découpage en blocs tenant compte des jetons qui respecte précisément les fenêtres contextuelles du modèle
  • Récupération hybride Combinant la recherche par mot-clé BM25 avec des vecteurs denses
  • Transformations de requêtes telles que HyDE qui génèrent des réponses hypothétiques afin d'améliorer la recherche
  • Graph RAG représentant les documents sous forme de réseaux d'entités et de relations

Tutoriel de DataCamp sur l'amélioration des performances du RAG l'amélioration des performances RAG explore ces techniques à l'aide d'exemples illustrant des améliorations mesurables en termes de qualité. Le compromis réside dans la complexité opérationnelle : vous surveillez les performances de la base de données, ajustez les modèles d'intégration et gérez les mises à jour sur plusieurs services.

Quand utiliser chaque approche

Veuillez choisir des outils hébergés tels que File Search lorsque :

  • Construire des prototypes ou des preuves de concept lorsque la rapidité est essentielle
  • Votre cas d'utilisation correspond aux modèles standard (questions-réponses sur les documents, bases de connaissances, recherche dans la documentation).
  • Votre équipe manque d'expertise approfondie en matière de RAG.
  • Vous souhaitez des coûts prévisibles et des frais généraux opérationnels minimaux.

Personnalisez lorsque :

  • Vous avez besoin de méthodes avancées de segmentation ou de récupération spécialisées.
  • Travail avec des données structurées ou des formats de fichiers inhabituels
  • Construction systèmes RAG combinant plusieurs stratégies
  • L'optimisation des coûts à grande échelle justifie les investissements en ingénierie.
  • La conformité nécessite des infrastructures ou des modèles spécifiques.

La plupart des projets commencent par des solutions hébergées et ne passent à des versions personnalisées que lorsque les exigences l'imposent. Les techniques issues du RAG personnalisé (segmentation intelligente, recherche hybride, optimisation des requêtes) continuent d'influencer la manière dont vous utilisez les outils hébergés. Comprendre l'ensemble du paysage vous aide à faire de meilleurs choix à mesure que vos besoins évoluent.

Conclusion

Vous avez développé un système RAG complet à l'aide de l'outil Google File Search, depuis l'indexation des étiquettes des médicaments de la FDA jusqu'à la recherche par citations. L'assistant médical démontre comment les services gérés prennent en charge l'infrastructure pendant que vous vous concentrez sur la logique applicative.

La recherche de fichiers est particulièrement efficace lorsque vous avez besoin d'un RAG fiable sans avoir à gérer de bases de données vectorielles ou à intégrer des pipelines. Le stockage gratuit et les intégrations de requêtes permettent de prévoir les coûts. Les magasins persistants éliminent les frais généraux liés à la réindexation, ce qui vous permet de faire évoluer les requêtes sans augmenter la maintenance de l'infrastructure.

Avant le déploiement en production, veuillez ajouter les mesures de sécurité essentielles qui ont été omises dans le tutoriel par souci de concision. Mettre en œuvre la gestion des erreurs avec des délais d'attente pour les opérations de téléchargement et des blocs try-catch autour des appels API. Veuillez prendre en considération les implications en matière de confidentialité des données lorsque vous téléchargez des documents sur les serveurs de Google, en particulier s'ils contiennent des informations sensibles. Veuillez ajouter une validation pour vérifier que les métadonnées de base existent avant d'accéder aux citations. Effectuez des tests approfondis avec des experts du domaine afin de détecter les cas où le modèle génère des réponses plausibles mais incorrectes malgré le fondement.

Pour les prochaines étapes, envisagez d'étendre les fonctionnalités de votre assistant avec le filtrage des métadonnées afin d'organiser les documents par catégorie. Veuillez tester différentes tailles de blocs afin de trouver celles qui conviennent le mieux à vos types de documents. Les techniques que vous avez apprises ici s'appliquent que vous développiez des robots d'assistance, des outils de recherche documentaire ou des assistants cognitifs.

Questions fréquentes

Dois-je réindexer lorsqu'un document est modifié ?

Oui. La mise à jour ou le remplacement d'un fichier nécessite de le télécharger à nouveau afin que les intégrations reflètent le nouveau contenu.

Puis-je contrôler l'accès à des documents spécifiques ?

Pas encore à un niveau détaillé. Vous pouvez utiliser des filtres de métadonnées pour limiter les documents recherchés, mais les autorisations au niveau utilisateur ne sont actuellement pas prises en charge.

Quelles sont les limites de taille des fichiers et de l'espace de stockage ?

Les fichiers individuels peuvent atteindre environ 100 Mo, et les niveaux de stockage peuvent aller jusqu'à environ 1 To. Le fait de maintenir les magasins sous la limite de 20 Go garantit généralement une récupération plus rapide.

Quelle est la fiabilité des citations ?

La recherche de fichiers ajoute des métadonnées de base indiquant les segments de document qui ont servi à formuler une réponse. Ces citations améliorent la transparence, mais leur exactitude doit néanmoins être vérifiée.

La recherche de fichiers utilise-t-elle la récupération par mot-clé ou par vecteur ?

Il s'appuie sur une recherche sémantique (basée sur des vecteurs). Si vous avez besoin d'une correspondance exacte des mots-clés, vous devrez configurer une recherche personnalisée ou hybride.


Bex Tuychiev's photo
Author
Bex Tuychiev
LinkedIn

Je suis un créateur de contenu en science des données avec plus de 2 ans d'expérience et l'un des plus grands followings sur Medium. J'aime écrire des articles détaillés sur l'IA et la ML dans un style un peu sarcastıc, car il faut bien faire quelque chose pour les rendre un peu moins ennuyeux. J'ai produit plus de 130 articles et un cours DataCamp, et un autre est en cours d'élaboration. Mon contenu a été vu par plus de 5 millions de personnes, dont 20 000 sont devenues des adeptes sur Medium et LinkedIn. 

Sujets

Meilleurs cours DataCamp

Cours

Retrieval Augmented Generation (RAG) with LangChain

3 h
11.9K
Learn cutting-edge methods for integrating external data with LLMs using Retrieval Augmented Generation (RAG) with LangChain.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow