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:
152
src/datacenter_docs/api/models.py
Normal file
152
src/datacenter_docs/api/models.py
Normal 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)],
|
||||
]
|
||||
Reference in New Issue
Block a user