Contenido del curso
Interfaces de la API y streaming
Function calling y salidas estructuradas
Reducción de costos con caching y batch
Ingeniería de producción y control de calidad
Proyecto final de consultas sobre documentos
Cómo desplegar tu app de AI en Railway
Resumen
Desplegar una app de IA en Railway convierte tu proyecto local en un producto accesible desde Internet. Aquí aprenderás a llevar tu AI Content Operations Studio construido en Python desde tu máquina hasta un dominio público, ideal si ya tienes tu integración con la API de OpenAI lista y quieres compartirla.
Una integración local no es todavía un producto. Ese es el punto de partida: tienes tu proyecto funcionando en tu computadora, pero nadie más puede usarlo. El paso que cierra el ciclo es el despliegue, y para eso usaremos Railway, un servicio con una interfaz visual muy intuitiva que muestra sus features, sus clientes y cómo conectar todos los servicios que necesita tu aplicación.
Qué es Railway y por qué usarlo para desplegar tu proyecto
Railway es una plataforma de despliegue que te permite pasar de local a producción sin pelear con configuraciones complejas de servidor. Entras a railway.com, creas una cuenta, inicias sesión y llegas a un dashboard donde empiezas todo el proceso [00:31].
¿Qué es Railway? Es un servicio en la nube que despliega tu proyecto en Internet a partir de un repositorio de GitHub, una base de datos, un template o una imagen de Docker. Te da un dominio público sin que configures un servidor manualmente.
Desde el dashboard creas un nuevo proyecto. Railway te ofrece varias fuentes para importarlo, pero en este caso usamos un repositorio de GitHub. Al seleccionarlo, Railway empieza a desplegarlo de inmediato [01:19].
Por qué falla el primer despliegue y cómo solucionarlo
Es normal que el primer intento marque error. Y aquí viene lo interesante: cada fallo te dice exactamente qué falta. El primer error aparece porque el proyecto no tiene todavía las variables de entorno seteadas.
Cómo configurar las variables de entorno en Railway
La variable que necesitas es la misma que usabas en tu archivo de environment local: la OpenAI API Key. En la sección de variables agregas una nueva, la nombras OpenAI API Key, copias el value y lo guardas [01:48].
Cada vez que modificas algo en Railway, la plataforma te pide volver a desplegar para aplicar el cambio. Vuelves a desplegar y, si falla otra vez, en la pestaña de deployments verás el detalle del error.
Cómo definir el root directory y el start command
Si tu repositorio contiene más de una carpeta, Railway no sabe cuál es la raíz de tu app. En este caso el repositorio tiene una carpeta de Python y otra de TypeScript, así que hay que indicar el root directory correcto.
- Entra a la pestaña de settings, debajo del repositorio.
- Busca la opción de agregar root directory y selecciona
/python. - Haz clic en deploy para reiniciar el proceso de construcción de la imagen [02:33].
Después agregas un custom start command dentro del apartado de deploy, en settings. Este comando le dice a Railway cómo correr tu servidor [03:05]. Con eso resuelto, tu aplicación queda online, aunque todavía falta un detalle clave.
Cómo generar un dominio público para acceder desde Internet
Tener la app corriendo no significa que puedas abrirla en el navegador. Necesitas un dominio, y Railway lo genera desde settings, en el apartado de networking [03:34].
¿Cómo hago pública mi app en Railway? Ve a settings, luego a networking, elige el puerto y genera un dominio. Railway te entrega una URL con la que cualquier persona puede entrar a tu aplicación.
Al generar el dominio, Railway recomienda el puerto 8080 por defecto. Aunque en local venías usando el puerto 8000 durante las clases, conviene usar el puerto recomendado por Railway [03:47]. Marcas el puerto, generas el dominio y haces clic para abrir tu aplicación en una nueva pestaña.
Para validar que todo funciona, la app incluye estilos que encuentras en la clase 18 o en la rama main. Las funcionalidades son las mismas de antes; solo se agregó apariencia visual. Puedes pedirle, por ejemplo, un post para LinkedIn sobre React o Python, generarlo en streaming y copiar el contenido directo a la red social que quieras [04:20].
Qué limitación tiene el sistema de archivos en Railway
Hay un punto técnico importante que la documentación de Railway señala: el sistema de archivos es efímero. Esto afecta cómo guardas archivos generados por tu app.
¿Qué significa que el sistema de archivos sea efímero? Que los archivos escritos, como imágenes o audios en MP3, funcionan solo para el request inmediato y no persisten cuando la producción se reinicia. Para guardarlos necesitas servicios de alojamiento de archivos más avanzados.
Los endpoints que escriben imagen o audio siguen respondiendo en el momento, pero no conservan el archivo tras un reinicio [05:29]. El resto de la interfaz funciona sin problema.
Para seguir el paso a paso completo, el archivo README incluye un apartado dedicado al despliegue en Railway: cómo se crea el proyecto, dónde se setea el root directory, el start command, las variables de entorno y el dominio público [05:04].
Qué construiste con este Content Operations Studio
Terminaste con algo que va mucho más allá de un chat. Creaste un Content Operations Studio con Python que integra varias capacidades reales de la OpenAI API:
- Generación de texto e imagen.
- Voz y streaming.
- Structured outputs y tools.
- Prácticas mínimas de producción.
Y lo más valioso: aprendiste a pensar en la OpenAI API como la superficie de un producto real, no solo como una llamada para generar texto ni como una interfaz de chat. Completa los desafíos del curso para reforzar lo aprendido, presenta el examen, obtén tu certificado y compártelo en tus redes.
¿Ya desplegaste tu primera app en Railway? Cuéntame en los comentarios qué generador de contenido construiste.