Streamlined UI Log messages
This commit is contained in:
parent
2ac89178b3
commit
a6bca95879
1 changed files with 146 additions and 0 deletions
146
poweron/appdoc/doc_spec_progress_logging.md
Normal file
146
poweron/appdoc/doc_spec_progress_logging.md
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
# Progress Logging Implementation
|
||||
|
||||
## Overview
|
||||
This implementation adds comprehensive progress tracking to the workflow system using standardized ChatLog messages with progress indicators. The system provides real-time progress updates for long-running operations.
|
||||
|
||||
## Key Components
|
||||
|
||||
### 1. ProgressLogger Utility (`gateway/modules/shared/progressLogger.py`)
|
||||
- **Purpose**: Centralized progress management for workflow operations
|
||||
- **Features**:
|
||||
- Start/update/complete operations
|
||||
- Automatic workflowId extraction from workflow object
|
||||
- Standardized progress message format
|
||||
- Error handling and cleanup
|
||||
|
||||
### 2. Enhanced WorkflowService (`gateway/modules/services/serviceWorkflow/mainServiceWorkflow.py`)
|
||||
- **Added**: `createProgressLogger(workflow)` method
|
||||
- **Purpose**: Factory method for creating ProgressLogger instances
|
||||
|
||||
### 3. Document Generation Integration (`gateway/modules/services/serviceAi/subDocumentGeneration.py`)
|
||||
- **Enhanced Methods**:
|
||||
- `_callAiWithSingleFileGeneration()` - Single-file document generation with progress
|
||||
- `_callAiWithMultiFileGeneration()` - Multi-file document generation with progress
|
||||
- **Progress Points**:
|
||||
- Start: When generation begins
|
||||
- 10%: Extraction prompt generated
|
||||
- 20%: Document processing started
|
||||
- 90%: Generation completed
|
||||
- 100%: Operation completed
|
||||
|
||||
### 4. Workflow Processor Integration (`gateway/modules/workflows/processing/workflowProcessor.py`)
|
||||
- **Enhanced Methods**:
|
||||
- `generateTaskPlan()` - Task plan generation with progress
|
||||
- `executeTask()` - Task execution with progress
|
||||
- **Progress Points**:
|
||||
- Start: When operation begins
|
||||
- 30%: User input analyzed (task planning)
|
||||
- 80%: Task plan message created
|
||||
- 100%: Operation completed
|
||||
|
||||
### 5. Frontend Enhancements
|
||||
- **WorkflowCoordination** (`frontend_agents/public/js/modules/workflowCoordination.js`):
|
||||
- Added `handleProgressUpdate()` function for efficient progress updates
|
||||
- Updates existing progress bars instead of creating new log entries
|
||||
- **UI Renderer** (`frontend_agents/public/js/modules/workflowUiRenderer.js`):
|
||||
- Enhanced progress bar rendering with status information
|
||||
- Shows progress percentage and status text
|
||||
|
||||
## Standardized Progress Format
|
||||
|
||||
### Message Format
|
||||
```
|
||||
message = "Service Action"
|
||||
status = "Context Details"
|
||||
progress = 0.XX (0.0 to 1.0)
|
||||
```
|
||||
|
||||
### Examples
|
||||
- `message = "Service Extract", status="Document Filename.docx part 12", progress = 0.23`
|
||||
- `message = "Service AI", status="Processing chunk 3 of 8", progress = 0.54`
|
||||
- `message = "Service Generate", status="Creating document section 2", progress = 0.89`
|
||||
|
||||
## Usage Examples
|
||||
|
||||
### Basic Usage
|
||||
```python
|
||||
# Create progress logger
|
||||
progressLogger = workflowService.createProgressLogger(workflow)
|
||||
operationId = f"operation_{workflow.id}_{int(time.time())}"
|
||||
|
||||
# Start operation
|
||||
progressLogger.startOperation(
|
||||
operationId,
|
||||
"ServiceName",
|
||||
"ActionName",
|
||||
"Context information"
|
||||
)
|
||||
|
||||
# Update progress
|
||||
progressLogger.updateProgress(operationId, 0.5, "Halfway done")
|
||||
|
||||
# Complete operation
|
||||
progressLogger.completeOperation(operationId, True)
|
||||
```
|
||||
|
||||
### Error Handling
|
||||
```python
|
||||
try:
|
||||
# ... operation code ...
|
||||
progressLogger.completeOperation(operationId, True)
|
||||
except Exception as e:
|
||||
progressLogger.completeOperation(operationId, False)
|
||||
raise
|
||||
```
|
||||
|
||||
## Frontend Integration
|
||||
|
||||
### Progress Update Handling
|
||||
```javascript
|
||||
// Import the function
|
||||
import { handleProgressUpdate } from './workflowCoordination.js';
|
||||
|
||||
// Handle progress updates
|
||||
handleProgressUpdate(logEntry);
|
||||
```
|
||||
|
||||
### UI Rendering
|
||||
The UI automatically renders progress bars when `progress` field is present in ChatLog entries:
|
||||
- Progress bar with percentage
|
||||
- Status text display
|
||||
- Real-time updates
|
||||
|
||||
## Benefits
|
||||
|
||||
1. **Standardized Format**: Consistent progress reporting across all services
|
||||
2. **Real-time Updates**: Users see progress as operations happen
|
||||
3. **Efficient UI**: Progress bars update in place rather than creating new log entries
|
||||
4. **Error Handling**: Failed operations show clear progress indication
|
||||
5. **Concurrent Operations**: Multiple operations can show progress simultaneously
|
||||
6. **CamelCase Naming**: Follows established coding conventions
|
||||
|
||||
## Implementation Status
|
||||
|
||||
✅ **Completed**:
|
||||
- ProgressLogger utility class
|
||||
- WorkflowService integration
|
||||
- Document generation progress tracking
|
||||
- Workflow processor progress tracking
|
||||
- Frontend progress update handling
|
||||
- UI progress bar enhancements
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. **Test Integration**: Test the progress logging with actual workflow operations
|
||||
2. **Performance Optimization**: Monitor performance impact of frequent progress updates
|
||||
3. **Additional Services**: Add progress logging to other long-running services
|
||||
4. **UI Polish**: Enhance progress bar styling and animations
|
||||
|
||||
## Files Modified
|
||||
|
||||
- `gateway/modules/shared/progressLogger.py` (new)
|
||||
- `gateway/modules/services/serviceWorkflow/mainServiceWorkflow.py`
|
||||
- `gateway/modules/services/serviceAi/subDocumentGeneration.py`
|
||||
- `gateway/modules/workflows/processing/workflowProcessor.py`
|
||||
- `frontend_agents/public/js/modules/workflowCoordination.js`
|
||||
- `frontend_agents/public/js/modules/workflowUiRenderer.js`
|
||||
Loading…
Reference in a new issue