Brief IA

Gemini révolutionne la recherche de fichiers avec l'API RAG multimodal

💻 Code & Dev·Tom Levy·

Gemini révolutionne la recherche de fichiers avec l'API RAG multimodal

Gemini révolutionne la recherche de fichiers avec l'API RAG multimodal
Key Takeaways
1L'API Gemini permet d'accéder à des informations à partir de diverses sources de données, y compris des documents et des images, en les transformant en embeddings.
2Grâce à la recherche vectorielle sémantique, Gemini peut fournir des réponses pertinentes en analysant le sens et le contexte des requêtes.
3Les développeurs peuvent configurer un File Search Store pour stocker et indexer des embeddings, facilitant ainsi la récupération d'informations multimodales.
💡Why it mattersCette technologie simplifie l'accès à des données complexes, optimisant la recherche et l'analyse pour les entreprises et les chercheurs.
Le brief IA que lisent les pros

Le brief IA que les pros lisent chaque soir

Les 7 actus IA du jour, décryptées en 5 min. Gratuit.

Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.

Choisis ton rythme

Gratuit · Pas de spam · Désabonnement en 1 clic

📄
Full Analysis

L'API Gemini : une avancée dans la recherche de fichiers

Une nouvelle approche pour accéder aux données

L'API Gemini offre une solution innovante pour accéder et utiliser des informations provenant de diverses sources de données. Que ce soit des rapports, des documents de recherche, du code ou des bases de connaissances privées, cette technologie permet une gestion simplifiée et efficace des données. Lorsqu'un fichier est téléchargé, Gemini le segmente en unités plus petites, appelées "chunks", et génère des embeddings pour chacun de ces segments. Ces embeddings sont des représentations numériques qui capturent le sens du contenu, permettant à Gemini de comprendre le contexte de manière approfondie. Ces données sont ensuite stockées dans un File Search Store, facilitant leur récupération ultérieure.

Lorsque vous posez une question à Gemini, il recherche les embeddings les plus pertinents parmi ceux stockés et les utilise pour générer des réponses. Ce processus est au cœur de la Retrieval Augmented Generation (RAG), une méthode qui enrichit la génération de contenu en s'appuyant sur des données préexistantes.

Une recherche multimodale pour une compréhension enrichie

La recherche de fichiers de Gemini ne se limite pas au texte. Elle intègre également le RAG multimodal, permettant d'indexer et de rechercher des informations à la fois textuelles et visuelles. Cela signifie que vous pouvez extraire des informations de fichiers PDF, d'images, de graphiques, de captures d'écran, et bien plus encore, en utilisant des requêtes formulées en langage naturel. Pour les tâches multimodales, Gemini utilise gemini-embedding-2 pour les images et les embeddings multimodaux, tandis que gemini-embedding-001 est dédié aux embeddings textuels. Cependant, il est important de noter que les formats audio et vidéo ne sont pas encore pris en charge.

Le fonctionnement détaillé de la recherche de fichiers

La recherche de fichiers de Gemini repose sur une recherche vectorielle sémantique. Contrairement à une recherche traditionnelle qui se base sur la correspondance exacte des mots, cette méthode trouve des informations en analysant le sens et le contexte. Cela permet à Gemini de fournir des informations pertinentes même si la formulation de la requête diffère de celle des documents sources.

Voici un aperçu du processus :

  • Téléchargement d'un fichier : Le fichier est divisé en sections plus petites, appelées "chunks".
  • Génération d'embeddings : Chaque chunk est transformé en un vecteur numérique qui représente son sens.
  • Stockage : Ces embeddings sont stockés dans un File Search Store, un espace dédié à leur récupération.
  • Requête : Lorsqu'un utilisateur pose une question, celle-ci est transformée en un embedding.
  • Récupération : L'embedding de la question est comparé aux embeddings stockés pour identifier les chunks les plus similaires.
  • Ancrage : Les chunks pertinents sont intégrés dans le prompt du modèle Gemini, garantissant que la réponse est ancrée dans les données factuelles des documents.

Ce processus est entièrement géré par l'API Gemini, ce qui évite aux développeurs de devoir gérer une infrastructure ou des bases de données supplémentaires.

Configuration requise pour utiliser l'outil

Pour tirer parti de l'outil de recherche de fichiers, les développeurs doivent disposer de certains éléments essentiels. Il est nécessaire d'avoir Python 3.9 ou une version ultérieure, la bibliothèque cliente google-genai, et une clé API Gemini valide avec accès à gemini-2.5-pro ou gemini-2.5-flash.

Pour installer la bibliothèque cliente, exécutez la commande suivante :

pip install google-genai -U

Ensuite, configurez votre variable d'environnement pour la clé API :

export GOOGLE_API_KEY="your_api_key_here"

Création d'un File Search Store

Un File Search Store est l'endroit où Gemini stocke et indexe les embeddings créés à partir des fichiers téléchargés. Une fois qu'un fichier est téléchargé et indexé, les données restent disponibles pour la récupération jusqu'à ce qu'elles soient supprimées manuellement.

Pour un RAG uniquement textuel, vous pouvez créer un File Search Store standard. Pour un RAG multimodal, où vous souhaitez télécharger et rechercher à la fois des documents et des images, créez le magasin avec models/gemini-embedding-2.

from google import genai
from google.genai import types
from pathlib import Path
import os

# Ne pas coder en dur votre clé API dans le notebook.
# Définissez-la plutôt comme une variable d'environnement.
os.environ["GOOGLE_API_KEY"] = "enter_your_api_key"
client = genai.Client(api_key=os.environ["GOOGLE_API_KEY"])
file_search_store = client.file_search_stores.create(
    display_name="my_multimodal_rag_store",
    embedding_model="models/gemini-embedding-2"
)
print("File Search Store created:", file_search_store.name)

Cette mise à jour est cruciale car la documentation officielle précise l'utilisation de embedding_model: models/gemini-embedding-2 lors de la création d'un File Search Store pour une utilisation multimodale.

Téléchargement et indexation des fichiers

Une fois le File Search Store créé, vous pouvez y télécharger des fichiers. Lorsqu'un fichier est téléchargé, la recherche de fichiers de Gemini segmente automatiquement le contenu, génère des embeddings et l'indexe pour une récupération rapide.

Pour le RAG basé sur du texte, la recherche de fichiers prend en charge des documents tels que PDF, DOCX, TXT, JSON, ainsi que des fichiers de programmation comme .py et .js.

Pour le RAG multimodal, la recherche de fichiers prend également en charge les fichiers image. Cela signifie que vous pouvez télécharger des documents et des images dans le même File Search Store et poser des questions nécessitant à la fois un contexte textuel et visuel. Par exemple, vous pouvez télécharger un article de recherche, une image de produit et un graphique, puis demander à Gemini de résumer l'article et d'expliquer les informations visuelles associées.

Pour les téléchargements d'images, assurez-vous que le File Search Store est créé avec models/gemini-embedding-2. Selon la documentation officielle, les formats d'image pris en charge sont PNG et JPEG. Les fichiers image doivent avoir au maximum 4K x 4K pixels.

Télécharger un fichier document

# Télécharger et importer un document dans le File Search Store.
# Le nom affiché sera visible dans les citations.
operation = client.file_search_stores.upload_to_file_search_store(
    file="/content/Paper2Agent.pdf",
    file_search_store_name=file_search_store.name,
    display_name="Paper2Agent.pdf",
)

# Attendre que l'importation soit terminée
while not operation.done:
    operation = client.operations.get(operation)

print("Document successfully uploaded and indexed.")

Après cette étape, le document est divisé en chunks, intégré, indexé et prêt pour la récupération.

Télécharger un fichier image pour la récupération multimodale

Vous pouvez également télécharger un fichier image dans le même File Search Store. Cela est utile lorsque votre application doit récupérer des informations à partir d'images de produits, de captures d'écran, de graphiques, de diagrammes ou d'autres contenus visuels.

# Télécharger un fichier image pour la récupération multimodale.
operation = client.file_search_stores.upload_to_file_search_store(
    file="/content/product_image.jpg",
    file_search_store_name=file_search_store.name,
    display_name="product_image.jpg",
)

# Attendre que l'importation soit terminée
while not operation.done:
    operation = client.operations.get(operation)

print("Image successfully uploaded and indexed.")

Une fois l'image indexée, Gemini peut la récupérer lors de la recherche de fichiers lorsque la requête de l'utilisateur est pertinente par rapport à l'image.

Télécharger plusieurs documents et images

Dans des applications réelles, vous souhaiterez peut-être télécharger plusieurs fichiers à la fois. Ces fichiers peuvent inclure à la fois des documents texte et des images.

from pathlib import Path

files_to_upload = [
    "/content/Paper2Agent.pdf",
    "/content/product_image.jpg",
    "/content/sales_chart.png"
]

for file_path in files_to_upload:
    operation = client.file_search_stores.upload_to_file_search_store(
        file_search_store_name=file_search_store.name,
        display_name=Path(file_path).name,
    )
    
    while not operation.done:
        operation = client.operations.get(operation)
    
    print(f"Uploaded and indexed: {file_path}")

Après l'étape de téléchargement, tous les fichiers sont divisés en chunks, intégrés, indexés et prêts pour la récupération. Si le File Search Store contient à la fois des documents et des images, Gemini peut récupérer un contexte pertinent à partir des deux sources tout en répondant aux questions des utilisateurs.

Poser des questions sur le fichier

Une fois vos fichiers indexés, Gemini peut répondre à des questions en utilisant les documents et les images téléchargés comme contexte. Il recherche dans le File Search Store, récupère les chunks les plus pertinents et les utilise pour générer une réponse fondée.

Pour un cas d'utilisation uniquement textuel, vous pouvez poser une question sur le PDF téléchargé :

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="Summarize what is there in the research paper.",
    config=types.GenerateContentConfig(
        file_search_store_name=file_search_store.name,
    )
)

Pour les requêtes multimodales, une requête peut inclure un maximum de 6 images.

Brief IA — L'actualité IA en français

L'essentiel de l'actualité de l'intelligence artificielle, décrypté et expliqué chaque jour.