Skip to content
This page has been auto-translated and may contain errors.View in English

Ejecutar Intro to AI Engineering localmente

Usa esta página para ejecutar el proyecto extraído de Gift Genie en tu computadora. El curso actual tiene dos formas del proyecto: una aplicación Vite solo para navegador y, después de la migración del backend, una aplicación Express y Vite. Identifica la forma que tienes, luego sigue su configuración más abajo.

Qué necesitas primero

Instala una versión LTS compatible de Node.js. Se recomienda Node 24. Node 22.12 o posterior también soporta la versión de Vite que usan los proyectos posteriores del curso.

Verifica que Node y npm estén disponibles:

bash
$ node --version
v24.18.0
$ npm --version
11.18.0

npm viene incluido con Node. Si algún comando dice "command not found", termina de instalar Node antes de continuar.

JunoQué necesitas primero Instala la versión LTS de Node.js. Incluye npm, así que una descarga te da ambas herramientas. Si ambos comandos de versión imprimen un número, tu máquina está lista.
JunoQué necesitas primero Usa Node 24, o Node 22.12 y posterior. Eso cubre el runtime que esperan los proyectos Vite 7 hacia el final del curso, así que lo configuras una vez para todo el curso.
JunoQué necesitas primero Los proyectos posteriores usan Vite 7.3. Su mínimo es Node 20.19 o 22.12, pero Node 20 ha llegado al final de su vida útil, así que en la práctica eso significa Node 22.12 o más nuevo. Instala una LTS actualmente soportada en lugar de la versión más antigua que cumpla el mínimo.

Identifica el proyecto que extrajiste

Entra en la carpeta extraída que contiene package.json:

bash
$ cd path-to-your-downloaded-project

Todos los comandos en esta página se ejecutan desde esa carpeta.

Luego verifica qué forma de proyecto tienes. La versión solo para navegador tiene index.html y vite.config.js, y su script start no ejecuta ningún archivo de servidor. La versión Express y Vite tiene tanto server.js como vite.config.js, y su script start los ejecuta juntos.

JunoIdentifica el proyecto que extrajiste Abre una terminal en la carpeta con package.json y lee su script start. Si ejecuta un archivo server.js, sigue la sección de backend. Si no, tienes la versión solo para navegador.
JunoIdentifica el proyecto que extrajiste El script start en package.json te dice qué realmente se ejecuta. Una lección solo de Vite y la aplicación posterior Express-más-Vite necesitan configuración diferente más abajo, así que determina cuál tienes antes de instalar nada.
JunoIdentifica el proyecto que extrajiste Cuando los scripts extraídos o el lockfile difieren de un ejemplo aquí, sigue los archivos. Ellos deciden qué procesos se inician y qué comando de instalación se aplica a tu lección.

Agrega tus valores de entorno

Scrimba suministra tres variables de entorno desde la configuración de tu cuenta. Tu computadora no tiene acceso a esa configuración, así que crea un archivo llamado .env al lado de package.json:

dotenv
AI_URL=https://your-provider.example/v1
AI_KEY=your-key-here
AI_MODEL=your-model-id

Copia los valores que usaste en el curso. La URL y el modelo deben pertenecer al mismo proveedor que la clave.

Antes de usar Git, crea un archivo .gitignore al lado de package.json y agrega:

txt
.env
node_modules/

El manual de Git explica por qué estas dos líneas pertenecen a todos los proyectos en ignoring files and good habits.

Nunca hagas commit de tu clave API

El archivo .env contiene una credencial funcional. No la subas, la pegues en código fuente, ni la hagas commit a Git. Si una clave se expone, revócala en el proveedor y crea una nueva.

Reinicia el proyecto después de cualquier cambio a .env. El comando de ejecución correcto depende de qué parte del curso vino el ZIP.

JunoAgrega tus valores de entorno Crea .env justo al lado de package.json y copia tus tres valores de Scrimba en él. Son los mismos valores que Scrimba guardó en la configuración de tu cuenta, ahora almacenados en tu propia computadora. Mantén ese archivo fuera de Git.
JunoAgrega tus valores de entorno El curso lee AI_URL, AI_KEY, y AI_MODEL como un conjunto para que un cliente pueda apuntar a diferentes proveedores compatibles con OpenAI. Reinicia después de cambiar cualquiera de ellos, porque un proceso en ejecución mantiene los valores anteriores.
JunoAgrega tus valores de entorno Los proyectos solo de navegador cargan .env en la configuración de Vite y escriben los valores en el bundle del cliente. En la descarga del backend, nada carga el archivo para Node hasta que hagas el cambio de script de paquete que se cubre más abajo.

Ejecuta Gift Genie solo para navegador

Las lecciones de Gift Genie antes de la migración del backend tienen index.html y vite.config.js, pero sin server.js activo en el script start. Instala e inicia el proyecto:

bash
$ npm install
$ npm start

Vite imprime una dirección local similar a esta:

text
  VITE ready

  Local: http://localhost:5173/

Abre la URL exacta Local que se imprime en tu terminal. Si el puerto 5173 está ocupado, Vite normalmente selecciona otro puerto e imprime esa dirección en su lugar. Detén Vite con Ctrl+C.

Esta versión expone tu clave al navegador

Estas lecciones deliberadamente llaman al proveedor de IA desde JavaScript del frontend. Vite copia AI_KEY en el bundle del navegador, así que cualquiera que abra la página puede leer la clave en las herramientas de desarrollador de su navegador. Usa una clave temporal y restringida para aprender localmente. No despliegues esta versión ni la compartas en una red. La migración del backend más adelante en el curso es la arquitectura segura en la que construir.

JunoEjecuta Gift Genie solo para navegador Ejecuta npm install, luego npm start, y abre la URL Local exacta que Vite imprime en lugar de una que recuerdes. Presiona Ctrl+C cuando termines.
JunoEjecuta Gift Genie solo para navegador Este proyecto es solo Vite incluso cuando un archivo de servidor no usado está en la carpeta. El script start decide qué realmente se ejecuta, así que confía en él sobre el listado de archivos.
JunoEjecuta Gift Genie solo para navegador La configuración de Vite descargada usa define para reemplazar process.env.AI_KEY, AI_URL, y AI_MODEL en tiempo de compilación, así que la clave llega a cada navegador que carga la página. Usa una clave desechable restringida y trátala como ya pública.

Ejecuta Gift Genie con su backend

La migración del backend y las lecciones posteriores tienen tanto server.js como vite.config.js. Su script start lanza Express y Vite juntos. La descarga actual no carga .env en el proceso de Express automáticamente, así que haz este cambio en package.json antes de iniciarlo.

Encuentra el script server:

json
"server": "node --watch server.js"

Cámbialo a:

json
"server": "node --env-file=.env --watch server.js"

El proyecto del módulo Deployment necesita el mismo cambio --env-file para su servidor.

Agrega el puerto del backend a .env:

dotenv
AI_URL=https://your-provider.example/v1
AI_KEY=your-key-here
AI_MODEL=your-model-id
PORT=3001

Luego instala e inicia ambos procesos:

bash
$ npm install
$ npm start

Deberías ver un mensaje de Express para el puerto 3001 y una URL Local de Vite, normalmente puerto 5173. Abre la URL de Vite. No abras el puerto 3001 como la página de la aplicación. El navegador envía solicitudes /api a Vite, y Vite las proxifica a Express. La clave de API permanece en el proceso del servidor.

Detén ambos procesos con Ctrl+C.

Mantén el backend en el puerto 3001

El servidor Express descargado lee PORT, pero su proxy de Vite apunta directamente a http://localhost:3001. Deja PORT=3001 a menos que otro proceso necesite ese puerto. Si lo cambias, también cambia el destino del proxy en vite.config.js al mismo puerto y reinicia el proyecto.

JunoEjecuta Gift Genie con su backend Mantén PORT=3001, ejecuta npm install y npm start, luego abre la URL de Vite, no el puerto 3001. Un Ctrl+C detiene ambas partes de la aplicación.
JunoEjecuta Gift Genie con su backend Un comando inicia Express en el puerto 3001 y Vite en su puerto frontend impreso. Abre la URL de Vite: reenvía solicitudes relativas /api a Express, que es cómo la clave permanece en el servidor.
JunoEjecuta Gift Genie con su backend El script start usa el paquete concurrently para ejecutar Node y Vite como un comando. La bandera --env-file=.env agregada carga credenciales solo en el proceso de Express, mientras que la configuración de Vite posee el destino del proxy de desarrollo fijo.

Solución de problemas

Missing AI_KEY, una respuesta 401, o un error de autenticación: Verifica la ortografía de los tres nombres de variable, confirma que la clave está activa, y reinicia el proyecto. Una clave, URL y modelo de diferentes proveedores no funcionarán como un conjunto.

El modelo no se puede encontrar o el proveedor rechaza la solicitud: Copia el ID del modelo exactamente. Algunas características del curso, incluyendo herramientas de API de Respuestas, los ayudantes incorporados que un modelo puede llamar durante una solicitud, no son soportados por todos los proveedores compatibles con OpenAI, o por todos los modelos que ofrecen esos proveedores.

npm start dice que un paquete o comando falta: Asegúrate de que la terminal esté en la carpeta que contiene package.json, luego ejecuta npm install de nuevo. Si la descarga contiene un lockfile para un gestor de paquetes diferente, sigue ese lockfile en lugar de generar uno segundo.

La página se abre, pero una solicitud /api falla: Esto aplica a la versión del backend. Verifica que Express y Vite sigan ejecutándose en la misma terminal. Confirma que Express está en el puerto 3001 y el destino del proxy en vite.config.js también dice 3001.

EADDRINUSE menciona el puerto 3001: Otro proceso está usando el puerto del backend. Detén ese proceso, o cambia tanto PORT en .env como el destino del proxy de Vite al mismo puerto no utilizado.

Vite usa 5174 u otro puerto de frontend: Eso es normal cuando 5173 está ocupado. Abre la URL Local que Vite imprimió. No necesitas cambiar el puerto de Express.

JunoSolución de problemas Verifica que tu terminal esté en la carpeta con package.json, que .env tenga los tres valores de IA, y que hayas reiniciado después de editarlo. Para la versión del backend, mantén ambos procesos ejecutándose.
JunoSolución de problemas Separa las fallas de entorno de las fallas de proceso. Un 401 apunta a la configuración del proveedor; una solicitud /api fallida generalmente significa que Express se detuvo o el puerto del proxy no coincide. Nombra la categoría primero y el error específico se vuelve más fácil de leer.
JunoSolución de problemas Lee el package.json descargado antes de cambiar cualquier comando. El script start dice si Vite se ejecuta solo o junto a Express, y el lockfile dice que esta descarga espera npm.