Skip to content

leiderdario/Chatbot-Simple

Repository files navigation

🤖 Chatbot Simple

Python License: MIT Tests Code Style: Black

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

🎯 ¿Por qué este proyecto?

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

🚀 Características

  • 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

🛠️ Tecnologías Utilizadas

  • 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

📋 Requisitos Previos

🚀 Instalación

  1. Clona este repositorio:
git clone https://github.com/leiderdario/Chatbot-Simple.git
cd Chatbot-Simple
  1. Instala las dependencias:
pip install -r requirements.txt
  1. Descarga los recursos de NLTK necesarios:
python setup_nltk.py
  1. Configura las variables de entorno:
cp .env.example .env

Edita el archivo .env y agrega tu API key de OpenWeatherMap.

🎮 Uso

Ejecuta el chatbot:

python main.py

Ejemplos de uso:

Usuario: ¿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?

📁 Estructura del Proyecto

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

🧪 Pruebas

Ejecuta las pruebas unitarias:

python -m pytest tests/ -v

🔧 Configuración Avanzada

Variables de Entorno

  • OPENWEATHER_API_KEY: Tu clave API de OpenWeatherMap
  • DEFAULT_CITY: Ciudad por defecto para consultas de clima (opcional)

Personalizando Respuestas

Puedes modificar las respuestas del bot editando los archivos en src/. El sistema es modular y fácil de extender.

🤝 Contribuciones

Las contribuciones son bienvenidas. Por favor:

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/nueva-funcionalidad)
  3. Commit tus cambios (git commit -am 'Agrega nueva funcionalidad')
  4. Push a la rama (git push origin feature/nueva-funcionalidad)
  5. Abre un Pull Request

📄 Licencia

Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.

🔮 Roadmap

  • 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.)

👨‍💻 Autor

Leider Dario - Desarrollador apasionado por la IA y el desarrollo de software


Si te gusta este proyecto, ¡no olvides darle una estrella!

🎖️ Reconocimientos

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

About

Chatbot para conversaciones. GPT-2

Resources

License

Contributing

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors