Un chatbot inteligente especializado en C# y .NET, desarrollado con tecnologías de Deep Learning y RAG (Retrieval-Augmented Generation). El proyecto incluye un backend en Python con embeddings y un frontend moderno en Next.js.
- Chatbot especializado en C# y .NET con 76 documentos de conocimiento
- RAG (Retrieval-Augmented Generation) para respuestas precisas y contextuales
- Frontend moderno con interfaz tipo ChatGPT y tema oscuro
- Backend robusto con embeddings y cross-encoder para mejor calidad
- API REST para integración fácil
- Base de conocimientos con 3,073 chunks de información especializada
- Multiplataforma - Compatible con Windows, Linux y macOS
- Despliegue fácil - Configurado para Vercel, Railway, Render y más
- Estructura limpia - Organización modular y profesional
CodeHelperNET/
├── backend/ # Backend Python
│ ├── api_server.py # Servidor de desarrollo
│ ├── api_server_production.py # Servidor para producción
│ ├── rag_chatbot.py # Lógica principal del chatbot
│ ├── improved_vector_db.py # Generador de base vectorial
│ ├── requirements.txt # Dependencias de desarrollo
│ ├── requirements_production.txt # Dependencias de producción
│ ├── Procfile # Configuración para Railway/Heroku
│ ├── runtime.txt # Versión de Python
│ ├── data/ # Documentos de conocimiento (76 archivos)
│ └── vector_db/ # Base de datos vectorial (3,073 chunks)
├── frontend/ # Frontend Next.js
│ ├── package.json
│ ├── next.config.js
│ ├── src/
│ │ ├── app/ # App Router de Next.js
│ │ ├── components/ # Componentes React
│ │ └── services/ # Servicios de API
│ └── public/ # Archivos estáticos
├── scripts/ # Scripts de inicio y despliegue
│ ├── start_chatbot.sh # Inicio en Linux/macOS
│ ├── start_chatbot.bat # Inicio en Windows
│ └── deploy.sh # Preparación para despliegue
├── docs/ # Documentación
│ ├── DEPLOYMENT_GUIDE.md # Guía completa de despliegue
│ └── Proyecto Final IF7103 2025 Sis.Expertos.pdf
├── codehelper_env/ # Entorno virtual Python
├── vercel.json # Configuración para Vercel
└── README.md # Este archivo
- Sentence Transformers - Embeddings para recuperación semántica
- ChromaDB - Base de datos vectorial
- Flask - API REST
- Transformers - Modelos de lenguaje
- LangChain - Framework para RAG
- Next.js 14 - Framework de React
- TypeScript - Tipado estático
- Tailwind CSS - Framework de CSS
- Lucide React - Iconos
- Python 3.8+
- Node.js 18+
- npm o yarn
git clone <tu-repositorio>
cd CodeHelperNETEn Linux/macOS:
python3 -m venv codehelper_env
source codehelper_env/bin/activateEn Windows:
python -m venv codehelper_env
codehelper_env\Scripts\activatepip install -r backend/requirements.txtcd backend
python improved_vector_db.py
cd ..cd backend
python api_server.pyEl backend estará disponible en: http://localhost:5000
cd frontend
npm installCrear archivo .env.local en la carpeta frontend/:
PYTHON_BACKEND_URL=http://localhost:5000
NEXT_PUBLIC_API_URL=/apinpm run devEl frontend estará disponible en: http://localhost:3000
En Linux/macOS:
chmod +x scripts/start_chatbot.sh
./scripts/start_chatbot.shEn Windows:
scripts\start_chatbot.bat-
Terminal 1 - Backend:
# Linux/macOS source codehelper_env/bin/activate cd backend python api_server.py # Windows codehelper_env\Scripts\activate cd backend python api_server.py
-
Terminal 2 - Frontend:
cd frontend npm run dev -
Abrir navegador: http://localhost:3000
# Preparar proyecto para despliegue
chmod +x scripts/deploy.sh
./scripts/deploy.sh- Frontend: Vercel (excelente para Next.js)
- Backend: Railway (bueno para Python)
- Ventajas: Escalabilidad automática, SSL, CDN global
-
Backend en Railway:
- Ve a railway.app
- Conecta tu repositorio de GitHub
- Railway detectará automáticamente la configuración
-
Frontend en Vercel:
- Ve a vercel.com
- Importa tu repositorio
- Configura
PYTHON_BACKEND_URLcon tu URL de Railway
-
Configurar URLs:
- Actualiza
vercel.jsoncon tu URL de Railway - Configura variables de entorno en Vercel
- Actualiza
- Render: Todo en un solo servicio
- Heroku: Plataforma tradicional
- AWS/GCP/Azure: Servicios en la nube
- 📚 Guía detallada: docs/DEPLOYMENT_GUIDE.md
- 📖 Configuración rápida: docs/DEPLOYMENT_README.md
- Abre http://localhost:3000 en tu navegador
- Escribe tu pregunta sobre C# o .NET
- El chatbot responderá con información especializada
- "¿Qué es async/await en C#?"
- "¿Cómo crear una API REST con ASP.NET Core?"
- "¿Qué son los patrones de diseño más comunes?"
- "¿Cómo implementar Entity Framework Core?"
- "¿Cuáles son las mejores prácticas de seguridad en .NET?"
- "dame un ejemplo de código de .NET"
- "muéstrame un ejemplo de LINQ"
También puedes usar el chatbot programáticamente:
En Linux/macOS:
curl -X POST http://localhost:5000/chat \
-H "Content-Type: application/json" \
-d '{"message": "¿Qué es LINQ en C#?"}'En Windows (PowerShell):
Invoke-RestMethod -Uri "http://localhost:5000/chat" -Method POST -ContentType "application/json" -Body '{"message": "¿Qué es LINQ en C#?"}'El chatbot tiene acceso a información sobre:
- C# Fundamentals - Conceptos básicos y avanzados
- ASP.NET Core - Desarrollo web moderno
- Entity Framework - ORM y acceso a datos
- Design Patterns - Patrones de diseño
- Testing - Pruebas unitarias e integración
- Security - Mejores prácticas de seguridad
- Performance - Optimización y rendimiento
- Cloud Development - Azure, AWS, GCP
- Microservices - Arquitectura de microservicios
- DevOps - CI/CD y automatización
En Linux/macOS:
export FLASK_ENV=development # Modo desarrollo
export PORT=5000 # Puerto del servidorEn Windows:
set FLASK_ENV=development
set PORT=5000PYTHON_BACKEND_URL=http://localhost:5000 # URL del backend
NEXT_PUBLIC_API_URL=/api # URL de la API del frontendPuedes modificar:
backend/rag_chatbot.py- Lógica del chatbotbackend/improved_vector_db.py- Generación de embeddingsfrontend/src/components/ChatInterface.tsx- Interfaz del chat
- Verifica que el backend esté ejecutándose
- Revisa los logs del servidor Flask
- Confirma que la URL del backend sea correcta
- Verifica que no haya problemas de CORS
- Ejecuta
cd backend && python improved_vector_db.pypara regenerar la base
- Ejecuta
pip install -r backend/requirements.txt - Verifica que el entorno virtual esté activado
- Error de permisos: Ejecuta PowerShell como administrador
- Error de encoding: Usa
chcp 65001para UTF-8 - Error de path: Usa rutas con backslashes
\en lugar de/
- Error de permisos: Usa
sudosi es necesario - Error de dependencias: Instala
python3-devybuild-essential - Error de encoding: Configura
export LANG=en_US.UTF-8
- Error de memoria: Los modelos de ML requieren RAM suficiente
- Timeout: La primera carga puede tardar, implementa health checks
- CORS: Verifica que
flask-corsesté configurado correctamente
- Tiempo de respuesta: ~1-3 segundos por pregunta
- Precisión: Alta gracias al RAG y cross-encoder
- Base de datos: 3,073 chunks de información
- Documentos: 76 archivos de conocimiento especializado
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
Desarrollado como proyecto universitario para el curso IF7103 Sistemas Expertos.
- Sentence Transformers por los modelos de embeddings
- ChromaDB por la base de datos vectorial
- Next.js por el framework frontend
- La comunidad de C# y .NET por el conocimiento compartido