Workspace
Overview
pnpm workspace monorepo usando TypeScript para el backend + app Python/Gradio para el chatbot de IA.
Stack
- Monorepo tool: pnpm workspaces
- Node.js version: 24
- Package manager: pnpm
- TypeScript version: 5.9
- API framework: Express 5
- Database: PostgreSQL + Drizzle ORM
- Validation: Zod (
zod/v4),drizzle-zod - API codegen: Orval (from OpenAPI spec)
- Build: esbuild (CJS bundle)
- Python version: 3.11
- Chat AI: Gradio + OpenAI (vía Replit AI Integrations)
Aplicación Principal: Chat IA
La aplicación de chat está en chat-app/:
chat-app/app.py— App Gradio con chat conversacional estilo ChatGPT/Geminichat-app/requirements.txt— Dependencias Python (gradio, openai)chat-app/README.md— Configuración para Hugging Face Spaces
Ejecutar localmente
PORT=5000 python chat-app/app.py
Publicar en Hugging Face Spaces
- Crea una cuenta en huggingface.co
- Ve a Settings → Access Tokens → New token (con permiso
write) - Crea un nuevo Space en Hugging Face (tipo: Gradio)
- Sube los archivos de
chat-app/al Space - Agrega tu API key en los Secrets del Space:
AI_INTEGRATIONS_OPENAI_BASE_URLAI_INTEGRATIONS_OPENAI_API_KEY- O bien, usa
OPENAI_API_KEYcon tu propia clave de OpenAI
Structure
artifacts-monorepo/
├── chat-app/ # App Python/Gradio - Chatbot de IA
│ ├── app.py # Aplicación principal Gradio
│ ├── requirements.txt # Dependencias Python
│ └── README.md # Configuración Hugging Face Spaces
├── artifacts/ # Deployable applications (Node.js)
│ └── api-server/ # Express API server
├── lib/ # Shared libraries
│ ├── api-spec/ # OpenAPI spec + Orval codegen config
│ ├── api-client-react/ # Generated React Query hooks
│ ├── api-zod/ # Generated Zod schemas from OpenAPI
│ └── db/ # Drizzle ORM schema + DB connection
├── scripts/ # Utility scripts
└── package.json # Root package
Packages
artifacts/api-server (@workspace/api-server)
Express 5 API server (Node.js backend).
lib/db (@workspace/db)
Database layer using Drizzle ORM with PostgreSQL.
lib/api-spec (@workspace/api-spec)
OpenAPI 3.1 spec and Orval codegen config.