Una aplicación web tipo chat que se conecta con la API de OpenAI para generar respuestas de inteligencia artificial a las preguntas del usuario.
Este proyecto es una aplicación web interactiva que permite a los usuarios mantener una conversación con un modelo de IA de OpenAI. La aplicación está construida con JavaScript y demuestra la implementación de conceptos fundamentales como objetos, closures, callbacks, promesas, async/await, y clases.
/js-challenge-week-two
├── assets/
│ ├── css/style.css # Estilos de la aplicación
│ └── js/main.js # Lógica principal del chat
├── index.html # Estructura HTML de la aplicación
├── GUIA-PASO-A-PASO.md # Guía detallada del desarrollo
├── README-CONVENCIONES.md # Convenciones de código
└── README.md # Este archivo
La aplicación implementa los siguientes conceptos de JavaScript:
- Utiliza la clase
ChatMessagepara modelar los mensajes con propiedadesautor,contenidoytimestamp - Mantiene un historial de conversaciones como un array de objetos mensaje
- Implementa closures para contar las preguntas del usuario
- Demuestra el concepto de hoisting con funciones declaradas
- Utiliza callbacks para manejar respuestas asíncronas
- Consume la API de OpenAI utilizando
async/awaityfetch - Implementa manejo de errores con bloques
try/catch - Simula carga de mensajes antiguos con promesas
- Utiliza
setTimeoutpara crear efectos de "typing" de la IA
- HTML5
- CSS3
- JavaScript (ES6+)
- API de OpenAI
- Node.js
- Express
- dotenv
- node-fetch
- Interfaz de chat con diseño responsive
- Modelado de mensajes como objetos JS
- Historial de conversaciones persistente durante la sesión
- Renderizado dinámico de mensajes en el DOM
- Contador de preguntas utilizando closures
- Callbacks para procesar respuestas de la API
- Consumo de API con async/await y manejo de errores
- Simulación de carga de mensajes antiguos
- Efecto de escritura para simular que la IA está escribiendo
- Manejo de estados de carga y errores en la interfaz
- Modularización del código en funciones separadas
- Diseño visual moderno y amigable
-
Clona este repositorio:
git clone https://github.com/Riwi-io-Medellin/js-api-openAI-conection cd js-challenge-week-two -
Instala las dependencias necesarias:
npm install
-
Configura el backend:
- Crea un archivo
.enven la raíz del proyecto - Añade tu API Key de OpenAI:
OPENAI_API_KEY=tu_api_key_aqui
- Crea un archivo
-
Inicia el servidor backend:
# Si tienes configurado el script en package.json npm start # O directamente con Node.js node server.js
El servidor debería estar ejecutándose en http://localhost:3001
-
Abre
index.htmlen tu navegador:- Puedes abrir directamente el archivo HTML en tu navegador
- O usar un servidor local como Live Server en VSCode
-
Interactúa con la aplicación:
- Escribe tu mensaje en el campo de texto
- Presiona Enter o haz clic en el botón de enviar
- Espera la respuesta de la IA
Para usar esta aplicación, necesitas configurar un backend que maneje las peticiones a la API de OpenAI. El frontend está configurado para hacer peticiones a http://localhost:3001/api/chat.
Nota importante: Por razones de seguridad, nunca debes incluir tu API Key de OpenAI directamente en el código frontend.
- Guía paso a paso - Explicación detallada del desarrollo
- Convenciones de código - Buenas prácticas de nombramiento y estructura
- Documentación API de OpenAI
- Documentación de Fetch API
Este proyecto está bajo la licencia MIT.