# 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/Gemini - `chat-app/requirements.txt` — Dependencias Python (gradio, openai) - `chat-app/README.md` — Configuración para Hugging Face Spaces ### Ejecutar localmente ```bash PORT=5000 python chat-app/app.py ``` ### Publicar en Hugging Face Spaces 1. Crea una cuenta en [huggingface.co](https://huggingface.co) 2. Ve a Settings → Access Tokens → New token (con permiso `write`) 3. Crea un nuevo Space en Hugging Face (tipo: Gradio) 4. Sube los archivos de `chat-app/` al Space 5. Agrega tu API key en los Secrets del Space: - `AI_INTEGRATIONS_OPENAI_BASE_URL` - `AI_INTEGRATIONS_OPENAI_API_KEY` - O bien, usa `OPENAI_API_KEY` con tu propia clave de OpenAI ## Structure ```text 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.