Partager via


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.

Prérequis

Sources de données prises en charge

L’Assistant Importation et vectorisation de données prend en charge un large éventail de sources de données Azure, mais ce guide de démarrage rapide fournit des étapes seulement pour les sources de données qui fonctionnent avec des fichiers entiers :

  • Stockage Blob Azure pour les blobs et les tables. Stockage Azure doit être un compte avec des performances standard (universel v2). Le niveau d’accès peut être chaud, sporadique et froid.

  • Azure Data Lake Storage (ADLS) Gen2 (un compte de stockage avec un espace de noms hiérarchique activé). Vous pouvez confirmer que Data Lake Storage est activé en vérifiant l’onglet Propriétés de la page vue d’ensemble vue d’ensemble.

    Capture d’écran de la page propriétés du compte de stockage montrant Data Lake Storage.

  • Lakehouse OneLake (préversion).

Modèles d’incorporation pris en charge

Utilisez un modèle d’incorporation sur une plateforme d’IA Azure dans la même région que Recherche Azure AI. Les instructions de déploiement figurent dans cet article.

Fournisseur Modèles pris en charge
Azure OpenAI Service text-embedding-ada-002
text-embedding-3-large
text-embedding-3-small
Catalogue de modèles Azure AI Foundry Pour le texte :
Cohere-embed-v3-english
Cohere-embed-v3-multilingual
Pour les images :
Facebook-DinoV2-Image-Embeddings-ViT-Base
Facebook-DinoV2-Image-Embeddings-ViT-Giant
Compte multiservice Azure AI Services Azure AI Vision modale pour la vectorisation d’image et de texte, disponible dans les régions sélectionnées. Selon la façon dont vous attachez la ressource multiservice, il peut être nécessaire que le compte de service se trouve dans la même région que Recherche Azure AI.

Si vous utilisez Azure OpenAI Service, le point de terminaison doit avoir un sous-domaine personnalisé associé. Un sous-domaine personnalisé est un point de terminaison qui inclut un nom unique (par exemple, https://hereismyuniquename.cognitiveservices.azure.com). 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 le portail Azure AI Foundry 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

Dans le cadre de ce guide de démarrage rapide, l’accès public doit être activé pour toutes les ressources précédentes afin que les nœuds du portail Azure 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.

autorisations

Vous pouvez utiliser l’authentification par clé et des chaînes de connexion d’accès complet, ou Microsoft Entra ID avec des attributions de 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. Préparer des exemples de données fournit des instructions pour configurer des rôles pour chaque source de données prise en charge.

Un service de recherche gratuit prend en charge les connexions en fonction du rôle à 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.

Préparer l’exemple de données

Cette section traite du contenu qui fonctionne 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 le portail Azure AI Foundry.

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 Foundry.

  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 Connexion à vos 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.

La segmentation est intégrée et non configurable. Les paramètres effectifs sont les suivants :

"textSplitMode": "pages",
"maximumPageLength": 2000,
"pageOverlapLength": 500,
"maximumPagesToTake": 0, #unlimited
"unit": "characters"
  1. Dans la page Vectoriser votre texte, choisissez la source du modèle d’incorporation :

    • Azure OpenAI
    • Catalogue de modèles Azure AI Foundry
    • 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 Azure AI Foundry, choisissez un déploiement existant d’un modèle d’incorporation Azure ou Cohere.

    • 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 des effets de l’utilisation de ces ressources sur la facturation.

    Capture d’écran de la page Vectoriser du texte dans l’Assistant.

  6. Cliquez sur Suivant.

Vectoriser et enrichir vos images

Les fichiers PDF du plan d’intégrité incluent un logo d’entreprise, mais aucune autre image. Vous pouvez ignorer cette étape si vous utilisez les exemples de documents.

Cependant, si vous travaillez avec du contenu qui inclut des images utiles, vous pouvez appliquer l’IA de deux manières :

  • 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 ou être configurées pour les connexions de facturation sans clé.

  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 le portail Azure AI Foundry ou Azure AI Vision.

  2. Spécifiez l’abonnement.

  3. Pour le catalogue de modèles Azure AI Foundry, 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 des effets de l’utilisation de ces ressources sur la facturation.

    Capture d’écran de la page Vectoriser des images dans l’Assistant.

  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

Points clés de cette étape :

  • 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).

Sur la page Paramètres avancés, vous pouvez éventuellement ajouter de nouveaux champs en supposant que la source de données fournit des métadonnées ou des champs qui ne sont pas récupérés lors du premier passage. 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.
text_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 Foundry. 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. 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.

    La requête par défaut est une recherche vide ("*"), mais inclut des paramètres pour retourner le nombre de correspondances. Il s’agit d’une requête hybride qui exécute des requêtes textuelles et vectorielles en parallèle. Elle inclut le classement sémantique. Elle spécifie les champs à retourner dans les résultats via l’instruction select.

     {
       "search": "*",
       "count": true,
       "vectorQueries": [
         {
           "kind": "text",
           "text": "*",
           "fields": "text_vector,image_vector"
         }
       ],
       "queryType": "semantic",
       "semanticConfiguration": "my-demo-semantic-configuration",
       "captions": "extractive",
       "answers": "extractive|count-3",
       "queryLanguage": "en-us",
       "select": "chunk_id,text_parent_id,chunk,title,image_parent_id"
     }
    
  4. Remplacez les espaces réservés astérisques (*) par une question relative aux plans d’intégrité, telle que Which plan has the lowest deductible?.

     {
       "search": "Which plan has the lowest deductible?",
       "count": true,
       "vectorQueries": [
         {
           "kind": "text",
           "text": "Which plan has the lowest deductible?",
           "fields": "text_vector,image_vector"
         }
       ],
       "queryType": "semantic",
       "semanticConfiguration": "my-demo-semantic-configuration",
       "captions": "extractive",
       "answers": "extractive|count-3",
       "queryLanguage": "en-us",
       "select": "chunk_id,text_parent_id,chunk,title"
     }
    
  5. Sélectionnez Rechercher pour exécuter la requête.

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

    Chaque document est un bloc du fichier PDF d’origine. Le champ title indique le fichier PDF du bloc. Chaque chunk est assez long. Vous pouvez le copier puis le coller dans un éditeur de texte pour lire la valeur entière.

  6. Pour voir tous les blocs d’un document spécifique, ajoutez un filtre sur le champ title_parent_id pour un fichier PDF spécifique. Vous pouvez vérifier l’onglet Champs de votre index pour confirmer que ce champ est filtrable.

    {
       "select": "chunk_id,text_parent_id,chunk,title",
       "filter": "text_parent_id eq 'aHR0cHM6Ly9oZWlkaXN0c3RvcmFnZWRlbW9lYXN0dXMuYmxvYi5jb3JlLndpbmRvd3MubmV0L2hlYWx0aC1wbGFuLXBkZnMvTm9ydGh3aW5kX1N0YW5kYXJkX0JlbmVmaXRzX0RldGFpbHMucGRm0'",
       "count": true,
       "vectorQueries": [
           {
              "kind": "text",
              "text": "*",
              "k": 5,
              "fields": "text_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.