Rechercher des documents et des images stockés dans Object Storage à l'aide de OpenSearch, d'OCI Vision et de la reconnaissance du texte

Pour les solutions Big Data, les utilisateurs préfèrent stocker des documents dans un système de stockage à faible coût comme Oracle Cloud Infrastructure Object Storage. Lorsqu'il existe un grand nombre de documents contenant des téraoctets de données, les utilisateurs ont besoin d'une option simple et évolutive pour rechercher et trouver les informations pertinentes. Ces utilisateurs peuvent également avoir besoin d'indexer des documents personnalisés avec des étapes spécifiques pour obtenir de meilleurs résultats de recherche.

Cette architecture de référence explique comment utiliser des outils low-code pour développer un programme afin de rechercher des documents et des images stockés dans Oracle Cloud Infrastructure Object Storage à l'aide d'un moteur de recherche conçu avec Oracle Visual Builder. Vous pouvez ajouter une sécurité au niveau du fichier en fonction de la sécurité OpenSearch ou des libellés associés aux documents.

Cette architecture de référence offre les fonctionnalités suivantes.

  • Prend en charge la plupart des types de fichiers :
    • Word, Excel, PowerPoint, PDF, xml, etc.
    • Images avec texte utilisant la reconnaissance de texte. Vous pouvez rechercher du texte dans une image.
    • Images sans texte utilisant Image Labeling. Vous pouvez rechercher des objets dans les images.
    • Documents personnalisés
  • Prend en charge plusieurs langues (hébreu, arabe, etc.)
  • Fournit une interface utilisateur facile
  • Fonctionne avec des outils low-code qui facilitent l'implémentation de tout changement de processus. Vous pouvez, par exemple, ajouter facilement des types de fichier supplémentaires ou des étapes supplémentaires dans le processus d'analyse.
  • S'exécute en mode Haute disponibilité et est évolutif.

Architecture

Le diagramme suivant illustre le flux logique de cette architecture de référence.



oci_opensearch_vision_flow-oracle.zip

  • Un document est téléchargé vers Object Storage.
  • Un événement est déclenché et mis en file d'attente dans Streaming (Kafka)
  • L'événement est traité par Oracle Integration Cloud Service (OIC) en fonction du type de fichier
  • Le résultat est téléchargé vers OpenSearch

Le diagramme suivant illustre cette architecture de référence.



oci_opensearch_vision_arch-oracle.zip

Un utilisateur final peut rechercher ces documents dans une page de recherche conçue avec Visual Builder.

Le traitement interne est conçu avec un outil à code réduit, OIC.

L'application détecte les modifications dans Object Storage (création, mise à jour, suppression de fichier) et les envoie à OIC pour traitement.

OIC connecte tous les éléments ensemble :

  • Reçoit des événements à partir d'Object Storage à l'aide d'une file d'attente de diffusion en continu (Kafka)
  • Détecte le type de document
  • Processus basés sur le type de document :
    • Envoie des images à OCI AI Vision pour l'étiquetage ou la reconnaissance de texte
    • Envoie le document à une fonction Java pour analyser les documents (Word, PDF, etc.).
    • Pour les documents personnalisés (comme les cartes d'identité), il détecte le nom, la date de naissance et l'ID de la carte.
  • Le document est converti et le résultat est stocké dans Opensearch pour indexation.

L'interface de recherche de l'utilisateur final est créée avec Visual Builder. Lorsqu'un utilisateur final effectue une recherche, le résultat provient de OpenSearch et le lien de document pointe vers Object Storage.

Lorsque vous visualisez un document, il provient d'Object Storage et utilise des demandes pré-authentifiées de courte durée créées à la volée.

Ce pipeline de traitement peut être étendu par des étapes supplémentaires permettant d'appeler n'importe quel code personnalisé à l'aide d'une fonction (ou de services REST sur une instance de calcul) afin d'améliorer les métadonnées qui seront stockées dans l'index de l'instance OpenSearch.

L'architecture comprend les composants suivants :

  • Service de recherche OCI avec OpenSearch

    OCI Search Service avec OpenSearch est un moteur d'analyse proposé en tant que service géré par Oracle. Sans temps d'arrêt, Oracle automatise l'application de correctifs, la mise à jour, la mise à niveau, la sauvegarde et le redimensionnement du service. Les clients peuvent stocker, rechercher et analyser rapidement d'importants volumes de données et voir les résultats quasiment en temps réel.

  • Oracle Integration

    Oracle Integration est une plate-forme d'automatisation et de connectivité d'entreprise qui permet de moderniser rapidement les applications, les processus métier, les API et les données. Les développeurs et les architectes cloud peuvent connecter six fois plus rapidement SaaS et les applications sur site grâce à une expérience de développement visuel, des intégrations prédéfinies et des bonnes pratiques intégrées. Oracle Integration vous donne un accès natif aux événements dans Oracle Cloud ERP, HCM et CX. Connectez les silos d'analyse spécifiques aux applications pour simplifier les processus de la demande d'achat au reçu, du recrutement au paiement, du lead à la facture et d'autres processus critiques. Enfin, donnez à vos responsables informatiques et commerciaux une visibilité de bout en bout.

  • Stockage d'objets

    Object Storage fournit un accès rapide à d'importantes quantités de données structurées et non structurées de tout type de contenu, y compris des sauvegardes de base de données, des données analytiques et du contenu enrichi tel que des images et des vidéos. Vous pouvez stocker les données, puis les extraire directement à partir d'Internet ou de la plate-forme cloud, et ce, en toute sécurité. Vous pouvez mettre à l'échelle le stockage de manière transparente sans que les performances ou la fiabilité du service ne soient dégradées. Utilisez le stockage standard pour le stockage "à chaud" auquel vous devez accéder rapidement, immédiatement et fréquemment. Utilisez le stockage d'archives pour le stockage "à froid" que vous conservez pendant de longues périodes et auquel vous accédez rarement.

  • Vision d'OCI

    OCI Vision est un service d'IA qui permet d'effectuer une analyse d'images basée sur un apprentissage approfondi à grande échelle. Grâce à des modèles prédéfinis prêts à l'emploi, les développeurs peuvent facilement créer la reconnaissance d'images et la reconnaissance de texte dans leurs applications sans avoir besoin d'une expertise en machine learning (ML). Pour les cas d'utilisation propres au secteur, les développeurs peuvent automatiquement entraîner des modèles Vision personnalisés avec leurs propres données. Ces modèles peuvent être utilisés pour détecter les anomalies visuelles dans la fabrication, extraire du texte de documents pour automatiser les workflows commerciaux et baliser des éléments dans des images pour compter les produits ou les expéditions. En plus d'avoir accès à des modèles préentraînés, les développeurs peuvent créer des modèles personnalisés sans expertise en data science ni gestion d'une infrastructure de modèles personnalisée.

  • Transmission en continu

    Le service Oracle Cloud Infrastructure Streaming offre une solution évolutive, entièrement gérée et durable adaptée aux flux de données volumineux en temps réel et à leur utilisation. Utilisez Streaming pour tous les cas d'emploi dans lesquels des données sont produites et traitées de manière continue et séquentielle suivant un modèle d'échange de messages de type publication/souscription.

  • Evénements

    Les services Oracle Cloud Infrastructure émettent des événements, qui sont des messages structurés décrivant les modifications dans les ressources. Des événements sont émis pour les opérations de création, de lecture, de mise à jour ou de suppression (CRUD), les modifications d'état de cycle de vie des ressources et les événements système qui affectent les ressources cloud.

  • Fonctions

    Oracle Functions est une plate-forme Functions-as-a-Service (FaaS) entièrement gérée, colocative, hautement évolutive et à la demande. Il est optimisé par le moteur open source du projet Fn. Les fonctions vous permettent de déployer votre code et de l'appeler directement ou de le déclencher en réponse à des événements. Oracle Functions utilise des conteneurs Docker hébergés dans Oracle Cloud Infrastructure Registry.

  • Location

    Une location est une partition sécurisée et isolée qu'Oracle configure dans Oracle Cloud lorsque vous souscrivez à Oracle Cloud Infrastructure. Vous pouvez créer, organiser et administrer vos ressources dans Oracle Cloud dans votre location. Une location est synonyme d'entreprise ou d'organisation. En général, une entreprise dispose d'une seule location et reflète sa structure organisationnelle au sein de cette location. Une même location est généralement associée à un seul abonnement et un seul abonnement comporte généralement une seule location.

  • Région

    Une région Oracle Cloud Infrastructure est une zone géographique localisée qui contient des centres de données, appelés domaines de disponibilité. Les régions sont indépendantes les unes des autres et de grandes distances peuvent les séparer (elles peuvent se trouver dans des pays voire des continents différents).

  • Compartiment

    Les compartiments sont des partitions logiques inter-régions au sein d'une location Oracle Cloud Infrastructure. Utilisez des compartiments pour organiser vos ressources dans Oracle Cloud, contrôler l'accès aux ressources et définir des quotas d'utilisation. Pour contrôler l'accès aux ressources d'un compartiment donné, vous définissez des stratégies qui indiquent qui peut accéder aux ressources et les actions réalisables.

  • Réseau cloud virtuel (VCN) et sous-réseaux

    Un VCN est un réseau personnalisable défini par logiciel que vous configurez dans une région Oracle Cloud Infrastructure. Comme les réseaux de centres de données traditionnels, les réseaux cloud virtuels vous permettent de contrôler entièrement votre environnement réseau. Un VCN peut avoir plusieurs blocs CIDR qui ne se chevauchent pas que vous pouvez modifier après avoir créé le VCN. Vous pouvez segmenter un VCN en sous-réseaux, qui peuvent être ciblés sur une région ou sur un domaine de disponibilité. Chaque sous-réseau se compose d'une plage contiguë d'adresses qui ne chevauchent pas les autres sous-réseaux du VCN. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.

  • Liste de sécurité

    Pour chaque sous-réseau, vous pouvez créer des règles de sécurité qui indiquent la source, la destination et le type de trafic à autoriser vers et depuis le sous-réseau.

Recommandations

Utilisez les recommandations suivantes comme point de départ. Vos besoins peuvent différer de l'architecture décrite ici.
  • Maintenance et haute disponibilité

    La conception utilise presque uniquement les services PaaS, gérés par le cloud. Il n'est pas nécessaire d'installer, d'appliquer des patches, de mettre à jour ou de mettre à niveau le logiciel avec cette solution. Elle est valide pour Object Storage, Events, Streaming, OCI Vision, Oracle Integration, Visual Builder et Functions.

    Le seul composant qui requiert votre attention est l'agent Oracle Integration Cloud installé dans une instance de calcul pour accéder au cluster OpenSearch résidant dans un réseau privé. Suivez les instructions de la documentation OIC pour faciliter la maintenance et la haute disponibilité de l'agent OIC.

  • Evolutivité et taille

    Cette architecture de référence utilise le service PaaS et est évolutive prête à l'emploi pour la plupart des services. Le cluster OpenSearch n'est pas automatiquement redimensionné (manuellement uniquement). Vous devez donc adapter la solution en fonction de votre cas d'emploi.

Remarques

Tenez compte des points suivants lors du déploiement de cette architecture de référence.

  • Performances

    Le service de recherche OCI avec OpenSearch a un niveau de configuration inégalé. Vous n'êtes pas verrouillé dans des formes ou des SKU spécifiques. Vous pouvez plutôt utiliser des formes flexibles qui vous permettent de configurer le nombre précis de coeurs de calcul, ainsi que la quantité de mémoire et de stockage en fonction de vos exigences exactes.

    Le service de recherche OCI avec OpenSearch gère le travail impliqué dans la configuration de votre cluster, y compris le provisionnement de l'infrastructure. Une fois le cluster en cours d'exécution, le service de recherche OCI avec OpenSearch gère les tâches administratives courantes, telles que l'exécution de sauvegardes, la surveillance des instances et l'application de patches aux logiciels. Le service de recherche OCI avec OpenSearch s'intègre aux mesures OCI pour produire des mesures qui fournissent des informations sur l'état des clusters. Le service de recherche OCI avec OpenSearch offre également la possibilité de modifier la configuration du cluster et la taille totale des données sans interruption de service.

  • Sécurité

    Les documents sont stockés dans Object Storage privé. Un lien temporaire de courte durée est créé lorsqu'un utilisateur clique sur le document.

    L'implémentation renvoie le même résultat pour tous les utilisateurs et est décrite en détail dans l'atelier LiveLabs lié dans la section Explorer plus. Aucune sécurité n'est implémentée au niveau du document. Vous pouvez l'implémenter en fonction de la sécurité OpenSearch et/ou du libellé associé aux documents et aux utilisateurs.

  • Coût

    Cette architecture de référence utilise Object Storage et OpenSearch, qui sont des produits à faible coût. Il utilise également une version standard d'OIC. OIC est utilisé très efficacement avec l'indexation, il utilise uniquement la référence aux fichiers, et non les fichiers eux-mêmes.

Accusés de réception

  • Author: Marc Gueury
  • Contributors: Badr Aissaoui, Marek Krátký