forked from innovacion/Mayacontigo
137 lines
3.8 KiB
Markdown
137 lines
3.8 KiB
Markdown
# MayaContigo Monorepo
|
|
|
|
Bonjour,
|
|
Este monorepo contiene todas las applicaciones RAG del equipo de Innovacion en Banorte.
|
|
Su proposito es poder acelerar la creacion de nuevos RAGs, e ir construyendo una libreria de componentes reutilizables.
|
|
Adicionalmente, tambien contiene una serie de notebooks para procesar documentos, evaluar RAGs, generar preguntas sinteticas, etc/
|
|
|
|
## 🚀 Inicio Rápido
|
|
|
|
```bash
|
|
# Instala el monorepo
|
|
mise setup
|
|
|
|
# Crea una nueva aplicación RAG
|
|
mise new prueba
|
|
|
|
# Creación interactiva
|
|
mise dev --app prueba
|
|
```
|
|
|
|
### Prerrequisitos
|
|
|
|
Si estas en el ambiente de desarrollo oficial, tu maquina virtual ya cuenta con estos programas.
|
|
|
|
- **Mise** [Docs](https://mise.jdx.dev/)
|
|
- **Docker** [Docs](https://www.docker.com/)
|
|
- **Vault** [Docs](https://developer.hashicorp.com/vault/)
|
|
|
|
## 📁 Estructura del Proyecto
|
|
|
|
```
|
|
mayacontigo/
|
|
├── apps/ # Aplicaciones individuales
|
|
├── packages/ # Paquetes compartidos
|
|
├── notebooks/ # Marimo notebooks
|
|
├── .templates/ # Plantillas de proyecto
|
|
├── .containers/ # Configuraciones de Docker
|
|
└── compose.yaml # Servicios de Docker Compose
|
|
```
|
|
|
|
## 🛠️ Comandos de Desarrollo
|
|
|
|
### Crear Nuevos Proyectos
|
|
|
|
```bash
|
|
# Crea una nueva aplicación RAG
|
|
mise new <nombre-app>
|
|
|
|
# Creación interactiva
|
|
mise new
|
|
```
|
|
|
|
### Entorno de Desarrollo
|
|
|
|
```bash
|
|
# Inicia servidores de desarrollo (frontend + backend)
|
|
mise dev # Selección interactiva de aplicación
|
|
mise dev --app <nombre-app> # Inicia aplicación específica
|
|
mise dev --no-dashboard # Deshabilita el dashboard en vivo
|
|
mise dev --check-deps # Solo verifica dependencias
|
|
mise dev --list-apps # Lista aplicaciones disponibles
|
|
```
|
|
|
|
### Gestión de Contenedores
|
|
|
|
```bash
|
|
# Inicia contenedores localmente
|
|
mise container:start # Selección interactiva
|
|
mise container:start <nombre-app> # Inicia aplicación específica
|
|
mise container:start --list # Lista contenedores disponibles
|
|
|
|
# Sube a Azure Container Registry
|
|
mise container:push # Selección interactiva
|
|
mise container:push <nombre-imagen> # Sube imagen específica
|
|
mise container:push --list # Lista imágenes disponibles
|
|
```
|
|
|
|
## 🏗️ Stack Tecnológico
|
|
|
|
### Tecnologías Centrales
|
|
- **Frontend**: React/Next.js con TypeScript
|
|
- **Backend**: Python con FastAPI/Uvicorn
|
|
- **Gestión de Paquetes**: pnpm (Node.js), uv (Python)
|
|
- **Contenedorización**: Docker & Docker Compose
|
|
|
|
### Infraestructura
|
|
- **Gestión de Secretos**: HashiCorp Vault
|
|
- **Registro de Contenedores**: Azure Container Registry
|
|
- **Observabilidad**: OpenTelemetry
|
|
- **Proxy Inverso**: Traefik
|
|
|
|
## 🎯 Creando tu Primera Aplicación
|
|
|
|
1. **Genera desde plantilla**
|
|
```bash
|
|
mise new mi-app-rag
|
|
```
|
|
|
|
2. **Inicia desarrollo**
|
|
```bash
|
|
mise dev --app mi-app-rag
|
|
```
|
|
|
|
3. **Accede a tu aplicación**
|
|
- Frontend: http://localhost:3000
|
|
- API Backend: http://localhost:8000
|
|
|
|
## 🔧 Configuración
|
|
|
|
### Desarrollo Local
|
|
|
|
- Frontend corre en puerto 3000
|
|
- APIs Backend corren en puerto 8000
|
|
- Servicios Docker usan puertos auto-asignados (8001+)
|
|
|
|
### Depuración
|
|
- Usa `--no-dashboard` para salida más simple
|
|
- Verifica `mise dev --check-deps` para problemas de dependencias
|
|
- Ve logs de contenedores con `docker logs <nombre-contenedor>`
|
|
|
|
## 🤝 Contribuyendo
|
|
|
|
1. Crea nuevas aplicaciones usando el sistema de plantillas
|
|
2. Sigue la estructura del monorepo
|
|
3. Usa los comandos de desarrollo proporcionados
|
|
4. Asegúrate de que todas las dependencias estén correctamente configuradas
|
|
|
|
## 📖 Recursos Adicionales
|
|
|
|
- **Plantillas**: Revisa `.templates/` para plantillas de proyecto disponibles
|
|
- **Docker**: Ve `.containers/` para configuraciones de contenedorización
|
|
- **Tareas**: Explora `.mise/tasks/` para scripts de automatización disponibles
|
|
|
|
---
|
|
|
|
*¡Feliz programación! 🚀*
|