Skip to main content

๐Ÿค– AI-powered CLI for CI/CD log analysis with ML + LLM hybrid intelligence

Project description

๐Ÿค– AI-LogGuard

Python 3.9+ License: MIT

AI-powered Cross-platform CLI for CI/CD Log Analysis, Failure Prediction, and Auto-fix Suggestion

AI-LogGuard is an intelligent command-line tool that analyzes CI/CD build logs using ChatGPT and Machine Learning models to classify errors and provide fix suggestions.

๐ŸŒŸ Features

โœ… Core Features

  • ๐Ÿค– ChatGPT Integration: AI-powered log analysis and fix suggestions
  • ๐ŸŽฏ Intelligent Error Classification: 9 error categories with ML models
  • ๐Ÿ“Š Model Comparison: RandomForest, XGBoost, LSTM, GRU, DistilBERT
  • ๐Ÿ”ง Auto Fix Suggestions: Specific code fixes from ChatGPT
  • ๐Ÿ” Multi-platform Support: Jenkins, GitHub Actions, GitLab CI

๐Ÿ“Š Error Categories

Category Description
dependency_error Package/module resolution issues
syntax_error Code syntax errors
test_failure Unit/integration test failures
timeout Operation exceeded time limits
permission_error Access denied, auth failures
network_error Connection issues, DNS failures
environment_error Missing env vars, PATH issues
build_error Compilation/linking errors
resource_error Memory, disk space issues

๐Ÿš€ Quick Start

Installation

# Clone repository
git clone https://github.com/SyLe-Van/AI-LogGuard.git
cd ai-logguard

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# Install
pip install -e .

# Set up OpenAI API key
export OPENAI_API_KEY='your-api-key'

CLI Usage

# View all commands
ailog --help

# Analyze a log file with ChatGPT
ailog ask build.log

# Get fix suggestions
ailog fix failed_build.log

# View model comparison
ailog models

# Run interactive demo
ailog demo

Example Commands

1. Analyze Log File

ailog analyze build_log.txt --llm

Example Output:

๐Ÿ” Analyzing log file: build_log.txt

======================================================================
๐Ÿค– AI ANALYSIS RESULT
======================================================================
**Error Type**: dependency_error

**Summary**: NPM failed to resolve peer dependency conflict between
React 18.2.0 and react-scripts 4.0.3 which requires React 17.

**Root Cause**: Version mismatch in package dependencies

**Fix Suggestions**:
1. Update react-scripts: npm install react-scripts@5
2. Or use --legacy-peer-deps flag
3. Check package.json for conflicts

**Severity**: Medium
======================================================================

2. Get Fix Suggestions

ailog fix error.log

3. View Model Performance

ailog models

Output:

๐Ÿ“Š AI-LogGuard Model Comparison

โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Model        โ”ƒ Type          โ”ƒ Accuracy โ”ƒ F1-Score โ”ƒ Train Time โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ RandomForest โ”‚ Classical ML  โ”‚   0.8234 โ”‚   0.8187 โ”‚      45.2s โ”‚
โ”‚ XGBoost      โ”‚ Classical ML  โ”‚   0.8456 โ”‚   0.8412 โ”‚      67.8s โ”‚
โ”‚ LSTM         โ”‚ Deep Learning โ”‚   0.8678 โ”‚   0.8634 โ”‚     234.5s โ”‚
โ”‚ GRU          โ”‚ Deep Learning โ”‚   0.8589 โ”‚   0.8545 โ”‚     198.3s โ”‚
โ”‚ DistilBERT   โ”‚ Transformer   โ”‚   0.9123 โ”‚   0.9095 โ”‚    1245.6s โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ† Best Model: DistilBERT (F1: 0.9095)

4. Fetch from Jenkins

ailog fetch -p jenkins -u http://jenkins:8080 -j my-job -t $JENKINS_TOKEN

๐Ÿ— Architecture

Classification System

Log Input
    โ†“
Pattern Matching Engine
    โ”œโ”€ 60+ keyword patterns per category
    โ”œโ”€ Context detection (npm, jest, docker, etc.)
    โ””โ”€ Score calculation with weights
    โ†“
Confidence Analysis
    โ”œโ”€ Score distribution
    โ””โ”€ Gap between top 2 categories
    โ†“
Output: (category, confidence)

Why Rule-Based vs ML?

We tested both approaches extensively:

Approach Test Accuracy Real-world Accuracy Cost Speed
ML (85K dataset) 99.90% 0% โŒ $0 ~50ms
Rule-based N/A 100% โœ… $0 <5ms

Key Insight: ML models trained on synthetic logs suffer from severe overfitting. Rule-based patterns generalize better for CI/CD error classification.

Project Structure

ai-logguard/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main.py              # CLI entry point
โ”‚   โ”œโ”€โ”€ parse.py             # Basic log parsing
โ”‚   โ”œโ”€โ”€ ml/
โ”‚   โ”‚   โ””โ”€โ”€ classifier.py    # Rule-based classifier
โ”‚   โ””โ”€โ”€ fetchers/
โ”‚       โ”œโ”€โ”€ jenkins_fetcher.py
โ”‚       โ””โ”€โ”€ gitlab_fetcher.py
โ”œโ”€โ”€ scripts/
โ”‚   โ”œโ”€โ”€ test_rule_based.py   # Classifier validation
โ”‚   โ”œโ”€โ”€ collect_github_automated.py  # Real log collection
โ”‚   โ””โ”€โ”€ train_*.py           # ML experiments (archived)
โ”œโ”€โ”€ data/
โ”‚   โ”œโ”€โ”€ final_dataset/       # 85K logs (research)
โ”‚   โ””โ”€โ”€ real_logs_massive/   # 1K+ real GitHub Actions logs
โ”œโ”€โ”€ tests/
โ”‚   โ””โ”€โ”€ sample_logs.txt
โ””โ”€โ”€ requirements.txt

๐Ÿ”ฌ Research & Development

Dataset Collection (Research Phase)

We collected and tested with:

  • 1,081 real GitHub Actions logs (15 language/topic combinations)
  • 16,008 LogHub system logs (12 datasets: HDFS, Spark, etc.)
  • 82,904 synthetic logs (generated from real templates)
  • Total: 85,509 samples, 1.0GB

ML Experiments Summary

Stage Dataset Test Acc Real Acc Finding
Baseline 300 synthetic 97.78% N/A Too small
Scale-up 10K synthetic 96.80% 40% Overfitting
Massive 100K synthetic 99.78% 60% Better but not enough
Final 85K (1K real + 16K LogHub + 83K synth) 99.90% 0% Complete failure

Root Cause: 97% synthetic data dominated training. Model memorized patterns instead of learning generalizable features.

Pivot Decision: Switched to rule-based approach โ†’ 100% real-world accuracy

๐Ÿ›  Development

Run tests

pytest

Run with coverage

pytest --cov=src --cov-report=html

Code formatting

black src/ tests/
isort src/ tests/

Type checking

mypy src/

๐Ÿ“Š Example Output

๐Ÿ” Analyzing log file: tests/sample_logs.txt

โœ… Log file loaded
โœ… Log parsed successfully

โ•ญโ”€ ๐Ÿ”ง JENKINS - test-job โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Build: N/A                                                         โ”‚
โ”‚ Status: โš ๏ธ UNSTABLE                                               โ”‚
โ”‚ Triggered by: Sy Le                                                โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

                           ๐Ÿ“Š Statistics
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Metric        โ”ƒ Count โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ Total Lines   โ”‚   121 โ”‚
โ”‚ Stages/Steps  โ”‚     1 โ”‚
โ”‚ Errors        โ”‚     5 โ”‚
โ”‚ Warnings      โ”‚     7 โ”‚
โ”‚ Retries       โ”‚     4 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐ŸŽฏ Stages/Steps
โ””โ”€โ”€ โœ… Simulate Build Logs - SUCCESS (5 errors, 7 warnings, 4 retries)

โŒ Errors (showing 5 of 5)
โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Line โ”ƒ Level   โ”ƒ Message                                         โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ 23   โ”‚ ERROR   โ”‚ [ERROR] Failed to fetch dependency: lib-xyz     โ”‚
โ”‚ 39   โ”‚ ERROR   โ”‚ [ERROR] Compilation failed in module: invoice   โ”‚
โ”‚ 53   โ”‚ ERROR   โ”‚ [ERROR] Unit test failed: test_order_checkout   โ”‚
โ”‚ 63   โ”‚ ERROR   โ”‚ [ERROR] DB connection timeout on first try      โ”‚
โ”‚ 85   โ”‚ ERROR   โ”‚ [ERROR] Deployment failed due to timeout        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐ŸŽฏ Roadmap

  • Phase 1: Foundation & Basic Parsing (Week 1-2) โœ…
    • CLI structure with Typer
    • Jenkins & GitHub Actions parsers
    • Unified log schema
    • Rich terminal output
  • Phase 2: LLM Integration (Week 3-4)
    • OpenAI API integration
    • Prompt engineering
    • Summarization & explanation
    • Fix suggestions
  • Phase 3: ML Model Training (Week 5-6)
    • Dataset collection
    • Feature engineering
    • Model training (Random Forest, Logistic Regression)
    • Hybrid ML + LLM pipeline
  • Phase 4: Feedback Loop (Week 7-8)
    • User feedback collection
    • Analytics dashboard
    • Automated retraining
  • Phase 5: Production Ready (Week 9-10)
    • Performance optimization
    • Packaging (PyPI, Docker)
    • Complete documentation

๐Ÿค Contributing

Contributions are welcome! This is a thesis project, but suggestions and feedback are appreciated.

๐Ÿ“„ License

MIT License - see LICENSE file for details

๐Ÿ‘ค Author

Sy Le Van

  • GitHub: @SyLe-Van
  • Thesis: AI-powered Cross-platform CLI for CI/CD Log Analysis

Note: This is an active thesis project. Features are being developed according to the roadmap.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ai_logguard-1.0.0.tar.gz (58.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ai_logguard-1.0.0-py3-none-any.whl (65.8 kB view details)

Uploaded Python 3

File details

Details for the file ai_logguard-1.0.0.tar.gz.

File metadata

  • Download URL: ai_logguard-1.0.0.tar.gz
  • Upload date:
  • Size: 58.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for ai_logguard-1.0.0.tar.gz
Algorithm Hash digest
SHA256 01af2080bf71bb48bf7693c9c6799c0d26488e6c8be78897e1f26e41d546d8e3
MD5 5ba0d698ab7b0171425b4fa162247d9e
BLAKE2b-256 0a123f2981b0a5cdab2a2c1dec9bc6f97e535d97280be5ab4733776358ce3b76

See more details on using hashes here.

File details

Details for the file ai_logguard-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: ai_logguard-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 65.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for ai_logguard-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9fd8004a4b4be8db475a6675d2ecf57604f4c3a64e75e1bc68f64a7a2bd3220e
MD5 d00364b7f0da78d00c0bda23c8beb16c
BLAKE2b-256 be160a33793432cbc6743f16f1af2d45259256d85e6c8f2bfde73e9c74ff93d3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page