Un chatbot inteligente desarrollado en Python que responde preguntas básicas sobre clima, chistes, y más utilizando APIs externas y procesamiento de lenguaje natural con NLTK.
💡 Proyecto desarrollado para demostrar habilidades en IA, integración de APIs y arquitectura de software
Este chatbot demuestra competencias técnicas clave que los reclutadores valoran:
- Inteligencia Artificial y procesamiento de lenguaje natural
- Integración de APIs externas en tiempo real
- Arquitectura de software modular y escalable
- Testing y documentación profesional
- DevOps con Docker y CI/CD
- Consulta del clima: Obtiene información meteorológica en tiempo real usando OpenWeatherMap API
- Generador de chistes: Proporciona chistes aleatorios para alegrar el día
- Procesamiento de lenguaje natural: Utiliza NLTK para entender mejor las consultas del usuario
- Conversación natural: Interfaz de chat amigable con respuestas contextuales
- Extensible: Arquitectura modular para agregar nuevas funcionalidades fácilmente
- Python 3.13+
- requests: Para realizar llamadas a APIs externas
- NLTK: Procesamiento de lenguaje natural
- python-dotenv: Gestión de variables de entorno
- OpenWeatherMap API: Datos meteorológicos
- JokeAPI: Chistes aleatorios
- Python 3.8 o superior
- Clave API de OpenWeatherMap (gratuita en openweathermap.org)
- Clona este repositorio:
git clone https://github.com/leiderdario/Chatbot-Simple.git
cd Chatbot-Simple- Instala las dependencias:
pip install -r requirements.txt- Descarga los recursos de NLTK necesarios:
python setup_nltk.py- Configura las variables de entorno:
cp .env.example .envEdita el archivo .env y agrega tu API key de OpenWeatherMap.
Ejecuta el chatbot:
python main.pyUsuario: ¿Cómo está el clima en Madrid?
Bot: 🌤️ El clima en Madrid: Parcialmente nublado, 18°C. Sensación térmica de 16°C.
Usuario: Cuéntame un chiste
Bot: 😄 ¿Por qué los programadores prefieren el modo oscuro? Porque la luz atrae bugs!
Usuario: Hola
Bot: ¡Hola! 👋 Soy tu asistente virtual. Puedo ayudarte con el clima o contarte chistes. ¿En qué puedo ayudarte?
chatbot-simple/
├── main.py # Archivo principal del chatbot
├── src/
│ ├── __init__.py
│ ├── chatbot.py # Lógica principal del chatbot
│ ├── weather_api.py # Integración con OpenWeatherMap
│ ├── jokes_api.py # Integración con JokeAPI
│ └── nlp_processor.py # Procesamiento de lenguaje natural
├── tests/
│ ├── __init__.py
│ ├── test_chatbot.py
│ ├── test_weather.py
│ └── test_jokes.py
├── requirements.txt # Dependencias del proyecto
├── setup_nltk.py # Script para configurar NLTK
├── .env.example # Ejemplo de variables de entorno
├── .gitignore # Archivos a ignorar por Git
└── README.md # Este archivo
Ejecuta las pruebas unitarias:
python -m pytest tests/ -vOPENWEATHER_API_KEY: Tu clave API de OpenWeatherMapDEFAULT_CITY: Ciudad por defecto para consultas de clima (opcional)
Puedes modificar las respuestas del bot editando los archivos en src/. El sistema es modular y fácil de extender.
Las contribuciones son bienvenidas. Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -am 'Agrega nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
- Integración con más APIs (noticias, definiciones, etc.)
- Interfaz web con Flask/FastAPI
- Base de datos para recordar conversaciones
- Machine Learning para respuestas más inteligentes
- Deploy en la nube (Heroku, AWS, etc.)
Leider Dario - Desarrollador apasionado por la IA y el desarrollo de software
- 🔗 GitHub
- 📧 Email: leiderdario@gmail.com
⭐ Si te gusta este proyecto, ¡no olvides darle una estrella! ⭐
Este proyecto fue desarrollado como una demostración de habilidades técnicas en:
- 🐍 Python avanzado con programación orientada a objetos
- 🧠 Procesamiento de lenguaje natural (NLP) con NLTK
- 🌐 Integración de APIs REST (OpenWeatherMap, JokeAPI)
- 🏗️ Arquitectura de software modular y mantenible
- 🧪 Testing automatizado y TDD
- 📚 Documentación técnica profesional
- 🐳 Containerización con Docker
- ⚙️ CI/CD con GitHub Actions