π Building an AI Automation System for MyZubster
π Building an AI Automation System for MyZubster MyZubster is an open-source ecosystem for plant mapping, privacy-first payments with Monero, and human-centered AI. In this post, I'll share how I built an AI automation system that automatically handles GitHub issues, bounties, and Telegram notifica

tions. Managing an open-source project like MyZubster is complex: Too many issues requiring manual triage Bounties need to be created and managed manually Slow communication with contributors Manual monitoring of GitHub activity π― The Solution I built a modular system that: Monitors GitHub - Automatically detects new issues and PRs Analyzes with AI - Uses local models (Gemma, Llama, DeepSeek) Creates bounties - Automatically for labeled issues Sends notifications - Real-time alerts on Telegram Orchestrates everything - With automatic fallback between AI models ποΈ Architecture βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ π οΈ Technology Stack Node.js - Runtime environment Express - API server MongoDB - Database with Mongoose ODM React - Frontend with Leaflet maps AI Stack Ollama - Local AI model runner Gemma 2B - Google's lightweight AI model (default) Llama 3.2 - Meta's powerful model (fallback) DeepSeek R1 - Reasoning model (fallback) Automation Stack node-telegram-bot-api - Telegram integration Octokit - GitHub API client node-cron - Scheduled tasks systemd - Service management Winston - Logging π§ AI Models Setup The AI models run locally using Ollama. Here's how I set them up: curl -fsSL https://ollama.com/install.sh | sh Pulling the Models ollama pull gemma:2b Testing the Models ollama run gemma:2b "What is MyZubster?" π€ The Telegram Bot The bot provides interactive commands for the community: class TelegramBotHandler { // Register command handlers this.bot.onText(/^\/start/, this.handleStart.bind(this)); this.bot.onText(/^\/status/, this.handleStatus.bind(this)); this.bot.onText(/^\/bounties/, this.handleBounties.bind(this)); this.bot.onText(/^\/github/, this.handleGitHub.bind(this)); this.bot.onText(/^\/analyze/, this.handleAnalyze.bind(this)); this.running = true; this.logger.info('Telegram bot is ready'); } } π GitHub Monitor The GitHub Monitor watches repositories and emits events: const { Octokit } = require('@octokit/rest'); class GitHubMonitor extends EventEmitter { async start() { this.octokit = new Octokit({ auth: this.token, userAgent: 'MyZubster-AI-Automation' }); this.running = true; await this.checkNewIssues(); this.startPeriodicCheck(); } startPeriodicCheck() { setInterval(() => { this.checkNewIssues().catch(error => { this.logger.error('Periodic check failed:', error); }); }, 300000); // 5 minutes } } π§ AI Orchestrator The AI Orchestrator is the brain of the system. It uses multiple models with fallback strategies: class AIOrchestrator { http://localhost:11434/api', http://localhost:11434/api', async analyzeIssue(issue) { const prompt = ` Analyze this GitHub issue: Title: ${issue.title} Provide: Summary (1-2 sentences) Complexity (Low/Medium/High with reasoning) Priority (Low/Medium/High with reasoning) Technical Approach (Step by step) Estimated Effort (in hours) Dependencies Potential Risks Suggested Bounty Amount // Try models in order with fallback const models = [ { name: 'gemma', config: this.models.gemma, method: 'ollama' }, { name: 'llama', config: this.models.llama, method: 'ollama' }, { name: 'deepseek', config: this.models.deepseek, method: 'api' } ]; for (const model of models) { try { return await this.analyzeWithModel(model, prompt); } catch (error) { this.logger.warn(`${model.name} failed, trying next...`); } } return this.getDefaultAnalysis(issue); } } π§ Systemd Service Management For production deployment, I created a systemd service: [Unit] [Service] [Install] π Real Example Analysis Here's a real analysis from the system on a Monero payment issue: π AI Analysis Results: 1.
Summary: 2. Complexity: 3. Priority: 4. Technical Approach: 5.
Estimated Effort: 6. Suggested Bounty: π Results After deploying the system, I saw immediate benefits: services/ai-automation/ π‘ Key Lessons Learned Local AI is Powerful - Running models locally saves API costs and keeps data private Fallback Strategies Matter - Multiple models ensure reliability Event-Driven Architecture - Makes the system extensible and maintainable Mock Mode - Enables testing without external dependencies Systemd - Essential for production deployment π Links Repository: https://github.com/MyZubster-Ecosystem/myzubster Telegram Bot: @myzubster_bot Telegram Channel: @myzubster AI Service: services/ai-automation π Try It Yourself git clone https://github.com/MyZubster-Ecosystem/myzubster.git npm install cp .env.example .env npm start π― What's Next? I'm planning to add: Web Dashboard - Visual monitoring of all services Slack Integration - Alternative notification channel Auto-Reply - AI-powered responses to common issues Sentiment Analysis - Understanding contributor sentiment Multi-Repo Support - Monitor multiple repositories π Conclusion Building this AI-powered automation system has transformed how I manage MyZubster. What started as a simple idea grew into a complete ecosystem that handles complex tasks automatically.
The best part? It's all open source and you can use it for your own projects too! Built with β€οΈ by the MyZubster Team
Key Takeaways
- β’Managing an open-source project like MyZubster is complex: Too many issues requiring manual triage Bounties need to be created and managed manually Slow communication with contributors Manual monitoring of GitHub activity π― The Solution I built a modular system that: Monitors GitHub - Automatically detects new issues and PRs Analyzes with AI - Uses local models (Gemma, Llama, DeepSeek) Creates bounties - Automatically for labeled issues Sends notifications - Real-time alerts on Telegram Orchestrates everything - With automatic fallback between AI models ποΈ Architecture βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ π οΈ Technology Stack Node.js - Runtime environment Express - API server MongoDB - Database with Mongoose ODM React - Frontend with Leaflet maps AI Stack Ollama - Local AI model runner Gemma 2B - Google's lightweight AI model (default) Llama 3.2 - Meta's powerful model (fallback) DeepSeek R1 - Reasoning model (fallback) Automation Stack node-telegram-bot-api - Telegram integration Octokit - GitHub API client node-cron - Scheduled tasks systemd - Service management Winston - Logging π§ AI Models Setup The AI models run locally using Ollama.
- β’This story was reported by Dev.to, covering developments in the dev space.
- β’AI advancements continue to reshape industries β read the full article on Dev.to for complete coverage.
π Continue reading the full article:
Read Full Article on Dev.to βShare this article



