Indexation des référentiels de code avec IBM watsonx.ai Studio

watsonx Code Assistant Plan standard

Vous pouvez utiliser IBM watsonx.ai Studio pour indexer vos référentiels de code afin de permettre la génération augmentée par récupération (RAG).

Avant de commencer

  • Provisionnez une instance de Milvus ou Elasticsearch DB sur IBM Cloud avant d'exécuter le notebook.
  • Provisionner une instance de watsonx.ai Studio pour exécuter le bloc-notes. Pour créer une instance de watsonx.ai Studio, voir le catalogue de watsonx.ai Studio.
  • Assurez-vous que vous disposez d'une clé API pour accéder à watsonx Code Assistant afin de générer des explications pour les fonctions de votre code. Les explications sont indexées avec le code pour de meilleurs résultats de recherche. Pour plus d'informations, voir Créer une clé API IBM Cloud.

Planification de l'index

Une indexation efficace est essentielle pour optimiser les performances de watsonx Code Assistant lorsque vous utilisez RAG. Tenez compte des facteurs suivants lorsque vous indexez le référentiel ou les documents :

  • Veillez à ce que l'espace de stockage du disque soit deux fois plus important que le contenu à indexer.

  • Indexer les référentiels de code lorsque vous réutilisez du code existant pour générer du nouveau code, localiser des implémentations de fonctions spécifiques, répondre à des questions pratiques liées à la base de code. Vous pouvez inclure les projets de code principal et leurs dépendances telles que la mise en œuvre de l'API.

  • Indexez les référentiels documentaires tels que la documentation sur les produits ou les projets, les guides techniques et les documents de conception si vous avez besoin de watsonx Code Assistant pour répondre à des requêtes basées sur ces documents.

  • N'indexez pas les référentiels de code ou les documents rarement utilisés afin de réduire l'utilisation de l'espace de stockage et de minimiser le temps nécessaire à la création et à la maintenance de l'index.

  • Utilisez un index par dépôt, en particulier pour le code source, afin de limiter la recherche contextuelle à des dépôts spécifiques.

  • Combinez plusieurs référentiels de documentation en un seul index si vous effectuez couramment des recherches dans tous les documents. Vous pouvez créer des index distincts si les mots-clés se chevauchent de manière significative entre les référentiels et si des équipes ou des utilisateurs différents ont besoin de rechercher le contexte dans les référentiels de documentation spécifiques.

  • Ne fusionnez pas du code provenant de différents dépôts dans le même index. Le code fusionné réduit la précision de la génération de la réponse à l'invite et conduit à un accès non autorisé au code si la restriction d'accès pour les utilisateurs n'est pas correctement mise en œuvre.

  • Veillez à gérer correctement la sécurité et les autorisations pendant le processus d'indexation. Pour différents scénarios d'utilisation, voir Scénarios d'utilisation.

  • Assurez-vous que toutes les approbations organisationnelles nécessaires ont été obtenues avant d'indexer le contenu confidentiel ou sensible. Le code source et les documents utilisés pour RAG sont sauvegardés sous forme de texte brut et de format vectoriel dans un magasin vectoriel en dehors de votre référentiel GitHub.

Indexation des référentiels de code

  1. Se connecter à ce projet : Créer des magasins de vecteurs RAG pour watsonx Code Assistant.

  2. Cliquez sur Create Project.

  3. Sélectionnez une instance Cloud Object Storage dans le champ Stockage. Si l'instance Cloud Object Storage n'est pas disponible dans la liste déroulante, créez-la.

  4. Cliquez sur Créer.

  5. Allez dans l'onglet Asset de votre projet et cliquez sur Populate vector store notebook.

  6. Suivez les instructions du carnet Populate vector store pour indexer le code ou le document.