Démarrage rapide : vectoriser du texte et des images à l’aide du portail Microsoft Azure

Ce guide de démarrage rapide vous explique comment utiliser la vectorisation intégrée en utilisant l’Assistant Importation et vectorisation des données dans le portail Microsoft Azure. L’Assistant segmente votre contenu et appelle un modèle d’incorporation pour vectoriser le contenu pendant l’indexation et pour les requêtes.

Points clés sur l’Assistant :

  • Les sources de données prises en charge sont soit Stockage Blob Azure, Azure Data Lake Storage (ADLS) Gen2, ou les raccourcis et fichiers OneLake.

  • Les modèles d’incorporation pris en charge sont hébergés sur Azure OpenAI, le catalogue de modèles Azure AI Vision et Azure AI Vision multimodal.

  • Le schéma d’index fournit des champs vectoriels et non vectoriels pour les données segmentées.

  • Vous pouvez ajouter des champs, mais vous ne pouvez pas supprimer ou modifier des champs générés.

  • Le mode d’analyse syntaxique crée des segments (un document de recherche par segment).

  • La segmentation n’est pas configurable. Les paramètres effectifs sont les suivants :

    "textSplitMode": "pages",
    "maximumPageLength": 2000,
    "pageOverlapLength": 500,
    "maximumPagesToTake": 0, #unlimited
    "unit": "characters",
    

Prérequis

Si vous utilisez le service Azure OpenAI Service, il doit avoir un sous-domaine personnalisé associé. Si le service a été créé via le Portail Azure, ce sous-domaine est automatiquement généré dans le cadre de la configuration de votre service. Vérifiez que votre service inclut un sous-domaine personnalisé avant de l’utiliser avec l’intégration de Recherche Azure AI.

Les ressources Azure OpenAI Service (avec accès aux modèles d’incorporation) créées dans AI Studio ne sont pas prises en charge. Seules les ressources Azure OpenAI Service créées dans le Portail Azure sont compatibles avec l’intégration de la compétence Incorporation d’Azure OpenAI.

Exigences relatives aux points de terminaison publics

L’accès public doit être activé pour toutes les ressources précédentes afin que les nœuds du portail puissent y accéder. Sinon, l’Assistant échoue. Une fois l’Assistant exécuté, vous pouvez activer des pare-feux et des points de terminaison privés sur les composants d’intégration à des fins de sécurité. Pour plus d’informations, consultez Connexions sécurisées dans les Assistants d’importation.

Si des points de terminaison privés sont déjà présents et que vous ne pouvez pas les désactiver, une autre option consiste à exécuter le flux respectif de bout en bout à partir d’un script ou d’un programme sur une machine virtuelle. La machine virtuelle doit se trouver sur le même réseau virtuel que le point de terminaison privé. Voici un exemple de code Python pour la vectorisation intégrée. Le même référentiel GitHub contient des exemples dans d’autres langages de programmation.

Exigences relatives au contrôle d’accès en fonction du rôle

Nous vous recommandons d’utiliser des attributions de rôle pour les connexions du service de recherche à d’autres ressources.

  1. Sur Recherche Azure AI, activez les rôles.

  2. Configurez votre service de recherche pour utiliser une identité managée.

  3. Sur votre plateforme de source de données et votre fournisseur de modèles d’incorporation, créez des attributions de rôles qui permettent au service de recherche d’accéder aux données et aux modèles. La section Préparer des exemples de données fournit des instructions pour configurer des rôles.

Un service de recherche gratuit prend en charge le contrôle d’accès en fonction du rôle sur les connexions à Recherche Azure AI, mais il ne prendra pas en charge les identités managées sur les connexions sortantes vers Stockage Azure ou Azure AI Vision. Ce niveau de prise en charge signifie que vous devez utiliser l’authentification basée sur les clés sur les connexions entre un service de recherche gratuit et d’autres services Azure.

Pour les connexions plus sécurisées :

Remarque

Si vous ne pouvez pas avancer dans l’Assistant parce que les options ne sont pas disponibles (par exemple, vous ne pouvez pas sélectionner une source de données ou un modèle d’incorporation), revenez aux attributions de rôle. Les messages d’erreur indiquent que les modèles ou les déploiements n’existent pas, alors qu’en fait la véritable cause est que le service de recherche n’a pas l’autorisation d’y accéder.

Vérifier l’espace disponible

Si vous commencez par le niveau Gratuit, vous êtes limité à trois index, aux sources de données, aux ensembles de compétences et aux indexeurs. Le niveau De base vous limite à 15. Avant de commencer, assurez-vous de disposer d’assez d’espace pour stocker des éléments supplémentaires. Ce guide de démarrage rapide crée une occurrence de chaque objet.

Rechercher un classeur sémantique

Cet Assistant prend en charge le classement sémantique, mais uniquement à partir du niveau Essentiel, et seulement si le classement sémantique est déjà activé sur votre service de recherche. Si vous utilisez un niveau facturable, vérifiez si le classeur sémantique est activé.

Préparer l’exemple de données

Cette section vous pointe vers des données qui fonctionnent pour ce guide de démarrage rapide.

  1. Connectez-vous au portail Azure avec votre compte Azure, puis accédez à votre compte stockage Azure.

  2. Dans le volet gauche, sous Stockage de données, sélectionnez Conteneurs.

  3. Créez un conteneur, puis chargez les documents PDF des plans d’intégrité utilisés pour ce guide de démarrage rapide.

  4. Dans le volet gauche, sous Contrôle d’accès, affectez le rôle Lecteur de données blob de stockage à l’identité du service de recherche. Vous pouvez également obtenir une chaîne de connexion pour le compte de stockage depuis la page Clés d’accès.

  5. Si vous le souhaitez, synchronisez les suppressions dans votre conteneur avec des suppressions dans l’index de recherche. Ces étapes suivantes vous permettent de configurer l’indexeur pour la détection de suppression :

    1. Activer la suppression réversible sur votre compte de stockage.

    2. Si vous utilisez suppression réversible native, aucune étape supplémentaire n’est requise sur stockage Azure.

    3. Sinon, ajouter des métadonnées personnalisées qu’un indexeur peut analyser pour déterminer quels objets blob sont marqués pour suppression. Donnez à votre propriété personnalisée un nom descriptif. Par exemple, vous pouvez nommer la propriété « IsDeleted », définie sur false. Effectuez cette opération pour chaque objet blob dans le conteneur. Plus tard, lorsque vous souhaitez supprimer l’objet blob, remplacez la propriété par true. Pour plus d’informations, consultez Détection des modifications et des suppressions lors de l’indexation à partir du Stockage Microsoft Azure

Configurer les modèles d’incorporation

L’Assistant peut utiliser des modèles incorporés déployés à partir d’Azure OpenAI, d’Azure AI Vision ou du catalogue de modèles dans Azure AI Studio.

L’Assistant prend en charge text-embedding-ada-002, text-embedding-3-large et text-embedding-3-small. En interne, l’Assistant appelle la compétence AzureOpenAIEmbedding pour se connecter à Azure OpenAI.

  1. Connectez-vous au portail Azure avec votre compte Azure, puis accédez à votre ressource Azure OpenAI.

  2. Configurez les autorisations :

    1. Dans le menu de gauche, sélectionnez Contrôle d’accès.

    2. Sélectionnez Ajouter, puis sélectionnez Ajouter une attribution de rôle.

    3. Sous Rôles de fonction de tâche, sélectionnez Utilisateur Cognitive Services OpenAI, puis Suivant.

    4. Sous Membres, sélectionnez Identité managée, puis Membres.

    5. Filtrez par abonnement et type de ressource (services de recherche), puis sélectionnez l’identité managée de votre service de recherche.

    6. Sélectionnez Vérifier + attribuer.

  3. Dans la page Vue d’ensemble, sélectionnez Cliquez ici pour voir les points de terminaison et Cliquez ici pour gérer les clés si vous devez copier un point de terminaison ou une clé API. Vous pouvez coller ces valeurs dans l’Assistant si vous utilisez une ressource Azure OpenAI avec une authentification basée sur des clés.

  4. Sous Gestion des ressources et Déploiements de modèle, sélectionnez Gérer les déploiements pour ouvrir Azure AI Studio.

  5. Copiez le nom de déploiement de text-embedding-ada-002 ou d’un autre modèle d’incorporation pris en charge. Si vous n’avez pas de modèle d’incorporation, déployez-en un maintenant.

Démarrer l’Assistant

  1. Connectez-vous au portail Azure avec votre compte Azure, puis accédez à votre service Azure AI Search.

  2. Dans la page Vue d’ensemble, sélectionnez Importation et vectorisation des données.

    Capture d’écran de la commande permettant d’ouvrir l’Assistant pour importer et vectoriser des données.

Connexion à vos données

L’étape suivante consiste à se connecter à une source de données à utiliser pour l’index de recherche.

  1. Dans la page Configurer votre connexion de données, sélectionnez Stockage Blob Azure.

  2. Spécifiez l’abonnement Azure.

  3. Choisissez le compte de stockage et le conteneur qui fournissent les données.

  4. Spécifiez si vous souhaitez la prise en charge de la détection de suppression. Lors des exécutions d’indexation suivantes, l’index de recherche est mis à jour pour supprimer tous les documents de recherche basés sur des objets blob supprimés de manière réversible sur stockage Azure.

    • Les blobs supportent soit la suppression réversible des blobs natifs, soit la suppression réversible à l’aide de données personnalisées.
    • Vous devez avoir précédemment activé suppression réversible sur stockage Azure, et éventuellement des métadonnées personnalisées ajoutées que l’indexation peut reconnaître comme indicateur de suppression. Pour plus d’informations sur ces étapes, voir Préparer des données échantillons.
    • Si vous avez configuré vos blobs pour la suppression réversible à l’aide de données personnalisées, indiquez la paire nom-valeur de la propriété de métadonnées dans cette étape. Nous vous recommandons « IsDeleted ». Si « IsDeleted » a la valeur true sur un objet blob, l’indexeur supprime le document de recherche correspondant lors de l’exécution suivante de l’indexeur.

    L’Assistant ne vérifie pas le stockage Azure pour connaître les paramètres valides ou génère une erreur si les exigences ne sont pas remplies. Au lieu de cela, la détection de suppression ne fonctionne pas et votre index de recherche est susceptible de collecter des documents orphelins au fil du temps.

    Capture d’écran de la page de source de données avec les options de détection de suppression.

  5. Spécifiez si vous souhaitez que votre service de recherche se connecte au Stockage Azure à l’aide de son d’identité managée.

    • Vous êtes invité à choisir une identité managée par le système ou managée par l’utilisateur.
    • L’identité doit avoir un rôle Lecteur de données blob de stockage sur Stockage Azure.
    • N’ignorez pas cette étape. Une erreur de connexion se produit lors de l’indexation si l’Assistant ne peut pas se connecter au stockage Azure.
  6. Cliquez sur Suivant.

Vectoriser votre texte

Dans cette étape, spécifiez le modèle d’incorporation pour vectoriser les données segmentées.

  1. Dans la page Vectoriser votre texte, choisissez la source du modèle d’incorporation :

    • Azure OpenAI
    • Catalogue de modèles Azure AI Studio
    • Ressource multimodale Azure AI Vision existante dans la même région qu’Azure AI Search. S’il n’existe aucun compte multiservices Azure AI Services dans la même région, cette option n’est pas disponible.
  2. Sélectionnez l’abonnement Azure.

  3. Effectuez des sélections en fonction de la ressource :

    • Pour Azure OpenAI, choisissez un déploiement existant de text-embedding-ada-002, text-embedding-3-large ou text-embedding-3-small.

    • Pour le catalogue AI Studio, choisissez un déploiement existant d’un modèle d’incorporation Azure, Cohere et Facebook.

    • Pour les incorporations multimodales AI Vision, sélectionnez le compte.

    Pour plus d’informations, consultez Configurer des modèles d’incorporation plus haut dans cet article.

  4. Spécifiez si vous souhaitez que votre service de recherche s’authentifie à l’aide d’une clé API ou d’une identité managée.

    • L’identité doit avoir un rôle d'utilisateur OpenAI Cognitive Services OpenAI sur le compte multiservices Azure AI.
  5. Cochez la case indiquant que vous avez connaissance de l’impact de l’utilisation de ces ressources sur la facturation.

  6. Cliquez sur Suivant.

Vectoriser et enrichir vos images

Si votre contenu contient des images, vous pouvez appliquer l’IA de deux façons :

  • Utiliser un modèle d’incorporation d’images pris en charge à partir du catalogue ou choisir l’API d’incorporations multimodales Azure AI Vision pour vectoriser les images.

  • Utilisez la reconnaissance optique de caractères (OCR) pour reconnaître du texte dans des images. Cette option appelle la compétence OCR pour lire du texte à partir d’images.

La Recherche Azure AI et votre ressource Azure AI doivent se trouver dans la même région.

  1. Dans la page Vectoriser vos images, spécifiez le type de connexion que l’Assistant doit établir. Pour la vectorisation d’images, l’Assistant peut se connecter à des modèles d’incorporation dans Azure AI Studio ou Azure AI Vision.

  2. Spécifiez l’abonnement.

  3. Pour le catalogue de modèles Azure AI Studio, spécifiez le projet et le déploiement. Pour plus d’informations, consultez Configurer des modèles d’incorporation plus haut dans cet article.

  4. Si vous le souhaitez, vous pouvez fissurer des images binaires (par exemple, des fichiers de documents analysés) et utiliser des OCR pour reconnaître du texte.

  5. Cochez la case indiquant que vous avez connaissance de l’impact de l’utilisation de ces ressources sur la facturation.

  6. Cliquez sur Suivant.

Ajouter le classement sémantique

Dans la page Paramètres avancés, vous pouvez éventuellement ajouter un classement sémantique pour reclasser les résultats à la fin de l’exécution de la requête. La reclassement place les correspondances les plus sémantiquement pertinentes en haut.

Mapper de nouveaux champs

Dans la page Paramètres avancés, vous pouvez éventuellement ajouter de nouveaux champs. Par défaut, l’Assistant génère les champs suivants avec ces attributs :

Champ S’applique à Description
chunk_id Vecteurs texte et image Champ de chaîne généré. Interrogeable, récupérable, triable. Il s’agit de la clé de document de l’index.
parent_id Vecteurs texte Champ de chaîne généré. Récupérable, filtrable. Identifie le document parent d’où provient le bloc.
segment Vecteurs texte et image Champ de chaîne. Version du bloc de données lisible par l’utilisateur. Interrogeable et récupérable, mais non filtrable, à choix multiples ou triable.
title Vecteurs texte et image Champ de chaîne. Titre du document ou titre de page ou numéro de page lisible par l’utilisateur. Interrogeable et récupérable, mais non filtrable, à choix multiples ou triable.
text_vector Vecteurs texte Collection(Edm.single). Représentation vectorielle du bloc. Interrogeable et récupérable, mais non filtrable, à choix multiples ou triable.

Vous ne pouvez pas modifier les champs générés ou leurs attributs, mais vous pouvez ajouter de nouveaux champs si votre source de données les fournit. Par exemple, Stockage Blob Azure fournit une collection de champs de métadonnées.

  1. Sélectionnez Ajouter.

  2. Choisissez un champ source dans la liste des champs disponibles, fournissez un nom de champ à l’index et acceptez le type de données par défaut ou remplacez si nécessaire.

    Les champs de métadonnées sont interrogeables, mais non récupérables, filtrables, à choix multiples ou triables.

  3. Sélectionnez Réinitialiser si vous souhaitez restaurer le schéma dans sa version d’origine.

Planifier l’indexation

Dans la page Paramètres avancés, vous pouvez éventuellement spécifier une planification d’exécution pour l’indexeur.

  1. Sélectionnez Suivant une fois que vous avez terminé avec la page Paramètres avancés.

Terminez l’Assistant.

  1. Dans la page Passer en revue votre configuration, spécifiez un préfixe pour les objets créés par l’Assistant. Un préfixe courant vous aide à rester organisé.

  2. Sélectionnez Créer.

Au terme de la configuration, l’Assistant crée les objets suivants :

  • Connexion de la source de données.

  • Index avec des champs vectoriels, des vectoriseurs, des profils vectoriels et des algorithmes vectoriels. Vous ne pouvez pas concevoir ou modifier l’index par défaut pendant le flux de travail de l’Assistant. Les index sont conformes à l’API REST 2024-05-01-preview.

  • Ensemble de compétences avec la compétence Fractionnement de texte pour la segmentation et une compétence d’incorporation pour la vectorisation. La compétence d’incorporation est la compétence AzureOpenAIEmbeddingModel pour Azure OpenAI ou la compétence AML pour le catalogue de modèles Azure AI Studio. L’ensemble de compétences comprend également la configuration projections d’index, qui permet de mapper les données d’un document dans la source de données à ses blocs correspondants dans un index « enfant ».

  • Indexeur avec mappages de champs et mappages de champs de sortie (le cas échéant).

Vérifier les résultats

L’Explorateur de recherche accepte les chaînes de texte comme entrée, puis vectorise le texte pour l’exécution de requête vectorielle.

  1. Dans le portail Microsoft Azure, accédez à Gestion de la recherche>Index, puis sélectionnez l’index que vous avez créé.

  2. Si vous le souhaitez, sélectionnez Options de requête et masquez les valeurs vectorielles dans les résultats de recherche. Cette étape facilite la lecture de vos résultats de recherche.

    Capture d’écran du bouton pour les options de requête.

  3. Dans le menu Vue, sélectionnez Vue JSON afin de pouvoir entrer du texte pour votre requête vectorielle dans le paramètre de requête vectorielle text.

    Capture d’écran de la commande de menu permettant d’ouvrir la vue JSON.

    L’Assistant propose une requête par défaut qui émet une requête vectorielle sur le champ vector et retourne les cinq voisins les plus proches. Si vous avez choisi de masquer les valeurs vectorielles, votre requête par défaut comprend une instruction select qui exclut le champ vector des résultats de la recherche.

    {
       "select": "chunk_id,parent_id,chunk,title",
       "vectorQueries": [
           {
              "kind": "text",
              "text": "*",
              "k": 5,
              "fields": "vector"
           }
        ]
    }
    
  4. Pour la valeur text, remplacez l’astérisque (*) par une question liée aux plans d’intégrité, tels que Which plan has the lowest deductible?.

  5. Sélectionnez Rechercher pour exécuter la requête.

    Capture d’écran des résultats de la recherche.

    Cinq correspondances doivent apparaître. Chaque document est un bloc du fichier PDF d’origine. Le champ title indique le fichier PDF du bloc.

  6. Pour voir tous les blocs d’un document spécifique, ajoutez un filtre sur le champ title d’un fichier PDF spécifique :

    {
       "select": "chunk_id,parent_id,chunk,title",
       "filter": "title eq 'Benefit_Options.pdf'",
       "count": true,
       "vectorQueries": [
           {
              "kind": "text",
              "text": "*",
              "k": 5,
              "fields": "vector"
           }
        ]
    }
    
    

Nettoyage

Azure AI Search est une ressource facturable. Si elle n’est plus nécessaire, supprimez-la de votre abonnement pour éviter des frais.

Étape suivante

Ce guide de démarrage rapide vous a présenté l’Assistant Importation et vectorisation des données qui crée tous les objets nécessaires à la vectorisation intégrée. Si vous souhaitez explorer chaque étape en détail, essayez un exemple de vectorisation intégrée.