8.2 KiB
8.2 KiB
Hybrid MeetMe Bot Setup Guide
Overview
This guide sets up a complete hybrid solution combining:
- Node.js Backend: MeetMe API for robust API infrastructure
- Python Bots: Enhanced automation with AI integration
- Local Development: Full testing environment
- Production Ready: Scalable deployment options
🏗️ Architecture
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Python Bots │ │ Node.js API │ │ MongoDB DB │
│ │◄──►│ │◄──►│ │
│ • Ice Breaker │ │ • User Mgmt │ │ • User Data │
│ • Auto Responder│ │ • Messages │ │ • Messages │
│ • AI Integration│ │ • Conversations │ │ • Analytics │
└─────────────────┘ └─────────────────┘ └─────────────────┘
📋 Prerequisites
System Requirements
- Node.js 16+ with npm
- Python 3.8+ with pip
- MongoDB 4.4+ installed and running
- Git for cloning repositories
- Ollama for AI integration
Windows Setup
# Install Node.js (if not installed)
winget install OpenJS.NodeJS
# Install Python (if not installed)
winget install Python.Python.3.11
# Install MongoDB
winget install MongoDB.Server
# Install Ollama
winget install Ollama.Ollama
🚀 Step-by-Step Setup
Phase 1: Node.js Backend Setup
1.1 Clone and Configure Backend
# Clone the MeetMe backend repository
git clone https://github.com/Andyss4545/meetme-backend-api.git
cd meetme-backend-api
# Install dependencies
npm install
1.2 Configure Environment
Create .env file in the backend directory:
# Server Configuration
PORT=3000
NODE_ENV=development
# MongoDB Configuration
MONGODB_URI=mongodb://localhost:27017/meetme_dev
# JWT Configuration
JWT_SECRET=your_super_secret_jwt_key_here
JWT_EXPIRES_IN=7d
# API Configuration
API_BASE_URL=http://localhost:3000/api/v1
CORS_ORIGIN=http://localhost:3000
# Bot Configuration
BOT_RATE_LIMIT=100
BOT_TIMEOUT=30000
1.3 Start Backend Server
# Development mode with auto-reload
npm run dev
# Or production mode
npm start
1.4 Verify Backend
# Test health endpoint
curl http://localhost:3000/api/v1/health
# Create test user
curl -X POST http://localhost:3000/api/v1/users \
-H "Content-Type: application/json" \
-d '{
"username": "testuser",
"email": "test@example.com",
"password": "password123"
}'
Phase 2: Python Bot Setup
2.1 Setup Python Environment
# Create virtual environment
python -m venv venv
venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
2.2 Configure Bot Environment
Copy env_template_enhanced.txt to .env and configure:
For Local Development:
USE_LOCAL_API=true
API_BASE_URL=http://localhost:3000/api/v1
API_USERNAME=testuser
API_PASSWORD=password123
For Production:
USE_LOCAL_API=false
API_BASE_URL=https://api.meetme.com
MM_USERNAME=your_meetme_email
MM_PASSWORD=your_meetme_password
2.3 Setup Ollama
# Pull the AI model
ollama pull quen3
# Start Ollama service
ollama serve quen3
Phase 3: Testing and Validation
3.1 Test Local API
# Test backend endpoints
curl http://localhost:3000/api/v1/users
curl http://localhost:3000/api/v1/conversations
3.2 Test Python Bots
# Test ice breaker bot
python enhanced_icebreaker_bot.py
# Test responder bot
python enhanced_responder_bot.py
3.3 Monitor Logs
# Check bot activity
tail -f bot_activity.log
# Check backend logs
npm run dev
🔧 Advanced Configuration
Custom API Endpoints
Add custom endpoints to the Node.js backend for bot-specific features:
// In routes/bot.js
router.get('/bot/stats', botController.getBotStats);
router.post('/bot/message', botController.sendBotMessage);
router.get('/bot/conversations', botController.getBotConversations);
Enhanced Security
# Rate limiting
RATE_LIMIT_ENABLED=true
MAX_REQUESTS_PER_MINUTE=100
# Authentication
JWT_SECRET=your_very_secure_jwt_secret
JWT_EXPIRES_IN=7d
# Bot restrictions
MAX_MESSAGES_PER_SESSION=20
MESSAGE_DELAY=60
Database Optimization
// MongoDB indexes for better performance
db.users.createIndex({ "location": "2dsphere" });
db.messages.createIndex({ "conversation_id": 1, "timestamp": -1 });
db.conversations.createIndex({ "participants": 1 });
🚀 Production Deployment
Option 1: Cloud Deployment
# Deploy Node.js backend to Heroku
heroku create meetme-bot-backend
git push heroku main
# Deploy Python bots to Railway
railway login
railway init
railway up
Option 2: Docker Deployment
# Dockerfile for Node.js backend
FROM node:16-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
Option 3: Local Production
# Use PM2 for process management
npm install -g pm2
pm2 start server.js --name "meetme-backend"
pm2 start enhanced_icebreaker_bot.py --name "ice-breaker-bot"
pm2 start enhanced_responder_bot.py --name "responder-bot"
📊 Monitoring and Analytics
Bot Statistics
- Message count per conversation
- Response time metrics
- User engagement tracking
- AI response quality analysis
System Health
- API response times
- Database performance
- Memory usage
- Error rates
Log Analysis
# Analyze bot activity
grep "ERROR" bot_activity.log
grep "Successfully sent" bot_activity.log | wc -l
🔒 Security Best Practices
Environment Security
- Never commit
.envfiles - Use strong, unique passwords
- Rotate JWT secrets regularly
- Implement rate limiting
Bot Security
- Monitor bot behavior
- Set message limits
- Implement cooldown periods
- Log all activities
API Security
- Validate all inputs
- Sanitize user data
- Implement CORS properly
- Use HTTPS in production
🐛 Troubleshooting
Common Issues
Backend Connection Issues:
# Check MongoDB
mongo --eval "db.adminCommand('ping')"
# Check Node.js server
curl -v http://localhost:3000/api/v1/health
# Check logs
npm run dev
Bot Authentication Issues:
# Verify credentials
echo $API_USERNAME
echo $API_PASSWORD
# Test login manually
curl -X POST http://localhost:3000/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"testuser","password":"password123"}'
Ollama Integration Issues:
# Check Ollama service
curl http://10.30.20.110:11434/v1/models
# Test model response
curl -X POST http://10.30.20.110:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"quen3","messages":[{"role":"user","content":"Hello"}]}'
📈 Performance Optimization
Database Optimization
- Index frequently queried fields
- Use connection pooling
- Implement caching strategies
API Optimization
- Implement pagination
- Use compression
- Cache static responses
Bot Optimization
- Batch API requests
- Implement retry logic
- Use async processing
🎯 Next Steps
- Customize Bot Personality: Modify prompts and responses
- Add Analytics: Implement detailed tracking
- Scale Infrastructure: Add load balancing and clustering
- Enhance AI: Integrate multiple AI models
- Add Features: Implement advanced conversation management
📞 Support
For issues and questions:
- Check the Node.js API repository
- Review bot logs for error details
- Test individual components separately
- Verify all environment variables are set correctly