CodeHelperNET - Chatbot Especializado en C# y .NET
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
- 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
📦 Instalación y Configuración
- Python 3.8+
- Node.js 18+
- npm o yarn
git clone <tu-repositorio>
cd CodeHelperNET
2. Configurar el Backend (Python)
En Linux/macOS:
python3 -m venv codehelper_env
source codehelper_env/bin/activate
En Windows:
python -m venv codehelper_env
codehelper_env\Scripts\activate
pip install -r requirements.txt
Generar la base de datos vectorial
python improved_vector_db.py
Iniciar el servidor backend
El backend estará disponible en: http://localhost:5000
3. Configurar el Frontend (Next.js)
Configurar variables de entorno
Crear archivo .env.local en la carpeta frontend/:
PYTHON_BACKEND_URL=http://localhost:5000
NEXT_PUBLIC_API_URL=/api
Iniciar el servidor frontend
El frontend estará disponible en: http://localhost:3000
Opción 1: Script de inicio automático
En Linux/macOS:
chmod +x start_chatbot.sh
./start_chatbot.sh
En Windows:
-
Terminal 1 - Backend:
# Linux/macOS
source codehelper_env/bin/activate
python api_server.py
# Windows
codehelper_env\Scripts\activate
python api_server.py
-
Terminal 2 - Frontend:
-
Abrir navegador: http://localhost:3000
- 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?"
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
Variables de Entorno del Backend
En Linux/macOS:
export FLASK_ENV=development # Modo desarrollo
export PORT=5000 # Puerto del servidor
En Windows:
set FLASK_ENV=development
set PORT=5000
Variables de Entorno del Frontend
PYTHON_BACKEND_URL=http://localhost:5000 # URL del backend
NEXT_PUBLIC_API_URL=/api # URL de la API del frontend
Personalización del Chatbot
Puedes modificar:
- rag_chatbot.py - Lógica del chatbot
- improved_vector_db.py - Generación de embeddings
- frontend/src/components/ChatInterface.tsx - Interfaz del chat
Despliegue en Vercel (Frontend)
- Conecta tu repositorio con Vercel
- Configura las variables de entorno en Vercel
- El despliegue será automático en cada push
El backend puede desplegarse en:
- Render - Servicio gratuito para Python
- Railway - Despliegue fácil
- Heroku - Plataforma tradicional
- AWS/GCP/Azure - Servicios en la nube
Error: "Chatbot no inicializado"
- Verifica que el backend esté ejecutándose
- Revisa los logs del servidor Flask
Error: "No se pudo conectar con el servidor"
- Confirma que la URL del backend sea correcta
- Verifica que no haya problemas de CORS
Error: "Base de datos vectorial no encontrada"
- Ejecuta python improved_vector_db.py para regenerar la base
Error: "Dependencias faltantes"
- Ejecuta pip install -r requirements.txt
- Verifica que el entorno virtual esté activado
Problemas específicos de Windows
- Error de permisos: Ejecuta PowerShell como administrador
- Error de encoding: Usa chcp 65001 para UTF-8
- Error de path: Usa rutas con backslashes \ en lugar de /
Problemas específicos de Linux
- Error de permisos: Usa sudo si es necesario
- Error de dependencias: Instala python3-dev y build-essential
- Error de encoding: Configura export LANG=en_US.UTF-8
- 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