Pesquisar documentos e imagens armazenados no Object Storage usando OpenSearch, OCI Vision, Reconhecimento de Texto
Para soluções de Big Data, os usuários preferem armazenar documentos em um sistema de armazenamento de baixo custo, como o Oracle Cloud Infrastructure Object Storage. Quando há um grande número de documentos com Terrabytes de dados, os usuários precisam de uma opção fácil e escalável para pesquisar e encontrar as informações relevantes. Esses usuários também podem ter requisitos para indexar documentos personalizados com etapas específicas para melhores resultados de pesquisa.
Esta arquitetura de referência descreve como usar ferramentas de baixo código para desenvolver um programa de pesquisa de documentos e imagens armazenados no Oracle Cloud Infrastructure Object Storage usando um mecanismo de pesquisa projetado com o Oracle Visual Builder. Você pode adicionar segurança no nível do arquivo com base na segurança OpenSearch ou nos labels associados aos documentos.
Essa arquitetura de referência fornece os seguintes recursos.
- Suporta a maioria dos tipos de arquivos:
- Word, Excel, Powerpoint, pdf, xml etc.
- Imagens com texto usando Reconhecimento de Texto. Você pode procurar texto em uma imagem.
- Imagens sem texto usando Label de Imagem. Você pode localizar objetos em imagens.
- Documentos personalizados
- Suporta vários idiomas (Hebraico, Árabe etc.)
- Fornece uma interface de usuário fácil
- Funciona com ferramentas de baixo código, o que facilita a implementação de qualquer alteração no processo. Você pode, por exemplo, adicionar outros tipos de arquivo ou etapas adicionais no processo de análise facilmente.
- É executado no modo de Alta Disponibilidade e é escalável.
Arquitetura
O diagrama a seguir ilustra o fluxo lógico dessa arquitetura de referência.
oci_opensearch_vision_flow-oracle.zip
- Upload de um documento para o Object Storage
- Um evento é gerado e enfileirado no Streaming (Kafka)
- O evento é processado pelo Oracle Integration Cloud Service (OIC) com base no tipo de arquivo
- O resultado é carregado para OpenSearch
O diagrama a seguir ilustra essa arquitetura de referência.
oci_opensearch_vision_arch-oracle.zip
Um usuário final pode procurar esses documentos em uma página de pesquisa projetada com o Visual Builder.
O processamento interno é projetado com uma ferramenta de baixo código, o OIC.
O aplicativo detecta as alterações no Object Storage (criação, atualização, exclusão de arquivo) e as envia ao OIC para processamento.
O OIC conecta todas as peças:
- Recebe eventos do Object Storage usando uma Fila do Streaming (Kafka)
- Detecta o tipo de documento
- Processos com base no tipo de documento:
- Envia imagens para o OCI AI Vision para rotulagem ou reconhecimento de texto
- Envia o documento a uma Função Java para analisar os documentos (Word, PDF, ...)
- Para documentos personalizados (como cartões de ID), ele detecta o nome, a data de nascimento e o ID do cartão.
- O documento é convertido e o resultado é armazenado em Opensearch para indexação.
A interface de pesquisa do usuário final é criada com o Visual Builder. Quando um usuário final pesquisa, o resultado vem de OpenSearch e o link do documento aponta para o Object Storage.
Ao exibir um documento, ele vem do Object Storage usando solicitações pré-autenticadas de curta duração criadas imediatamente.
Esse pipeline de processamento pode ser estendido por etapas adicionais para chamar qualquer código personalizado usando uma função (ou serviços REST em uma instância de computação) para aprimorar os metadados que serão armazenados no índice da instância OpenSearch.
A arquitetura tem os seguintes componentes:
- Serviço de Pesquisa do OCI com OpenSearch
O OCI Search Service com OpenSearch é um mecanismo de insight oferecido como serviço gerenciado pela Oracle. Sem qualquer tempo de inatividade, a Oracle automatiza a aplicação de patches, a atualização, o upgrade, o backup e o redimensionamento do serviço. Os clientes podem armazenar, pesquisar e analisar grandes volumes de dados rapidamente e ver os resultados quase em tempo real.
- Oracle Integration
O Oracle Integration é uma plataforma de conectividade e automação empresarial para modernizar rapidamente aplicativos, processos de negócios, APIs e dados. Os desenvolvedores e arquitetos de nuvem podem conectar SaaS e aplicativos locais seis vezes mais rápido com uma experiência de desenvolvimento visual, integrações predefinidas e melhores práticas incorporadas. O Oracle Integration oferece acesso nativo a eventos no Oracle Cloud ERP, HCM e CX. Conecte silos analíticos específicos de aplicativos para simplificar a requisição até o recebimento, o recrutamento até o pagamento, o lead até a fatura e outros processos críticos. Por fim, dê visibilidade total aos seus líderes de TI e de negócios.
- Object Storage
O armazenamento de objetos fornece acesso rápido a grandes quantidades de dados estruturados e não estruturados de qualquer tipo de conteúdo, incluindo backups de bancos de dados, dados de análise e conteúdo avançado, como imagens e vídeos. Você pode armazenar de forma segura e depois recuperar dados diretamente da internet ou de dentro da plataforma da nuvem. Você pode dimensionar o armazenamento de forma integrada sem experimentar qualquer degradação no desempenho ou na confiabilidade do serviço. Use o armazenamento padrão para armazenamento de acesso frequente que você precisa para acessar de forma rápida, imediata e frequente. Use o armazenamento de arquivos compactados para armazenamento " frio" que você mantém por longos períodos de tempo e raramente acessa.
- Visão do OCI
A OCI Vision é um serviço de IA para realizar análises de imagens baseadas em aprendizado profundo em escala. Com modelos predefinidos disponíveis prontos para uso, os desenvolvedores podem facilmente criar reconhecimento de imagem e reconhecimento de texto em seus aplicativos sem experiência em aprendizado de máquina (ML). Para casos de uso específicos do setor, os desenvolvedores podem treinar automaticamente modelos de Visão personalizados com seus próprios dados. Esses modelos podem ser usados para detectar anomalias visuais na manufatura, extrair texto de documentos para automatizar fluxos de trabalho de negócios e marcar itens em imagens para contar produtos ou remessas. Além de obter acesso a modelos pré-treinados, os desenvolvedores podem criar modelos personalizados sem experiência em ciência de dados ou gerenciar a infraestrutura de modelos personalizados.
- Streaming
O serviço Oracle Cloud Infrastructure Streaming fornece uma solução totalmente gerenciada, escalável e durável para ingestão e consumo de streams de dados de alto volume em tempo real. Use o Streaming para qualquer caso de uso no qual os dados sejam produzidos e processados de modo contínuo e sequencial em um modelo de mensagens do padrão publicar-assinar.
- Eventos
Os serviços do Oracle Cloud Infrastructure emitem eventos, que são mensagens estruturadas que descrevem as alterações em recursos. Os eventos são emitidos para operações de criação, leitura, atualização ou exclusão (CRUD), alterações no estado do ciclo de vida do recurso e eventos do sistema que afetam os recursos da nuvem.
- Funções
OOracle Functions é uma plataforma de Funções como um Serviço (FaaS) totalmente gerenciada, multitenant e altamente escalável. Ele é ativado pelo mecanismo de código aberto do Projeto Fn. As funções permitem implantar seu código e chamá-lo diretamente ou acioná-lo em resposta a eventos. O Oracle Functions usa contêineres do Docker hospedados no Oracle Cloud Infrastructure Registry.
- Locação
Uma tenancy é uma partição segura e isolada que a Oracle configura no Oracle Cloud quando você acessa o Oracle Cloud Infrastructure. Você pode criar, organizar e administrar seus recursos no Oracle Cloud na sua tenancy. Uma tenancy é sinônima de uma empresa ou organização. Normalmente, uma empresa terá uma única tenancy e refletirá sua estrutura organizacional nessa tenancy. Uma única tenancy geralmente está associada a uma única assinatura, e uma única assinatura geralmente só tem uma tenancy.
- Região
Uma região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, denominados domínios de disponibilidade. As regiões são independentes de outras regiões, e grandes distâncias podem separá-las (entre países ou até mesmo continentes).
- Compartimento
Os compartimentos são partições lógicas entre regiões dentro de uma tenancy do Oracle Cloud Infrastructure. Use compartimentos para organizar seus recursos no Oracle Cloud, controlar o acesso aos recursos e definir cotas de uso. Para controlar o acesso aos recursos em um determinado compartimento, você define políticas que especificam quem pode acessar os recursos e quais ações eles podem executar.
- Rede virtual na nuvem (VCN) e sub-redes
Uma VCN é uma rede personalizada e definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes de data center tradicionais, as VCNs dão a você controle total sobre seu ambiente de rede. Uma VCN pode ter vários blocos CIDR não sobrepostos que você pode alterar após criar a VCN. Você pode segmentar uma VCN em sub-redes, que podem ter escopo em uma região ou em um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contíguo de endereços que não se sobreem com as outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.
- Lista de segurança
Para cada sub-rede, você pode criar regras de segurança que especifiquem a origem, o destino e o tipo de tráfego que deve ser permitido dentro e fora da sub-rede.
Recomendações
- Manutenção e Alta Disponibilidade
O design usa quase apenas os serviços PaaS, mantidos pela nuvem. Não há necessidade de instalar, corrigir, atualizar ou atualizar o software usando esta solução. Isso é válido para: Object Storage, Events, Streaming, OCI Vision, Oracle Integration, Visual Builder e Functions.
O único componente que solicita atenção é o agente do Oracle Integration Cloud instalado em uma instância de computação para acessar o cluster OpenSearch que reside em uma rede privada. Siga as diretrizes na documentação do OIC para tornar o agente do OIC fácil de manter e altamente disponível.
- Escalabilidade e tamanho
Essa arquitetura de referência usa o serviço PaaS e é escalável pronto para uso para a maioria dos serviços. Observe que o cluster OpenSearch não é expandido nem reduzido automaticamente (somente manualmente). Portanto, é necessário um dimensionamento correto da solução com base no seu caso de uso.
Considerações
Considere os pontos a seguir ao implantar essa arquitetura de referência.
- Desempenho
O OCI Search Service com OpenSearch tem um nível de configuração inigualável. Você não está bloqueado para formas ou SKUs específicas; em vez disso, pode usar formas flexíveis que permitam configurar o número preciso de núcleos de computação, bem como a quantidade de memória e de armazenamento com base em seus requisitos exatos.
O OCI Search Service com OpenSearch gerencia o trabalho envolvido na configuração do seu cluster, incluindo infraestrutura de provisionamento. Quando seu cluster está em execução, o OCI Search Service com OpenSearch trata tarefas administrativas comuns, como executar backups, monitorar instâncias e aplicar patches ao software. O OCI Search Service com OpenSearch se integra às métricas do OCI para produzir métricas que fornecem informações sobre o estado dos clusters. O OCI Search Service com OpenSearch também oferece a capacidade de modificar a configuração do cluster e o tamanho total dos dados sem interrupção do serviço.
- Segurança
Os documentos são armazenados no Object Storage privado. Um link temporário com uma vida útil curta é criado quando um usuário clica no documento.
A implementação retorna o mesmo resultado para todos os usuários e é descrita em detalhes no workshop LiveLabs vinculado na seção Explorar Mais. Não há segurança implementada no nível do documento. Você pode implementá-lo com base na segurança OpenSearch e/ou no label associado a documentos e usuários.
- Custo
Essa arquitetura de referência usa o Object Storage e o OpenSearch, que são produtos de baixo custo. Ele usa também uma versão Padrão do OIC. O OIC é usado de forma muito eficiente com indexação, ele usa apenas a referência aos arquivos, e não os próprios arquivos.
Explorar Mais
Links para informações adicionais que podem ajudá-lo a aprender, modificar, usar ou implementar essa arquitetura.
- Workshop Oracle LiveLabs: Pesquisar Documentos e Imagens armazenados no Object Storage usando OpenSearch, AI Vision, Text Recognition
- Estrutura de melhores práticas do Oracle Cloud Infrastructure
- Agregue logs usando o OCI Search Service com OpenSearch
- Use o OCI Vision para extrair dados de imagens e documentos digitalizados
- Documentação do Oracle Integration