Live Site
ai-agent-chat.cloudio.click.s3-website-us-east-1.amazonaws.com
Úsalo como referencia de salida: la experiencia que deberías alcanzar después de desplegar datos, capa RAG y frontend.
Hands-On Guide
Esta página organiza la ejecución del MVP en una secuencia controlada: preparar entorno, desplegar la capa de datos, verificar retrieval, conectar la capa RAG y validar la experiencia final.
Referencias críticas
Si esta guía se sigue sin estas referencias, el lector pierde contexto operativo. El live site valida la experiencia final. Los tres repositorios muestran la implementación real de cada capa.
Live Site
Úsalo como referencia de salida: la experiencia que deberías alcanzar después de desplegar datos, capa RAG y frontend.
Repositorio fuente
Infraestructura y procesamiento documental upstream.
Repositorio fuente
Runtime conversacional, retrieval y generación.
Repositorio fuente
Frontend Angular y consumo del stream.
Arquitectura
01
El usuario ve una sola puerta de entrada: ai-agent-chat, la UI Angular que envía prompts y renderiza el stream.
02
El frontend llama al endpoint público y mantiene compatibilidad con NDJSON tipado, texto y payloads legacy.
03
Esta capa expone el Function URL, reenvía al orquestador y concentra translation, classifier, retrieval y generation.
04
El conocimiento se prepara upstream: S3, Batch, rag_context y OpenSearch quedan fuera del runtime conversacional.
flowchart LR
USER[Usuario]
subgraph Chat["ai-agent-chat"]
UI[Angular chat UI
stream rendering]
end
subgraph Rag["ai-agent-rag"]
URL[Lambda Function URL]
API[Node.js API handler]
ORCH[LangGraph orchestrator
translation -> classifier -> retrieval -> generation]
CTX[(S3 context responses)]
URL --> API --> ORCH --> CTX
end
subgraph Data["ai-agent-data"]
SRC[S3 source bucket]
BATCH[AWS Batch processor]
RAGJSON[processed/rag_context JSON]
ING[OpenSearch ingestor]
OS[(OpenSearch index)]
SRC --> BATCH --> RAGJSON --> ING --> OS
end
USER --> UI
UI --> URL
ORCH --> OS
ORCH -->|NDJSON tipado| UI
Usa esta vista para orientar el recorrido. Cuando se requiera mayor detalle, conviene derivar a ai-agent-data/docs/ARCHITECTURE.md o ai-agent-rag/docs/ARCHITECTURE.md y mantener esta página como vista consolidada.
Notas técnicas
Models
La clasificación usa Amazon Nova Micro para devolver JSON corto y rápido. La generación final usa por defecto Amazon Nova Pro y la infraestructura permite cambiar el alias activo a claude, llama o nova.
Translate
El query suele nacer en español, mientras que el corpus de estándares y buena parte de los nombres de mensajes vive en inglés. Traducir antes de clasificar y buscar mejora la probabilidad de recuperar contexto útil.
Lambda limits
El retrieval guarda resultados en S3 y devuelve una referencia. Esa decisión evita payloads grandes entre Lambdas y mantiene el paso de generation enfocado en condensar contexto.
Signals
Antes de la salida final, el orquestador emite un evento meta con dominio, intención, cantidad de documentos y tipo de storage. Eso facilita observabilidad y depuración desde la UI.
Setup
Conviene partir de un workspace explícito para que los comandos, rutas y validaciones sean consistentes.
export WORKSHOP_ROOT="$HOME/work/ai-agent"
cd "$WORKSHOP_ROOT"
Tooling
La preparación del entorno incluye declarar e instalar las herramientas que intervienen en el recorrido.
# macOS
brew install awscli
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
brew install --cask docker
brew install node
brew install python
# Ubuntu / Debian
sudo apt-get update
sudo apt-get install -y awscli terraform docker.io nodejs npm python3 python3-pip
aws configure
aws sts get-caller-identity
terraform version
docker --version
node --version
npm --version
python --version
Delivery
El recorrido principal del workshop está planteado en modo `local-first`. GitHub Actions puede complementar despliegues de equipo, pero no es indispensable para seguir el MVP.
ai-agent-data/.github/workflows/deploy-infrastructure.yml
ai-agent-rag/.github/workflows/infrastructure-dev.yml
ai-agent-chat/.github/workflows/deploy.yml
Paso 1
La secuencia comienza en la capa de ingestión, donde se prepara el conocimiento que alimentará el runtime conversacional.
ai-agent-data/terraform/main.tf
ai-agent-data/terraform/outputs.tf
ai-agent-data/terraform/environments/dev.tfvars
cd "$WORKSHOP_ROOT/ai-agent-data/terraform"
terraform init \
-backend-config="bucket=YOUR-STATE-BUCKET" \
-backend-config="key=doc-processor/dev/terraform.tfstate" \
-backend-config="region=us-east-1"
terraform apply -var-file=environments/dev.tfvars
Paso 2
Antes de construir la imagen, conviene revisar el comportamiento del contenedor y sus responsabilidades.
ai-agent-data/src/batch/processor.py
ai-agent-data/src/pdf_processor.py
ECR_URL=$(terraform output -raw ecr_repository_url)
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin $ECR_URL
cd "$WORKSHOP_ROOT/ai-agent-data/src"
docker build -t $ECR_URL:latest -f batch/Dockerfile .
docker push $ECR_URL:latest
Paso 3
En esta etapa conviene trabajar con el source set canónico para mantener trazabilidad entre documentos, metadata y resultados esperados.
ai-agent-data/docs/WORKSHOP_DEMO_SOURCE_SET.md
cd "$WORKSHOP_ROOT/ai-agent-data/terraform"
BUCKET=$(terraform output -raw source_bucket)
aws s3 cp ./s3/pdfs_iso/ISO20022_MDRPart2_PaymentsInitiation_2023_2024_v1.pdf s3://$BUCKET/ --metadata domain="iso 20022",document_type="specification",standard="ISO 20022"
aws s3 cp ./s3/docxs_iso/ISO20022_MDRPart1_PaymentsInitiation_2023_2024_v2.docx s3://$BUCKET/ --metadata domain="iso 20022",document_type="specification",standard="ISO 20022"
aws s3 cp ./s3/pdfs_iso/ISO20022_MDRPart2_Bank-to-CustomerCashManagement_2023_2024_v1.pdf s3://$BUCKET/ --metadata domain="iso 20022",document_type="specification",standard="ISO 20022"
Paso 4
ai-agent-data/src/lambda/dispatcher.py
aws logs tail /aws/lambda/doc-processor-dispatcher-dev --follow
aws logs tail /aws/batch/doc-processor --follow
aws s3 ls s3://$BUCKET/processed/ --recursive
aws s3 cp s3://$BUCKET/processed/rag_context/YOUR_FILE.json /tmp/workshop-rag-context.json
cat /tmp/workshop-rag-context.json
Paso 5
INGESTOR_FN=$(terraform output -raw opensearch_ingestor_function_name)
aws logs tail /aws/lambda/$INGESTOR_FN --follow
Paso 6
ai-agent-rag/data.tf
ai-agent-rag/variables.tf
cd "$WORKSHOP_ROOT/ai-agent-rag"
export TF_VAR_aws_region=us-east-1
export TF_VAR_project_name=ai-agent-bank
export TF_VAR_environment=dev
export TF_VAR_terraform_state_bucket='your-terraform-state-bucket'
export TF_VAR_ai_agent_data_state_key='doc-processor/dev/terraform.tfstate'
export TF_VAR_response_generation_model_alias='nova'
terraform init \
-backend-config="bucket=YOUR-RAG-STATE-BUCKET" \
-backend-config="key=infra/dev/terraform.tfstate" \
-backend-config="region=us-east-1"
terraform apply
Paso 7
ai-agent-rag/modules/lambda/orchestrator-wa/lambda_langgraph_orchestrator-wa.py
python -m pytest modules/lambda/tests/test_langgraph_orchestrator.py -q
Paso 8
ai-agent-chat/src/app/chat.service.ts
cd "$WORKSHOP_ROOT/ai-agent-rag"
export API_URL="$(terraform output -raw api_endpoint_url)"
cd "$WORKSHOP_ROOT/ai-agent-chat"
npm install
npm start
Paso 9
Necesito un contrato OpenAPI para iniciar pagos basado en ISO 20022. Quiero request y response en application/json y una propuesta inicial en YAML.
Explicame la estructura de un mensaje de estado de pagos en ISO 20022 y los campos principales que deberia considerar.
Genera un contrato API completo basado en BIAN para customer onboarding y devuelvelo en OpenAPI.
Code Map
Explica cómo un upload en S3 termina en un job de AWS Batch.
Explica cómo se producen Markdown y `rag_context`.
Explica el contrato de metadata que retrieval necesita.
Explica el flujo autoritativo y el stream NDJSON tipado.
Explica cómo la UI consume y presenta el stream.