feat: implement automatic ChromaDB indexing and loop-based documentation generation
Some checks failed
CI/CD Pipeline / Run Tests (push) Has been skipped
CI/CD Pipeline / Security Scanning (push) Has been skipped
CI/CD Pipeline / Generate Documentation (push) Failing after 8m31s
CI/CD Pipeline / Lint Code (push) Failing after 8m33s
CI/CD Pipeline / Build and Push Docker Images (api) (push) Has been skipped
CI/CD Pipeline / Build and Push Docker Images (chat) (push) Has been skipped
CI/CD Pipeline / Build and Push Docker Images (frontend) (push) Has been skipped
CI/CD Pipeline / Build and Push Docker Images (worker) (push) Has been skipped
CI/CD Pipeline / Deploy to Staging (push) Has been skipped
CI/CD Pipeline / Deploy to Production (push) Has been skipped

- Add automatic ChromaDB indexing after documentation generation
- Implement loop-based section generation for individual VM and container documentation
- Fix Celery anti-pattern in generate_proxmox_docs task (removed blocking .get() call)
- Share ChromaDB vector store volume between worker and chat services
- Add documentation management UI to frontend with manual job triggering and log viewing
- Fix frontend Socket.IO connection URL to point to correct chat service port
- Enhance DocumentationAgent.index_documentation() with automatic cleanup of old documents
- Update Proxmox template to generate individual files for each VM and container

This enables the RAG system to properly respond with infrastructure-specific information from the generated documentation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-21 03:00:50 +02:00
parent 5dcd7bd2be
commit c8aebaaee3
9 changed files with 994 additions and 104 deletions

View File

@@ -40,59 +40,107 @@ sections:
Use tables, bullet points, and clear sections. Include actual values from the data.
- id: "proxmox_vms"
title: "Virtual Machines Inventory"
category: "virtualization"
- id: "vm"
title: "VM: {vm_name}"
category: "vms"
priority: 2
description: "Complete inventory of QEMU virtual machines"
description: "Individual VM documentation"
loop_over: "vms"
loop_item_name: "vm"
data_requirements:
- "vms"
- "nodes"
prompt_template: |
Generate detailed documentation for all virtual machines in the Proxmox cluster.
Generate detailed technical documentation for this virtual machine.
**Virtual Machines:**
{vms}
**VM Details:**
{vm}
**Nodes:**
**Available Nodes:**
{nodes}
Create documentation that includes:
1. VM inventory table (VMID, Name, Node, Status, vCPU, RAM, Disk)
2. VMs grouped by node
3. VMs grouped by status (running/stopped)
4. Resource allocation per VM
5. Naming conventions and patterns observed
6. Recommendations for VM placement and balancing
Create comprehensive documentation that includes:
Use markdown tables and organize information clearly.
## VM Configuration
- VMID and Name
- Current Status (running/stopped)
- Host Node location
- id: "proxmox_containers"
title: "LXC Containers Inventory"
category: "virtualization"
## Resource Allocation
- vCPU cores allocated
- RAM allocated (in GB)
- Disk space and storage location
- Network interfaces
## Current State
- Uptime (if running)
- Resource usage (CPU%, RAM%)
- IP addresses (if available)
## Management
- Configuration highlights
- Backup status and schedule (if available)
- Snapshot information (if available)
- High availability configuration (if applicable)
## Recommendations
- Resource optimization suggestions
- Security considerations
- Best practices for this VM
**IMPORTANT**: Document ALL details available in the VM data. Do not skip any information.
Use markdown tables, bullet points, and clear sections.
- id: "container"
title: "Container: {container_name}"
category: "containers"
priority: 3
description: "Complete inventory of LXC containers"
description: "Individual LXC container documentation"
loop_over: "containers"
loop_item_name: "container"
data_requirements:
- "containers"
- "nodes"
prompt_template: |
Generate detailed documentation for all LXC containers in the Proxmox cluster.
Generate detailed technical documentation for this LXC container.
**Containers:**
{containers}
**Container Details:**
{container}
**Nodes:**
**Available Nodes:**
{nodes}
Create documentation that includes:
1. Container inventory table (VMID, Name, Node, Status, vCPU, RAM, Disk)
2. Containers grouped by node
3. Containers grouped by status (running/stopped)
4. Resource allocation per container
5. Use cases and patterns for containers vs VMs
6. Recommendations for container management
Create comprehensive documentation that includes:
Use markdown tables and clear organization.
## Container Configuration
- VMID and Name
- Container Type (LXC)
- Current Status (running/stopped)
- Host Node location
## Resource Allocation
- vCPU cores allocated
- RAM allocated (in GB)
- Disk space and storage location
- Network interfaces
## Current State
- Uptime (if running)
- Resource usage (CPU%, RAM%)
- IP addresses (if available)
- Template used (if available)
## Management
- Configuration highlights
- Backup status and schedule (if available)
- Snapshot information (if available)
- Privileges and security settings
## Recommendations
- Resource optimization suggestions
- Security hardening
- Best practices for this container
**IMPORTANT**: Document ALL details available in the container data. Do not skip any information.
Use markdown tables, bullet points, and clear sections.
- id: "proxmox_storage"
title: "Storage Configuration"
@@ -203,8 +251,8 @@ sections:
# Generation settings
generation:
max_tokens: 4000
temperature: 0.7
max_tokens: 2000 # Reduced for small models
temperature: 0.5 # Lower for more focused responses
language: "en" # Default language, can be overridden
# Output configuration