Édition

Share via


Rechercher et interroger une base de connaissances d'entreprise en utilisant Azure OpenAI ou Azure AI Search.

Stockage Blob Azure
Cache Azure pour Redis
Azure AI Search
Azure AI services
Azure AI Document Intelligence

Cet article décrit comment utiliser Azure OpenAI Service ou Azure AI Search (anciennement Azure Cognitive Search) pour rechercher des documents dans les données de votre entreprise et récupérer les résultats afin de fournir une expérience de questions-réponses de type ChatGPT. Cette solution décrit deux approches :

  • Approche par incorporations : utiliser le modèle d’incorporation Azure OpenAI pour créer des données vectorisées. La recherche vectorielle est une fonctionnalité qui augmente considérablement la pertinence sémantique des résultats de recherche.

  • Approche d'Azure AI Search : Utilisez Azure AI Search pour rechercher et récupérer des données textuelles pertinentes sur la base d'une requête utilisateur. Ce service prend en charge la recherche en texte intégral, la recherche sémantique, la recherche vectorielle et la recherche hybride.

Remarque

Dans Azure AI Search, les fonctionnalités de recherche sémantique et de recherche vectorielle sont actuellement en aperçu public.

Architecture : approche par incorporation

Diagram that shows the embeddings approach.Téléchargez un fichier Visio de cette architecture.

Dataflow

Les documents à ingérer peuvent provenir de diverses sources, comme des fichiers sur un serveur FTP, des pièces jointes de courrier électronique ou des pièces jointes d’application web. Ces documents peuvent être ingérés vers Stockage Blob Azure via des services comme Azure Logic Apps, Azure Functions ou Azure Data Factory. Data Factory est optimal pour le transfert de données en bloc.

Création de l’incorporation :

  1. Le document est ingéré dans Stockage Blob et une fonction Azure est déclenchée pour extraire du texte des documents.

  2. Si les documents sont dans une langue autre que l’anglais et qu’une traduction est requise, une fonction Azure peut appeler Azure Traducteur pour effectuer la traduction.

  3. Si les documents sont des fichiers PDF ou des images, une fonction Azure peut appeler Azure AI Intelligence documentaire pour extraire le texte. Si le document est un fichier Excel, CSV, Word ou texte, le code python peut être utilisé pour extraire le texte.

  4. Le texte extrait est ensuite segmenté de manière appropriée et un modèle d’incorporation Azure OpenAI est utilisé pour convertir chaque segment en incorporations.

  5. Ces incorporations sont conservées dans la base de données vectorielle. Cette solution utilise le niveau Entreprise de Azure Cache pour Redis, mais toute base de données vectorielle peut être utilisée.

Requête et récupération :

  1. L’utilisateur envoie une requête via une application utilisateur.

  2. Le modèle d’incorporation Azure OpenAI est utilisé pour convertir la requête en incorporations vectorielles.

  3. Une recherche de similarité vectorielle qui utilise ce vecteur de requête dans la base de données vectorielle retourne le contenu topk correspondant. Le contenu correspondant à récupérer peut être défini en fonction d’un seuil lui-même défini par une mesure de similarité, comme la similarité cosinus.

  4. Le contenu top k récupéré et l’invite système sont envoyés au modèle de langage Azure OpenAI, comme GPT-3.5 Turbo ou GPT-4.

  5. Les résultats de la recherche sont présentés en tant que réponse à la requête de recherche initiée par l’utilisateur, ou les résultats de la recherche peuvent être utilisés comme données de base pour un scénario de conversation à plusieurs tours.

Architecture : Approche pull d'Azure AI Search

Diagram that shows the pull approach.Téléchargez un fichier Visio de cette architecture.

Création d'index :

  1. Azure AI Search est utilisé pour créer un index de recherche des documents dans Blob Storage. Azure AI Search prend en charge Blob Storage, le modèle pull est donc utilisé pour explorer le contenu, et la capacité est mise en œuvre via des indexeurs.

    Remarque

    Azure AI Search prend en charge d'autres sources de données pour l'indexation lors de l'utilisation du modèle d'extraction. Les documents peuvent également être indexés à partir de plusieurs sources de données et consolidés en un seul index.

  2. Si certains scénarios nécessitent la traduction de documents, Azure Traducteur, qui est une fonctionnalité incluse dans les compétences intégrées, peut être utilisé.

  3. Si les documents ne sont pas consultables, comme des PDF analysés ou des images, l'IA peut être appliquée en utilisant des compétences intégrées ou personnalisées en tant qu'ensembles de compétences dans Azure AI Search. L’application de l’IA sur du contenu qui ne peut pas faire l’objet d’une recherche en texte intégral est appelée enrichissement par IA. Selon les besoins, Azure AI Intelligence documentaire peut être utilisé comme une compétence personnalisée pour extraire du texte à partir de PDF ou d’images via des modèles d’analyse de document, des modèles prédéfinis ou des modèles d’extraction personnalisés.

    Si l’enrichissement par IA est une exigence, vous devez utiliser le modèle d’extraction (indexeurs) pour charger un index.

    Si des champs vectoriels sont ajoutés au schéma d’index, qui charge les données vectorielles pour l’indexation, la recherche vectorielle peut être activée en indexant ces données vectorielles. Les données vectorielles peuvent être générées via des incorporations Azure OpenAI.

Requête et récupération :

  1. Un utilisateur envoie une requête via une application utilisateur.

  2. La requête est transmise à Azure AI Search via l'API REST de recherche de documents. Le type de requête peut être simple, ce qui est optimal pour la recherche en texte intégral, ou complet, qui est pour les constructions de requête avancées telles que les expressions régulières, la recherche floue et générique et la recherche de proximité. Si le type de requête est défini sur sémantique, une recherche sémantique est effectuée sur les documents et le contenu approprié est récupéré. Azure AI Search prend également en charge la recherche vectorielle et la recherche hybride, qui nécessite la conversion de la requête de l'utilisateur en encastrements vectoriels.

  3. Le contenu récupéré et l’invite système sont envoyés au modèle de langage Azure OpenAI, comme GPT-3.5 Turbo ou GPT-4.

  4. Les résultats de la recherche sont présentés en tant que réponse à la requête de recherche initiée par l’utilisateur, ou les résultats de la recherche peuvent être utilisés comme données de base pour un scénario de conversation à plusieurs tours.

Architecture : Approche push d'Azure AI Search

Si la source de données n'est pas prise en charge, vous pouvez utiliser le modèle push pour télécharger les données vers Azure AI Search.

Diagram that shows the push approach.Téléchargez un fichier Visio de cette architecture.

Création d'index :

  1. Si le document à ingérer doit être traduit, Azure Traducteur peut être utilisé.
  2. Si le document est dans un format ne pouvant pas faire l’objet d’une recherche, comme un PDF ou une image, Azure AI Intelligence documentaire peut être utilisée pour extraire du texte.
  3. Le texte extrait peut être vectorisé via Azure OpenAI embeddings vector search, et les données peuvent être poussées vers un index Azure AI Search via une API Rest ou un SDK Azure.

Requête et récupération :

La requête et la récupération de cette approche sont identiques à celles de l’approche d’extraction plus haut dans cet article.

Composants

  • Azure OpenAI fournit un accès API REST aux modèles de langage d’Azure OpenAI, dont GPT-3, Codex et la série de modèles d’incorporation pour la génération et la synthèse de contenu, la recherche sémantique et la traduction du langage naturel vers le code. Accédez au service avec une API REST, un SDK Python ou l’interface web dans Azure OpenAI Studio.

  • Azure AI Intelligence documentaire est un service Azure AI. Il offre des fonctionnalités d’analyse de documents intégrées pour extraire du texte imprimé et manuscrit, des tableaux et des paires clé-valeur. Azure AI Intelligence documentaire fournit des modèles prédéfinis qui peuvent extraire des données à partir de factures, de documents, de reçus, de cartes d’identité et de cartes de visite. Vous pouvez également l’utiliser pour entraîner et déployer des modèles personnalisés en utilisant un modèle personnalisé de formulaire ou un modèle de document neural personnalisé.

  • Le Studio Intelligence documentaire fournit une interface utilisateur pour explorer les fonctionnalités et les modèles Azure AI Intelligence documentaire, ainsi que pour la création, l’étiquetage, l’entraînement et le déploiement de modèles personnalisés.

  • Azure AI Search est un service cloud qui fournit une infrastructure, des API et des outils pour la recherche. Utilisez Azure AI Search pour créer des expériences de recherche sur des contenus disparates privés dans des applications Web, mobiles et d'entreprise.

  • Stockage Blob est la solution de stockage d’objets pour les fichiers bruts dans ce scénario. Stockage Blob prend en charge les bibliothèques pour divers langages, comme .NET, Node.js et Python. Les applications peuvent accéder aux fichiers dans Stockage Blob via HTTP ou HTTPS. Stockage Blob a des niveaux d’accès chaud, froid et archive pour prendre en charge l’optimisation des coûts de stockage de grandes quantités de données.

  • Le niveau Entreprise d’Azure Cache pour Redis fournit des modules Redis Enterprise managés, comme RediSearch, RedisBloom, RedisTimeSeries et RedisJSON. Les champs vectoriels permettent la recherche de similarité vectorielle, qui prend en charge l’indexation vectorielle en temps réel (algorithme de force brute (FLAT) et algorithme hiérarchique navigable petit monde (HNSW)), les mises à jour vectorielles en temps réel et la recherche du plus proche voisin k. Azure Cache pour Redis offre une solution de stockage de données à faible latence et à haut débit critique aux applications modernes.

Autres solutions

Selon votre scénario, vous pouvez ajouter les workflows suivants.

Détails du scénario

Le traitement manuel prend de plus en plus de temps, est source d’erreurs et nécessite beaucoup de ressources en raison du volume absolu des documents. Les organisations qui gèrent d’énormes volumes de documents, des données en grande partie non structurées de différents formats tels que PDF, Excel, CSV, Word, PowerPoint et les formats d’image, font face à un défi important de traitement des documents et formulaires numérisés et manuscrits de leurs clients.

Ces documents et formulaires contiennent des informations critiques, comme des informations personnelles, des antécédents médicaux et des rapports d’évaluation des dommages, qui doivent être extraites et traitées avec précision.

Les organisations disposent souvent déjà de leur propre base de connaissances d’informations, qui peut être utilisée pour répondre aux questions avec la réponse la plus appropriée. Vous pouvez utiliser les services et les pipelines décrits dans ces solutions pour créer une source pour les mécanismes de recherche documentaire.

Cas d’usage potentiels

Cette solution fournit une valeur ajoutée aux organisations dans des secteurs comme l’industrie pharmaceutique et les services financiers. Elle s’applique à toute entreprise qui possède un grand nombre de documents contenant des informations incorporées. Cette solution de recherche de bout en bout propulsée par IA peut être utilisée pour extraire des informations significatives à partir des documents en fonction de la requête utilisateur afin de fournir une expérience de questions et de réponses à la manière de ChatGPT.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteurs principaux :

  • Dixit Arora | Ingénieur client senior, ISV DN CoE
  • Jyotsna Ravi | Ingénieur client principal, ISV DN CoE

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes