Créer une recherche de contenu basée sur l'IA avec l'agent Docs

La recherche d'informations est l'une des utilisations les plus courantes des des modèles génératifs basés sur l'IA. Créer une interface de recherche conversationnelle pour vos contenus grâce à l'IA, qui permet aux utilisateurs de poser des questions spécifiques et d'obtenir des réponses directes.

Ce tutoriel vous explique comment créer une recherche conversationnelle basée sur l'IA de votre contenu. Il est basé sur Agent Docs un projet Open Source qui utilise l'API Gemini de Google pour créer une conversation de recherche, sans entraîner un nouveau modèle d'IA ni le régler avec modèles Gemini. Vous pouvez donc développer rapidement cette fonctionnalité utilisez-le pour des jeux de contenu petits et grands.

Pour obtenir une présentation vidéo du projet et de la façon de l'étendre, y compris des informations des personnes qui le construisent, consultez: Recherche de contenu IA | Développer avec l'IA de Google Sinon, vous pouvez commencer à étendre le projet en suivant les instructions ci-dessous.

Présentation

Le projet Agent Docs fournit une interface de recherche conversationnelle pour un utilisateur donné s'appuie sur l'API Gemini de Google et des modèles génératifs. Les utilisateurs peuvent poser une question détaillée dans un style conversationnel et obtenir une réponse détaillée en fonction d'un ensemble de contenu spécifique. En arrière-plan, l'agent Docs se charge et effectue une recherche dans une base de données vectorielle du contenu, requête détaillée pour le modèle génératif, avec des extraits de texte pertinent. Le modèle génératif génère une réponse à la question et l'agent Docs formate la réponse et la présente à l'utilisateur.

Schéma fonctionnel de l'agent Docs Figure 1 : Schéma fonctionnel de l'application de projet de l'agent Docs.

Pour que l'agent Docs puisse répondre aux questions concernant votre contenu, une base de données vectorielle de ce contenu. Vous séparez votre contenu en des blocs de texte logiques et générer un vecteur pour chacun d'eux. Ces vecteurs sont des représentations numériques des informations de chaque fragment et sont générées avec une fonction d'IA de représentations vectorielles continues des modèles génératifs de Google.

Lorsqu'un utilisateur pose une question, l'agent Docs utilise la même représentation vectorielle continue de texte pour créer une représentation numérique de la question et l'utilise pour rechercher dans la base de données vectorielle et trouver du contenu associé. Elle prend les meilleures et ajoute ces informations à une requête pour le modèle génératif. L'IA prend la question et les informations contextuelles supplémentaires, et génère réponse.

Configuration du projet

Les instructions qui suivent vous guident dans la configuration du projet Agent Docs le développement et les tests. La procédure générale consiste à installer logiciel, définir quelques variables d'environnement, cloner le projet à partir du code et l'installation de la configuration. Le projet de code utilise Python Poetry pour gérer les packages et l'environnement d'exécution Python.

Installer les prérequis

Le projet Agent Docs utilise Python 3 et Python Poetry pour gérer les packages et exécuter l'application. Les instructions d'installation suivantes concernent la machine hôte.

Pour installer le logiciel requis:

  1. Installez Python 3 et le package d'environnement virtuel venv pour Python.
    sudo apt update
    sudo apt install git pip python3-venv
    
  2. Installez Python Poetry pour gérer les dépendances et le packaging de projet.
    curl -sSL https://install.python-poetry.org | python3 -
    

Vous pouvez utiliser Python Poetry pour ajouter d'autres bibliothèques Python si vous étendez le projet.

Définir des variables d'environnement

Définissez quelques variables d'environnement requises pour autoriser le code de l'agent Docs à exécuter, y compris une clé API Google Gemini et des Cadre dédié à la poésie. Vous pouvez ajouter ces variables à votre fichier $HOME/.bashrc si vous utilisez Linux, pour les définir comme paramètres par défaut pour votre terminal sessions.

Pour définir les variables d'environnement:

  1. Obtenez une clé API Google Gemini et copiez la chaîne de clé.
  2. Définissez la clé API en tant que variable d'environnement. Sur les hôtes Linux, utilisez la commande la commande suivante.
    export API_KEY=<YOUR_API_KEY_HERE>
    
  3. Résoudre un problème connu problème pour la poésie Python en définissant le paramètre PYTHON_KEYRING_BACKEND. Sur les hôtes Linux, utilisez la commande suivante :
    export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
    

Cloner et configurer le projet

Téléchargez le code du projet et utilisez la commande d'installation Poetry pour télécharger les dépendances requises et configurer le projet. Vous devez git pour récupérer le code source, le code source du projet. externe Pour télécharger et configurer le code du projet:

  1. Clonez le dépôt Git à l'aide de la commande suivante.
    git clone https://github.com/google/generative-ai-docs
    
  2. Vous pouvez éventuellement configurer votre dépôt Git local pour utiliser le paiement creuse. Vous n'avez donc que les fichiers du projet Agent Docs.
    cd generative-ai-docs/
    git sparse-checkout init --cone
    git sparse-checkout set examples/gemini/python/docs-agent/
    
  3. Accédez au répertoire racine du projet docs-agent.
    cd examples/gemini/python/docs-agent/
    
  4. Exécutez la commande d'installation Poetry pour télécharger les dépendances et configurer le projet:
    poetry install
    

Préparer le contenu

Le projet Agent Docs est conçu pour fonctionner avec du contenu textuel. Il inclut spécifiquement pour travailler avec les sites web qui utilisent Markdown comme format source. Si vous travaillez avec du contenu de site Web, vous devez conserver (ou dupliquer) le structure de répertoires du site Web diffusé pour permettre le traitement du contenu pour mapper et créer des liens vers ce contenu.

En fonction du format et des détails de votre contenu, vous devrez peut-être nettoyer votre les contenus visant à supprimer des informations non publiques, des notes internes ou d'autres informations que vous ne voulez pas inclure dans l'index de recherche. Vous devez conserver le formatage de base tel que comme les titres et les en-têtes, ce qui permet de créer des divisions logiques, ou fragments, dans le lors du traitement du contenu.

Pour préparer le contenu en vue de son traitement:

  1. Créez un répertoire pour le contenu que l'agent d'IA doit rechercher.
    mkdir docs-agent/content/
    
  2. Copiez votre contenu dans le répertoire docs-agent/content/. Si le est un site Web, préservez (ou répliquez) la structure du répertoire le site Web diffusé.
  3. nettoyer ou modifier le contenu si nécessaire pour supprimer les informations non publiques ; d'autres informations que vous ne souhaitez pas inclure dans les recherches.

Utiliser les documents Flutter pour les tests

Si vous avez besoin d'un ensemble de contenu pour tester l'agent Docs, vous pouvez utiliser la fonction Flutter développeurs à des fins de test.

Pour obtenir la documentation destinée aux développeurs Flutter:

  1. Accédez au répertoire du contenu que l'agent d'IA doit transférer recherche.
    cd docs-agent/content/
    
  2. Clonez la documentation Flutter dans le répertoire docs-agent/content/.
    git clone --recurse-submodules https://github.com/flutter/website.git
    

Traiter le contenu

Pour que l'agent de recherche puisse rechercher efficacement du contenu en rapport avec des utilisateurs vous devez créer une base de données de vecteurs contenus. Les vecteurs sont générés à l'aide d'une fonction de modèle génératif d'IA appelée représentation vectorielle continue de texte. Les représentations vectorielles continues de texte sont des représentations numériques du texte contenus. Elles se rapprochent de la signification sémantique du texte sous la forme d'un ensemble de chiffres. Le fait d'avoir des représentations numériques des informations permet au système la question d'un utilisateur, sa signification approximative à l'aide de la même représentation vectorielle continue de texte fonction, puis trouver des informations connexes sous la forme d'un calcul mathématique, en utilisant a k voisins les plus proches (k-NN).

Scinder le contenu du texte

La quantité de texte qu'un vecteur de représentation vectorielle continue de texte peut représenter efficacement est sont limitées. Ce projet limite le texte représenté dans un vecteur à 3 000 caractères ou moins, ce qui signifie que vous devez diviser votre contenu en fragments nombre maximal de caractères. Cette section décrit comment utiliser un script fourni avec le Projet d'agent Docs permettant de diviser les fichiers Markdown en fragments de texte plus petits. Pour obtenir des conseils sur avec d'autres formats de contenu, consultez Gérer d'autres formats

<ph type="x-smartling-placeholder">

Pour diviser le contenu au format Markdown:

  1. Configurez les paramètres d'entrée du script de traitement en modifiant les docs-agent/config.yaml. Cet exemple cible un sous-ensemble de la documentation sur Flutter:
    input:
    - path: "content/website/src/ui"
      url_prefix: "https://docs.flutter.dev/ui"
    
  2. Enregistrez les modifications apportées à ce fichier de configuration.
  3. Accédez au répertoire du projet docs-agent:
    cd docs-agent/
    
  4. Divisez le contenu source Markdown en exécutant la commande agent chunk:
    agent chunk
    

Le script traite le contenu d'entrée et crée des fichiers texte de sortie dans le fichier Répertoire docs-agent/data, qui divise le texte en fonction des titres, des en-têtes paragraphes associés. Le traitement peut prendre un certain temps, en fonction de la taille contenus.

Créer des vecteurs de représentation vectorielle continue de texte

Après avoir divisé votre contenu en sections pertinentes de taille appropriée, vous Vous pouvez insérer votre contenu dans la base de données vectorielle à l'aide d'une représentation vectorielle continue de texte. . Le projet Agent Docs utilise l'API Chroma de données vectorielles pour stocker des vecteurs de représentation vectorielle continue de texte. Ces instructions expliquent comment pour utiliser le script Agents Docs afin de remplir une base de données vectorielle avec votre fractionnement contenus.

Pour générer des représentations vectorielles continues de texte et remplir la base de données vectorielle:

  1. Accédez au répertoire du projet docs-agent:
    cd docs-agent/
    
  2. Insérer votre contenu dans la base de données vectorielle à l'aide de agent populate Commande:
    agent populate
    

Ce script utilise l'API Gemini de Google pour générer représentation vectorielle continue de texte puis enregistre le résultat dans la base de données vectorielle. Le traitement peut prendre en fonction de la taille de votre contenu.

Gérer d'autres formats

Le projet Agent Docs est conçu pour fonctionner avec le contenu de sites Web dans Markdown . Les auteurs du projet ont construit quelques scripts de conversion pour générer d'autres types de contenus au format Markdown, y compris Google Docs, Portable Format de document (PDF) et Gmail. Pour en savoir plus sur l'utilisation ayant déjà réalisé une conversion, consultez les docs-agent/apps_script du dépôt de code.

Convertir d'autres formats de contenu

Vous pouvez utiliser d'autres formats de contenu avec le projet, des méthodes supplémentaires doivent être élaborées par vous ou d’autres membres de la communauté. Vérifier le dépôt de code Problèmes et Demandes d'extraction pour ceux qui créent des solutions similaires.

Le code clé que vous devez créer pour être compatible avec d'autres formats de contenu est un séparateur script comme le files_to_plain_text.py script. Essayez de créer un script ou un programme qui génère une sortie semblable à celle-ci. script. N'oubliez pas que le texte final doit avoir une mise en forme minimale et des informations superflues. Si vous utilisez des formats de contenu tels que HTML ou JSON, veillez à supprimer une grande partie de la mise en forme non informative (balises, l'écriture de script, CSS, etc.), afin de ne pas fausser les valeurs du texte les représentations vectorielles continues que vous générez à partir de celles-ci.

Une fois que vous avez créé un script de fractionnement pour le format de contenu, vous devriez être en mesure de exécuter l' populate_vector_database.py pour remplir votre base de données vectorielle. Pour en savoir plus sur le traitement à utiliser avec l'agent Docs, consultez l'agent Docs Prétraiter le fichier README

Tester l'application

Une fois le remplissage de votre base de données vectorielle terminé, le projet est prêt à des fins de test. Le projet fournit une fonction d'empaquetage qui vous permet d'exécuter à l'aide d'un projet local.

Pour exécuter et tester l'interface Web du projet:

  1. Accédez au répertoire du projet docs-agent:
    cd docs-agent/
    
  2. Exécutez le script de lancement de l'application Web:
    agent chatbot
    
  3. Dans votre navigateur Web, accédez à l'URL indiquée dans le sortie du script de lancement et tester l'application.
    * Running on http://your-hostname-here:5000
    

Options de mise en œuvre

L'API Gemini fournit des outils de programmation pouvant remplacer les composants des l'implémentation de l'agent Docs, en particulier pour la récupération sémantique Variante du modèle Gemini de réponse aux questions (AQA). Vous pouvez utiliser les fonctionnalités Récupération sémantique pour remplacer la base de données vectorielle distincte. Fonctionnalité de récupération sémantique vous permet de générer des représentations vectorielles continues pour votre contenu et de le stocker. La AQA : le modèle Gemini est réglé pour répondre aux questions avec le matériel source fourni dans une requête. Vous utilisez la sémantique la récupération avec le modèle AQA pour répondre aux questions sur votre contenu, le tout depuis l'API Gemini.

L'agent Docs inclut des options de configuration permettant d'utiliser l'agent sémantique fonctionnalité de l'API de récupération, que le modèle AQA Gemini, ou les deux. Pour en savoir plus, consultez la Fichier Readme de l'agent Docs

Ressources supplémentaires

Pour en savoir plus sur le projet Agent Docs, consultez la dépôt de code. Si vous avez besoin d'aide pour créer l'application ou si vous recherchez un développeur collaborateurs, consultez le Discord de la communauté Google Developers Google Cloud.

Applications de production

Si vous envisagez de déployer l'agent Docs pour une large audience, notez que votre utilisation de l'API Gemini de Google peut être soumise à une limitation du débit et à d'autres restrictions d'utilisation. Si vous envisagez de créer une application de production avec l'API Gemini telle que Agent Docs, consultez Google Cloud Vertex AI pour améliorer l'évolutivité et la fiabilité de votre application.