355 lines
8.2 KiB
Markdown
355 lines
8.2 KiB
Markdown
# Hybrid MeetMe Bot Setup Guide
|
|
|
|
## Overview
|
|
This guide sets up a complete hybrid solution combining:
|
|
- **Node.js Backend**: [MeetMe API](https://github.com/Andyss4545/meetme-backend-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
|
|
```powershell
|
|
# 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
|
|
```bash
|
|
# 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:
|
|
```env
|
|
# 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
|
|
```bash
|
|
# Development mode with auto-reload
|
|
npm run dev
|
|
|
|
# Or production mode
|
|
npm start
|
|
```
|
|
|
|
#### 1.4 Verify Backend
|
|
```bash
|
|
# 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
|
|
```powershell
|
|
# 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:**
|
|
```env
|
|
USE_LOCAL_API=true
|
|
API_BASE_URL=http://localhost:3000/api/v1
|
|
API_USERNAME=testuser
|
|
API_PASSWORD=password123
|
|
```
|
|
|
|
**For Production:**
|
|
```env
|
|
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
|
|
```bash
|
|
# Pull the AI model
|
|
ollama pull quen3
|
|
|
|
# Start Ollama service
|
|
ollama serve quen3
|
|
```
|
|
|
|
### Phase 3: Testing and Validation
|
|
|
|
#### 3.1 Test Local API
|
|
```bash
|
|
# Test backend endpoints
|
|
curl http://localhost:3000/api/v1/users
|
|
curl http://localhost:3000/api/v1/conversations
|
|
```
|
|
|
|
#### 3.2 Test Python Bots
|
|
```powershell
|
|
# Test ice breaker bot
|
|
python enhanced_icebreaker_bot.py
|
|
|
|
# Test responder bot
|
|
python enhanced_responder_bot.py
|
|
```
|
|
|
|
#### 3.3 Monitor Logs
|
|
```bash
|
|
# 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:
|
|
|
|
```javascript
|
|
// In routes/bot.js
|
|
router.get('/bot/stats', botController.getBotStats);
|
|
router.post('/bot/message', botController.sendBotMessage);
|
|
router.get('/bot/conversations', botController.getBotConversations);
|
|
```
|
|
|
|
### Enhanced Security
|
|
```env
|
|
# 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
|
|
```javascript
|
|
// 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
|
|
```bash
|
|
# 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
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# Analyze bot activity
|
|
grep "ERROR" bot_activity.log
|
|
grep "Successfully sent" bot_activity.log | wc -l
|
|
```
|
|
|
|
## 🔒 Security Best Practices
|
|
|
|
### Environment Security
|
|
- Never commit `.env` files
|
|
- 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:**
|
|
```bash
|
|
# 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:**
|
|
```bash
|
|
# 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:**
|
|
```bash
|
|
# 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
|
|
|
|
1. **Customize Bot Personality**: Modify prompts and responses
|
|
2. **Add Analytics**: Implement detailed tracking
|
|
3. **Scale Infrastructure**: Add load balancing and clustering
|
|
4. **Enhance AI**: Integrate multiple AI models
|
|
5. **Add Features**: Implement advanced conversation management
|
|
|
|
## 📞 Support
|
|
|
|
For issues and questions:
|
|
- Check the [Node.js API repository](https://github.com/Andyss4545/meetme-backend-api)
|
|
- Review bot logs for error details
|
|
- Test individual components separately
|
|
- Verify all environment variables are set correctly |