Un chatbot inteligente desarrollado con Astro y AWS Bedrock para ayudar con consultas sobre becas de la Generalitat Valenciana.
- Interfaz de chat moderna y responsive tipo WhatsApp
- Integración con AWS Bedrock Knowledge Base
- Guardrail de contenido (InformacionLegal)
- Diseño profesional con los colores de la Generalitat Valenciana
- Respuestas en tiempo real con formato mejorado
- Indicador de escritura animado
- Node.js 18 o superior
- Cuenta de AWS con acceso a Bedrock
- Credenciales de AWS (Access Key y Secret Key)
- Clonar el repositorio:
git clone https://github.com/Debau123/ChatBot_AWS.git
cd ChatBot_AWS- Instalar dependencias:
npm install- Copiar el archivo de ejemplo:
cp .env.example .env- Configurar las variables de entorno en
.env:
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=tu_access_key
AWS_SECRET_ACCESS_KEY=tu_secret_key
KNOWLEDGE_BASE_ID=MQR2GQQVAY
GUARDRAIL_ID=nqlb277f4ejd
GUARDRAIL_VERSION=DRAFT
MODEL_ARN=arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-pro-v1:0Si usas AWS SSO localmente, puedes omitir AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY. El código usará automáticamente tu perfil SSO configurado.
Para iniciar el servidor de desarrollo:
npm run devEl chatbot estará disponible en http://localhost:4321
Para construir para producción:
npm run build
npm run preview-
Subir el proyecto a GitHub (ya realizado)
-
Importar el proyecto en Vercel desde GitHub
-
Configurar las variables de entorno en Vercel:
AWS_REGIONAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYKNOWLEDGE_BASE_IDGUARDRAIL_IDGUARDRAIL_VERSIONMODEL_ARN
-
Desplegar
Nota importante: Para Vercel necesitas credenciales IAM de AWS, no funciona con SSO.
- Ve a AWS IAM Console
- Crea un nuevo usuario con acceso programático
- Asigna los permisos necesarios para Bedrock:
bedrock:InvokeModelbedrock:RetrieveAndGenerate
- Guarda las credenciales (Access Key ID y Secret Access Key)
- Configura estas credenciales en las variables de entorno de Vercel
/
├── src/
│ ├── layouts/
│ │ └── Layout.astro # Layout base
│ ├── pages/
│ │ ├── api/
│ │ │ └── chat.ts # Endpoint API para Bedrock
│ │ └── index.astro # Página principal del chat
│ └── env.d.ts
├── .env # Variables de entorno (no compartir)
├── astro.config.mjs # Configuración de Astro
└── package.json
Los colores principales están definidos como variables CSS en el archivo index.astro:
--primary-color: #c41f3e (Rojo de la Generalitat)--secondary-color: #2c3e50--background: #f5f5f5
El prompt del sistema se puede modificar en el archivo src/pages/api/chat.ts en la constante SYSTEM_PROMPT.
.env contiene credenciales sensibles y no debe compartirse ni subirse a repositorios públicos. Ya está incluido en .gitignore.
El chatbot actualmente usa el modelo anthropic.claude-v2. Puedes cambiar el modelo en el archivo chat.ts modificando el parámetro modelId.
Otros modelos disponibles:
anthropic.claude-v2:1anthropic.claude-instant-v1anthropic.claude-3-sonnet-20240229-v1:0
- El token Bearer de AWS Bedrock expira después de 12 horas
- El servidor debe estar en modo
serverpara que funcionen los endpoints API - La aplicación usa TypeScript en modo strict
Si encuentras problemas:
- Verifica que el token de Bedrock sea válido
- Revisa los logs en la consola del navegador y del servidor
- Asegúrate de que todas las dependencias estén instaladas correctamente
Este proyecto es para uso interno de la Generalitat Valenciana.