Files
meetme-bot-workspace/HYBRID_SETUP_GUIDE.md

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 .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:

# 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

  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
  • Review bot logs for error details
  • Test individual components separately
  • Verify all environment variables are set correctly