Initial commit: LLM Automation Docs & Remediation Engine v2.0

Features:
- Automated datacenter documentation generation
- MCP integration for device connectivity
- Auto-remediation engine with safety checks
- Multi-factor reliability scoring (0-100%)
- Human feedback learning loop
- Pattern recognition and continuous improvement
- Agentic chat support with AI
- API for ticket resolution
- Frontend React with Material-UI
- CI/CD pipelines (GitLab + Gitea)
- Docker & Kubernetes deployment
- Complete documentation and guides

v2.0 Highlights:
- Auto-remediation with write operations (disabled by default)
- Reliability calculator with 4-factor scoring
- Human feedback system for continuous learning
- Pattern-based progressive automation
- Approval workflow for critical actions
- Full audit trail and rollback capability
This commit is contained in:
LLM Automation System
2025-10-17 23:47:28 +00:00
commit 1ba5ce851d
89 changed files with 20468 additions and 0 deletions

View File

@@ -0,0 +1,152 @@
"""
MongoDB Models using Beanie ODM
"""
from datetime import datetime
from typing import Optional, List, Dict, Any
from beanie import Document, Indexed
from pydantic import Field
class Ticket(Document):
"""Ticket document for MongoDB"""
ticket_id: Indexed(str, unique=True) # External ticket ID
title: str
description: str
priority: str = "medium" # low, medium, high, critical
category: Optional[str] = None # network, server, storage, etc.
requester: Optional[str] = None
# Status and resolution
status: str = "processing" # processing, resolved, failed
resolution: Optional[str] = None
suggested_actions: Optional[List[str]] = None
related_docs: Optional[List[Dict[str, str]]] = None
# Metrics
confidence_score: Optional[float] = None
processing_time: Optional[float] = None
# Metadata
metadata: Dict[str, Any] = Field(default_factory=dict)
# Timestamps
created_at: datetime = Field(default_factory=datetime.now)
updated_at: datetime = Field(default_factory=datetime.now)
class Settings:
name = "tickets"
indexes = [
"ticket_id",
"status",
"category",
"created_at",
[("status", 1), ("created_at", -1)], # Compound index
]
class DocumentationSection(Document):
"""Documentation section metadata"""
section_id: Indexed(str, unique=True)
name: str
description: Optional[str] = None
# Generation info
last_generated: Optional[datetime] = None
generation_status: str = "pending" # pending, processing, completed, failed
generation_time: Optional[float] = None
# Content metadata
file_path: Optional[str] = None
file_size: Optional[int] = None
checksum: Optional[str] = None
# Statistics
total_chunks: Optional[int] = None
total_tokens: Optional[int] = None
# Timestamps
created_at: datetime = Field(default_factory=datetime.now)
updated_at: datetime = Field(default_factory=datetime.now)
class Settings:
name = "documentation_sections"
class ChatSession(Document):
"""Chat session for tracking conversations"""
session_id: Indexed(str, unique=True)
user_id: Optional[str] = None
# Messages
messages: List[Dict[str, Any]] = Field(default_factory=list)
# Session metadata
started_at: datetime = Field(default_factory=datetime.now)
last_activity: datetime = Field(default_factory=datetime.now)
total_messages: int = 0
# Context
context: Dict[str, Any] = Field(default_factory=dict)
class Settings:
name = "chat_sessions"
indexes = [
"session_id",
"user_id",
"last_activity",
]
class SystemMetric(Document):
"""System metrics and statistics"""
metric_type: str # tickets, api_calls, generation, chat
metric_name: str
value: float
# Dimensions
dimensions: Dict[str, str] = Field(default_factory=dict)
# Timestamp
timestamp: datetime = Field(default_factory=datetime.now)
class Settings:
name = "system_metrics"
indexes = [
"metric_type",
"metric_name",
"timestamp",
[("metric_type", 1), ("timestamp", -1)],
]
class AuditLog(Document):
"""Audit log for tracking system actions"""
action: str
actor: Optional[str] = None
resource_type: str
resource_id: str
# Details
details: Dict[str, Any] = Field(default_factory=dict)
# Result
success: bool = True
error_message: Optional[str] = None
# Timestamp
timestamp: datetime = Field(default_factory=datetime.now)
class Settings:
name = "audit_logs"
indexes = [
"action",
"resource_type",
"timestamp",
[("resource_type", 1), ("timestamp", -1)],
]