Personalizando sua base de conhecimento no Amazon Bedrock para documentos grandes e complexos com o Amazon Textract

O problema com documentos complexos em soluções RAG

Equipes de atendimento ao cliente que lidam com grandes volumes de documentos — como contas de serviços públicos, faturas e extratos — enfrentam um desafio persistente: extrair informações corretas de arquivos com formatos variados, tabelas densas e layouts inconsistentes. Quando o volume cresce, a ineficiência se multiplica e os erros se tornam inevitáveis.

A AWS publicou um guia técnico detalhando como resolver esse problema combinando o Amazon Textract com o Amazon Bedrock. A proposta é substituir a busca manual por documentos por consultas programáticas, extraindo insights de contas de serviços públicos em escala e tornando as interações com clientes mais rápidas e precisas.

Por que o RAG simples não é suficiente

A abordagem inicial mais comum para esse tipo de problema é implementar uma solução de Geração Aumentada por Recuperação (RAG — Retrieval Augmented Generation) alimentando os documentos brutos diretamente no modelo. Só que essa estratégia apresenta falhas sérias na prática.

Ao carregar as contas diretamente no modelo, os times enfrentaram três problemas principais:

  • Extração incompleta de dados: o Modelo de Linguagem de Grande Escala (LLM — Large Language Model) deixava de capturar informações críticas, como datas de vencimento, valores devidos e números de conta.
  • Alucinações: o modelo gerava informações incorretas ou irrelevantes, causando erros nas respostas ao cliente.
  • Variação de formato: documentos em PDF, DOCX, TXT, HTML e XLSX produziam resultados inconsistentes, já que cada formato impõe desafios diferentes para o LLM.

A conclusão foi direta: simplesmente alimentar documentos brutos em um pipeline RAG não é suficiente para garantir respostas confiáveis. É necessário um pré-processamento robusto antes de qualquer interação com o modelo.

A solução: Amazon Textract + Amazon Bedrock

A arquitetura proposta pela AWS integra o Amazon Textract ao Amazon Bedrock para resolver exatamente esses gargalos. O Textract atua como a camada de pré-processamento inteligente, enquanto o Bedrock fornece as capacidades de recuperação e geração de respostas.

Essa integração oferece três benefícios centrais:

  • Extração avançada de texto: o Textract processa os documentos antes de qualquer consulta ao LLM, capturando texto de múltiplos formatos e garantindo que todas as informações relevantes sejam preservadas.
  • Limpeza e enriquecimento dos dados: o conteúdo extraído passa por um processo de higienização, removendo ruídos e informações irrelevantes para que apenas os dados pertinentes cheguem ao modelo.
  • Compreensão contextual: o Textract rotula e etiqueta o conteúdo extraído com contexto semântico, facilitando o trabalho do LLM na hora de processar e gerar respostas precisas.

Formatos de arquivo suportados

A solução suporta os seguintes tipos de arquivo:

  • PDF (Formato de Documento Portátil): o Textract extrai texto de PDFs com múltiplas páginas, incluindo documentos com layouts complexos e imagens incorporadas.
  • DOCX (Documento Microsoft Word): o serviço interpreta e extrai texto de arquivos Word, incluindo tabelas, imagens e outros objetos incorporados.
  • TXT (Arquivos de Texto Simples): arquivos de texto puro são processados diretamente para extração de conteúdo.
  • HTML (Linguagem de Marcação de Hipertexto): o Textract extrai texto de arquivos HTML, incluindo dados estruturados dentro das tags.
  • XLSX (Planilha Microsoft Excel): o serviço extrai texto de planilhas Excel, incluindo conteúdo de células e dados tabulares.
  • PNG (Gráfico de Rede Portátil): o Textract também processa imagens PNG para extração de texto.

Como implantar a solução

A AWS disponibilizou o código completo no GitHub para facilitar a implementação. A implantação é feita por meio de um script shell que cria automaticamente uma pilha do AWS CloudFormation com todos os recursos necessários.

Passo a passo da implantação

Para executar o script de implantação, siga estas etapas:

  • Clone o repositório do GitHub.
  • Navegue até o diretório custom-knowledge-base.
  • Abra um terminal e execute bash custom_kb_deployment_setup.sh.

O script cria a pilha do CloudFormation automaticamente. Os recursos provisionados na sua conta incluem:

  • Função de execução do AWS Lambda
  • Camada (layer) do Lambda utilizada pelas funções
  • Duas funções Lambda
  • Um bucket do Amazon Simple Storage Service (Amazon S3)
  • Um cluster do Amazon OpenSearch Serverless
  • Uma base de conhecimento do Amazon Bedrock
  • Função do AWS Identity and Access Management (IAM) para a base de conhecimento do Bedrock

Configuração pós-implantação

Após a conclusão da implantação da pilha, é necessário configurar o Amazon S3. Acesse o console do S3, localize o bucket criado com o nome document-<stack-name>-<partial-stack-id>, crie uma pasta chamada raw_files e faça o upload das contas de serviços públicos do repositório para essa pasta.

Processamento automatizado

A partir do momento em que um arquivo é carregado no bucket, o pipeline entra em ação automaticamente:

  • O upload aciona a função Lambda document-parser.
  • Os jobs do Amazon Textract processam os arquivos brutos.
  • Os arquivos processados são salvos na pasta parsed_files.
  • Uma segunda função Lambda converte os arquivos para o formato TXT.
  • O resultado final é salvo na pasta parsed_kb_documents.

Configuração da base de conhecimento

Com os documentos processados, o próximo passo é configurar a base de conhecimento no Amazon Bedrock. Acesse o console do Bedrock, navegue até Knowledge Bases no painel de navegação, selecione a base de conhecimento recém-criada, escolha a fonte de dados e clique em Sync. Aguarde a sincronização ser concluída.

Testando a aplicação

Para validar a solução, acesse o console do Amazon Bedrock, selecione a base de conhecimento e escolha Text Knowledge Base. Nas configurações, selecione o modelo Amazon Nova Micro. Para verificar a disponibilidade do modelo por região da AWS, consulte a documentação de modelos suportados por região no Amazon Bedrock. Com tudo configurado, é possível fazer perguntas diretamente relacionadas às contas de serviços públicos carregadas.

Considerações sobre IA responsável

A AWS destaca que, ao implantar soluções RAG em produção, é fundamental implementar salvaguardas para garantir saídas confiáveis. O Amazon Bedrock Guardrails oferece controles configuráveis para filtrar conteúdo prejudicial, bloquear tópicos não permitidos e redigir informações sensíveis tanto nas entradas quanto nas saídas do modelo. Além disso, a validação de fundamentação (grounding validation) ajuda a detectar e reduzir alucinações, avaliando se as respostas do modelo são suportadas pelos documentos de origem recuperados.

Para ambientes de produção, a recomendação é ativar esses controles para manter precisão, conformidade e confiança dos usuários nas interações com a base de conhecimento.

Conclusão

A solução demonstrada pela AWS mostra como a integração entre múltiplos serviços pode transformar um pipeline RAG simples — e problemático — em um sistema de processamento de documentos robusto e escalável. O uso do CloudFormation garante uma infraestrutura consistente e reproduzível entre diferentes ambientes, enquanto o pipeline automatizado cuida de todo o fluxo, desde o upload do arquivo bruto até a integração com a base de conhecimento.

A abordagem é especialmente valiosa para organizações que lidam com grandes volumes de documentos estruturados. O potencial de expansão é amplo: é possível adicionar novos tipos de documentos, integrar outros serviços AWS para análises mais complexas ou desenvolver uma interface de usuário para facilitar a interação com a base de conhecimento.

Fonte

Customizing your knowledge base on Amazon Bedrock for large and complex documents using Amazon Textract (https://aws.amazon.com/blogs/machine-learning/customizing-your-knowledge-base-on-amazon-bedrock-for-large-and-complex-documents-using-amazon-textract/)

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *