RAGStack-Lambda
Procesamiento serverless de documentos y medios con chat de IA.
Documentación
Procesamiento serverless de documentos y medios con chat de IA. Arquitectura scale-to-zero: sin costos de base de datos vectorial, sin costos por inactividad. Sube documentos, imágenes, video y audio; extrae texto con OCR o transcripción; consulta usando Amazon Bedrock o tu asistente de IA vía MCP.
Características
- ☁️ Arquitectura totalmente serverless (Lambda, Step Functions, S3, DynamoDB)
- 🧠 NUEVO Embeddings multimodales de Amazon Nova para vectorización de texto e imágenes
- 📄 Procesamiento y vectorización de documentos (PDF, imágenes, documentos de Office, HTML, CSV, JSON, XML, EML, EPUB) → almacenados en base de conocimiento administrada
- 🎬 NUEVO Procesamiento de video/audio: transcribe voz con AWS Transcribe, buscable por marca de tiempo
- 💬 Chat de IA con contexto aumentado por recuperación y atribución de fuentes
- 📎 Citas de fuentes plegables con descargas de documentos opcionales
- ⏱️ NUEVO Fuentes de medios con enlaces de marca de tiempo: haz clic para reproducir en la posición exacta
- 🔍 Filtrado de metadatos: descubre automáticamente metadatos de documentos y filtra resultados de búsqueda
- 🎯 Impulso de relevancia para resultados filtrados: prioriza coincidencias de filtros de metadatos
- 🔄 Reindexación de la base de conocimiento: regenera metadatos para documentos existentes con configuraciones actualizadas
- 🗑️ Gestión de documentos: reprocesa, reindexa o elimina documentos desde el panel
- 🌐 Componente web para cualquier framework (React, Vue, Angular, Svelte)
- 🚀 Despliegue con un clic
- 💰 $7-10/mes (1000 documentos, Textract + Haiku)
Demo en vivo
| Entorno | URL | Credenciales |
|---|---|---|
| Base Pipeline | dhrmkxyt1t9pb.cloudfront.net | guest@hatstack.fun / Guest@123 |
| Project Showcase | showcase-htt.hatstack.fun | Inicia sesión como invitado |
Base Pipeline: La herramienta principal de procesamiento de documentos: sube, aplica OCR y consulta documentos.
Project Showcase: Ve a RAGStack impulsando una aplicación real.
Inicio rápido
Opción 1: Despliegue con un clic (AWS Marketplace)
EL REPOSITORIO ESTÁ EN DESARROLLO ACTIVO Y CAMBIARÁ CON FRECUENCIA
Despliega directamente desde la consola de AWS: no se requiere configuración local:
- Suscríbete a RAGStack en AWS Marketplace (gratis, no es obligatorio: si te suscribes, los roles de Lambda aceptan automáticamente los acuerdos de modelos de Bedrock en la primera invocación)
- Haz clic aquí para desplegar
- Ingresa un nombre de stack (solo minúsculas, p. ej., "my-docs") y tu correo de administrador
- Haz clic en Create Stack (el despliegue tarda ~10 minutos)
Después del despliegue:
- Revisa tu correo para obtener la contraseña temporal (de Cognito)
- Ve a CloudFormation → tu stack → pestaña Outputs para encontrar la URL del panel (
UIUrl)
Opción 2: Despliegue desde el código fuente
Para personalización o desarrollo:
Requisitos previos:
- Cuenta de AWS con acceso de administrador
- Python 3.13+, Node.js 24+
- uv (gestor de paquetes de Python)
- AWS CLI, SAM CLI (configurados)
- Docker (para compilaciones de capas de 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
Opción 3: Despliegue de stack anidado
Despliega RAGStack como parte de un stack de CloudFormation más grande. Consulta la Guía de despliegue de stack anidado para más detalles.
Ejemplo 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
Integración del componente web
Consulta RAGSTACK_CHAT.md para la guía de integración del componente web.
Acceso a la API
Las integraciones del lado del servidor usan autenticación con clave de API. Obtén tu clave desde Panel → Configuración.
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 } } }"}'
El componente web usa autenticación IAM (no se necesita clave de API: se maneja automáticamente).
Cada pestaña de la interfaz muestra ejemplos de API del lado del servidor en una sección expandible.
Servidor MCP (integración con asistente de IA)
Usa tu base de conocimiento directamente en Claude Desktop, Cursor, VS Code, Amazon Q CLI y otras herramientas compatibles con MCP.
# Install (or use uvx for zero-install)
pip install ragstack-mcp
Agrega a la configuración MCP de tu asistente de IA:
{
"ragstack-kb": {
"command": "uvx",
"args": ["ragstack-mcp"],
"env": {
"RAGSTACK_GRAPHQL_ENDPOINT": "YOUR_ENDPOINT",
"RAGSTACK_API_KEY": "YOUR_API_KEY"
}
}
}
Luego pregunta de forma natural: "Busca en mi base de conocimiento documentos de autenticación"
Consulta la documentación del servidor MCP para instrucciones completas de configuración.
Arquitectura
Upload → OCR → Embeddings → Bedrock KB
↓
Web UI (Dashboard + Chat) ←→ GraphQL API
↓
Web Component ←→ AI Chat with Sources
Uso
Documentos
Sube documentos en varios formatos. La detección automática enruta al procesador óptimo:
| Tipo | Formatos | Procesamiento |
|---|---|---|
| Texto | HTML, TXT, CSV, JSON, XML, EML, EPUB, DOCX, XLSX | Extracción directa con análisis inteligente |
| OCR | PDF, JPG, PNG, TIFF, GIF, BMP, WebP, AVIF | Textract o OCR de visión de Bedrock (WebP/AVIF requieren Bedrock) |
| Medios | MP4, WebM, MP3, WAV, M4A, OGG, FLAC | AWS Transcribe → segmentos de 30 s → buscable con marcas de tiempo |
| Paso directo | Markdown (.md) | Copia directa |
Tiempo de procesamiento: UPLOADED → PROCESSING → INDEXED (normalmente 1-5 min para texto, 2-15 min para OCR, 5-20 min para medios)
Imágenes
Sube JPG, PNG, GIF, WebP con pies de foto. Tanto el contenido visual como el texto del pie de foto son buscables.
Raspado web
Raspa sitios web hacia la base de conocimiento. Consulta Raspado web.
Video y audio
Sube archivos MP4, WebM, MP3, WAV, M4A, OGG o FLAC. El habla se transcribe con AWS Transcribe y se segmenta en bloques de 30 segundos para la búsqueda. Las fuentes incluyen marcas de tiempo (p. ej., "1:30-2:00") con enlaces en los que se puede hacer clic para reproducir en la posición exacta.
Características:
- Diarización de hablantes (identifica quién dijo qué)
- Idioma configurable (más de 30 idiomas compatibles)
- Fuentes vinculadas a marcas de tiempo en las respuestas del chat
Consulta Configuración para los ajustes de idioma y hablantes.
Chat
Haz preguntas sobre tu contenido. Las fuentes muestran de dónde provienen las respuestas.
Documentación
- Configuración - Ajustes, cuotas, claves de API y gestión de documentos
- Despliegue de stack anidado - Despliega como parte de un stack de CloudFormation más grande
- Carga de imágenes - Carga de imágenes y pies de foto
- Raspado web - Raspa sitios web
- Filtrado de metadatos - Descubre automáticamente metadatos y filtra resultados
- Componente de chat - Incrusta el chat en cualquier lugar
- Referencia de API - Documentación de la API GraphQL
- Arquitectura - Diseño del sistema y referencia de API
- Desarrollo - Desarrollo local
- Migración - Guía de migración de versiones
- Solución de problemas - Problemas comunes
- Referencia de biblioteca - API pública para lib/ragstack_common
Desarrollo
npm run check # Lint + test all (backend + frontend)
Opciones de despliegue
Despliegue directo
# 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 en AWS Marketplace (mantenedores)
Para actualizar la plantilla de despliegue con un clic:
python publish.py --publish-marketplace
Esto empaqueta la aplicación y la sube a S3 para el despliegue con un clic.
Nota: Actualmente requiere us-east-1 (Nova Multimodal Embeddings). Cuando esté disponible en otras regiones, usa
--region <region>.
Agradecimientos
Este proyecto se inspiró en:
- Accelerated Intelligent Document Processing on AWS - Arquitectura de referencia de AWS Solutions Library
- docs-mcp-server - Servidor MCP para búsqueda de documentación