Skip to content

Repository files navigation

DevOps Automation Project

An automation project for DevOps processes using LLM-based agents. Currently focused on local LLM deployment using Ollama.

Features

  • 🤖 LLM Integration for intelligent automation (using Ollama)
  • 📨 Notifications support via Telegram and Slack
  • 🔄 Asynchronous task processing
  • 📝 Logging and monitoring

Requirements

  • Python 3.8+
  • Ollama for local LLM

Installation

  1. Install Ollama:
# For macOS or Linux
curl -fsSL https://ollama.ai/install.sh | sh
  1. Clone the repository:
git clone git@github.com:whoekage/devops_agent.git
cd devops_agent
  1. Create virtual environment:
python -m venv venv
source venv/bin/activate # For Linux/MacOS# or
.\venv\Scripts\activate # For Windows
  1. Install dependencies:
pip install -r requirements.txt
  1. Copy the example configuration file and set it up:
cp config.yaml.example config.yaml
  1. Edit config.yaml and specify the required parameters:
  • Ollama model configuration
  • Telegram and Slack tokens
  • Other parameters as needed

Running

  1. Start Ollama and pull the required model:
# Start Ollama service
ollama serve
# In another terminal, pull the model (e.g., mistral)
ollama pull mistral
  1. Activate virtual environment (if not already activated):
source venv/bin/activate # For Linux/MacOS# or
.\venv\Scripts\activate # For Windows
  1. Run the main application:
python main.py

Project Structure

.
├── agents/ # Agents for various tasks
│ └── k8s_agent.py # Kubernetes management agent
├── core/ # Application core
│ ├── llm.py # LLM integration
│ ├── database.py # Database operations
│ └── notifications.py # Notification system
├── workers/ # Worker processes
│ ├── llm_worker.py # LLM task processor
│ └── notification_worker.py # Notification processor
├── utils/ # Utility functions
│ └── logger.py # Logging
├── config.yaml # Application configuration
├── main.py # Application entry point
└── requirements.txt # Project dependencies

Configuration

Main settings are stored in config.yaml. Configuration example:

llm:
type: "ollama"model: "mistral"host: "http://localhost:11434"temperature: 0.7max_tokens: 2000notifications:
telegram:
token: your_telegram_tokenchat_id: your_chat_idslack:
token: your_slack_tokenchannel: #notificationsdatabase:
path: history.db

Development

To contribute to development:

  1. Create a fork of the repository
  2. Create a branch for new functionality
  3. Make changes and create a pull request

TODO

  • Implement core notification functionality:
    • Add Telegram bot commands and interactions
    • Implement Slack app integration and slash commands
    • Add message templates and formatting
    • Implement notification priorities and rules
  • Add support for multiple LLM providers (OpenAI, Anthropic)
  • Implement model switching functionality
  • Add Kubernetes integration
  • Create comprehensive test suite
  • Add metrics collection and monitoring
  • Implement rate limiting and queue management
  • Add support for more notification channels (Discord, Email)
  • Create web interface for management
  • Add documentation for API endpoints
  • Implement backup and restore functionality
  • Add support for custom agent development
  • Create examples and use cases
  • Add CI/CD pipeline configuration

License

This project is distributed under the MIT License. See LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages