RAGStack-Lambda

Processamento serverless de documentos e mídia com chat de IA.

Documentação

RAGStack-Lambda-app icon

Apache 2.0 License Python 3.13 React 19

AWS Lambda AWS Bedrock AWS Transcribe AWS S3 AWS DynamoDB AWS Cognito

Processamento serverless de documentos e mídia com chat de IA. Arquitetura scale-to-zero — sem custos de banco vetorial, sem custos ociosos. Envie documentos, imagens, vídeo e áudio — extraia texto com OCR ou transcrição — consulte usando Amazon Bedrock ou seu assistente de IA via MCP.

PERGUNTAS? Deep WIKI

Recursos

  • ☁️ Arquitetura totalmente serverless (Lambda, Step Functions, S3, DynamoDB)
  • 🧠 NOVO Embeddings multimodais Amazon Nova para vetorização de texto e imagem
  • 📄 Processamento e vetorização de documentos (PDF, imagens, documentos Office, HTML, CSV, JSON, XML, EML, EPUB) → armazenados na base de conhecimento gerenciada
  • 🎬 NOVO Processamento de vídeo/áudio - transcreva fala com AWS Transcribe, pesquisável por timestamp
  • 💬 Chat de IA com contexto aumentado por recuperação e atribuição de fontes
  • 📎 Citações de fontes recolhíveis com downloads opcionais de documentos
  • ⏱️ NOVO Fontes de mídia com links de timestamp - clique para reproduzir na posição exata
  • 🔍 Filtragem de metadados - descubra automaticamente metadados de documentos e filtre resultados de pesquisa
  • 🎯 Reforço de relevância para resultados filtrados - priorize correspondências de filtros de metadados
  • 🔄 Reindexação da base de conhecimento - regenere metadados para documentos existentes com configurações atualizadas
  • 🗑️ Gerenciamento de documentos - reprocesse, reindexe ou exclua documentos do painel
  • 🌐 Componente web para qualquer framework (React, Vue, Angular, Svelte)
  • 🚀 Implantação com um clique
  • 💰 US$ 7-10/mês (1000 documentos, Textract + Haiku)

Demonstração ao Vivo

AmbienteURLCredenciais
Pipeline Basedhrmkxyt1t9pb.cloudfront.netguest@hatstack.fun / Guest@123
Vitrine do Projetoshowcase-htt.hatstack.funEntre como convidado

Pipeline Base: A ferramenta principal de processamento de documentos - envie, faça OCR e consulte documentos.

Vitrine do Projeto: Veja o RAGStack alimentando uma aplicação real.

Início Rápido

Opção 1: Implantação com Um Clique (AWS Marketplace)

O REPOSITÓRIO ESTÁ EM DESENVOLVIMENTO ATIVO E MUDARÁ COM FREQUÊNCIA

Implante diretamente do Console AWS - sem necessidade de configuração local:

  1. Assine o RAGStack no AWS Marketplace (gratuito, não obrigatório - Se inscrito, as funções Lambda aceitam automaticamente os acordos de modelo Bedrock na primeira invocação)
  2. Clique aqui para implantar
  3. Insira um nome de stack (apenas minúsculas, ex.: "my-docs") e seu e-mail de administrador
  4. Clique em Criar Stack (a implantação leva ~10 minutos)

Após a implantação:

  • Verifique seu e-mail para a senha temporária (do Cognito)
  • Vá para CloudFormation → seu stack → aba Outputs para encontrar a URL do Painel (UIUrl)

Opção 2: Implantação a partir do Código-Fonte

Para personalização ou desenvolvimento:

Pré-requisitos:

  • Conta AWS com acesso de administrador
  • Python 3.13+, Node.js 24+
  • uv (gerenciador de pacotes Python)
  • AWS CLI, SAM CLI (configurados)
  • Docker (para builds de camadas Lambda)
git clone https://github.com/HatmanStack/RAGStack-Lambda.git
cd RAGStack-Lambda

# Install dependencies
uv sync

# Deploy (defaults to us-east-1 for Nova Multimodal Embeddings)
python publish.py \
  --stack-name my-docs \
  --admin-email admin@example.com

Opção 3: Implantação de Stack Aninhada

Implante o RAGStack como parte de um stack CloudFormation maior. Consulte o Guia de Implantação de Stack Aninhada para detalhes.

Exemplo rápido:

Resources:
  RAGStack:
    Type: AWS::CloudFormation::Stack
    Properties:
      TemplateURL: https://ragstack-quicklaunch-public.s3.us-east-1.amazonaws.com/ragstack-template.yaml
      Parameters:
        StackPrefix: 'my-app-ragstack'  # Required: lowercase prefix
        AdminEmail: admin@example.com

Integração de Componente Web

Consulte RAGSTACK_CHAT.md para o guia de integração do componente web.

Acesso à API

Integrações no lado do servidor usam autenticação por chave de API. Obtenha sua chave em Painel → Configurações.

curl -X POST 'YOUR_GRAPHQL_ENDPOINT' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"query": "query { searchKnowledgeBase(query: \"...\") { results { content } } }"}'

Componente web usa autenticação IAM (sem necessidade de chave de API - tratado automaticamente).

Cada aba da interface mostra exemplos de API no lado do servidor em uma seção expansível.

Servidor MCP (Integração com Assistente de IA)

Use sua base de conhecimento diretamente no Claude Desktop, Cursor, VS Code, Amazon Q CLI e outras ferramentas compatíveis com MCP.

# Install (or use uvx for zero-install)
pip install ragstack-mcp

Adicione à configuração MCP do seu assistente de IA:

{
  "ragstack-kb": {
    "command": "uvx",
    "args": ["ragstack-mcp"],
    "env": {
      "RAGSTACK_GRAPHQL_ENDPOINT": "YOUR_ENDPOINT",
      "RAGSTACK_API_KEY": "YOUR_API_KEY"
    }
  }
}

Depois pergunte naturalmente: "Pesquise em minha base de conhecimento por documentos de autenticação"

Consulte a documentação do Servidor MCP para instruções completas de configuração.

Arquitetura

Upload → OCR → Embeddings → Bedrock KB
                                ↓
 Web UI (Dashboard + Chat) ←→ GraphQL API
                                ↓
 Web Component ←→ AI Chat with Sources

Uso

Documentos

Envie documentos em vários formatos. A detecção automática roteia para o processador ideal:

TipoFormatosProcessamento
TextoHTML, TXT, CSV, JSON, XML, EML, EPUB, DOCX, XLSXExtração direta com análise inteligente
OCRPDF, JPG, PNG, TIFF, GIF, BMP, WebP, AVIFOCR Textract ou Bedrock vision (WebP/AVIF exigem Bedrock)
MídiaMP4, WebM, MP3, WAV, M4A, OGG, FLACAWS Transcribe → segmentos de 30s → pesquisáveis com timestamps
Passagem diretaMarkdown (.md)Cópia direta

Tempo de processamento: ENVIADO → PROCESSANDO → INDEXADO (normalmente 1-5 min para texto, 2-15 min para OCR, 5-20 min para mídia)

Imagens

Envie JPG, PNG, GIF, WebP com legendas. Tanto o conteúdo visual quanto o texto da legenda são pesquisáveis.

Raspagem de Sites

Raspe sites para a base de conhecimento. Consulte Raspagem de Sites.

Vídeo e Áudio

Envie arquivos MP4, WebM, MP3, WAV, M4A, OGG ou FLAC. A fala é transcrita usando AWS Transcribe e segmentada em blocos de 30 segundos para pesquisa. As fontes incluem timestamps (ex.: "1:30-2:00") com links clicáveis que reproduzem na posição exata.

Recursos:

  • Diarização de falantes (identifique quem disse o quê)
  • Idioma configurável (mais de 30 idiomas suportados)
  • Fontes vinculadas a timestamps nas respostas do chat

Consulte Configuração para configurações de idioma e falantes.

Chat

Faça perguntas sobre seu conteúdo. As fontes mostram de onde vieram as respostas.

Documentação

Desenvolvimento

npm run check  # Lint + test all (backend + frontend)

Opções de Implantação

Implantação Direta

# Full deployment (defaults to us-east-1)
python publish.py --stack-name myapp --admin-email admin@example.com

# Skip dashboard build (still builds web component)
python publish.py --stack-name myapp --admin-email admin@example.com --skip-ui

# Skip ALL UI builds (dashboard and web component)
python publish.py --stack-name myapp --admin-email admin@example.com --skip-ui-all

# Enable demo mode (rate limits: 5 uploads/day, 30 chats/day; disables reindex/reprocess/delete)
python publish.py --stack-name myapp --admin-email admin@example.com --demo-mode

Publicar no AWS Marketplace (Mantenedores)

Para atualizar o modelo de implantação com um clique:

python publish.py --publish-marketplace

Isso empacota a aplicação e envia para o S3 para implantação com um clique.

Nota: Atualmente requer us-east-1 (Nova Multimodal Embeddings). Quando disponível em outras regiões, use --region <region>.

Agradecimentos

Este projeto foi inspirado em: