Files
wp-agentic-writer/workflow_updates_summary.md
Dwindi Ramadhana d2c10756ab Add AI writing assistant plugin with local backend, brave search, and image generation support
- Implement local backend AI provider with Ollama integration
- Add Brave Search API integration for real-time search suggestions
- Add image generation manager with multiple AI providers
- Create hybrid provider system with local/cloud fallback
- Add comprehensive settings UI with provider management
- Implement Gutenberg sidebar with writing assistance controls
- Add SEO schema generation for AI-generated content
- Multiple provider support: OpenRouter, local backend, Codex
2026-05-17 10:48:05 +07:00

251 lines
6.8 KiB
Markdown

# WP Agentic Writer: Document Update Summary
## Recommended Updates & Improvements
### 1. **Flow 3: Image Generation - Add Format Conversion**
**Current State:** Stores only JPEG
**Recommendation:** Add WebP/AVIF conversion after generation
```php
// After generating JPEG, auto-convert to next-gen formats
private static function generate_image_variants($temp_filepath, $image_model, $prompt) {
// 1. Generate initial JPEG (existing flow)
// 2. Convert to WebP + AVIF (NEW)
self::convert_to_webp($temp_filepath);
self::convert_to_avif($temp_filepath);
// 3. Return all variants with format preference
return [
'jpg' => $temp_filepath,
'webp' => str_replace('.jpg', '.webp', $temp_filepath),
'avif' => str_replace('.jpg', '.avif', $temp_filepath)
];
}
```
**Benefits:**
- Users see faster image variants
- Better performance on modern browsers
- Up to 40-60% smaller files
---
### 2. **Flow 4: Media Upload - Optimize Before Commit**
**Current State:** Direct sideload without optimization
**Recommendation:** Add image optimization before WordPress upload
```php
public static function sideload_image_to_media($temp_filepath, $post_id, $alt_text) {
// 1. Optimize image (compress, resize if needed)
$optimized_path = self::optimize_image_before_upload($temp_filepath);
// 2. Proceed with sideload
$attachment_id = media_handle_sideload(/* ... */);
// 3. Return optimized attachment
return $attachment_id;
}
// Uses: ShortPixel API or local imagick/gd
private static function optimize_image_before_upload($filepath) {
// Option A: Local ImageMagick/GD for fast compression
// Option B: External API (ShortPixel, Imagify) for advanced algorithms
}
```
**Benefits:**
- Smaller images in WP Media Library
- Faster downloads for site visitors
- Better Core Web Vitals
---
### 3. **Flow 5: Temp Management - Add Offloading Option**
**Current State:** Local filesystem only
**Recommendation:** Add cloud offloading for large operations
```php
// Config: Use local or cloud temp storage
define('AGENTIC_TEMP_STORAGE', 'local'); // or 's3', 'r2', 'bunny'
private static function get_temp_storage_handler() {
$storage_type = get_option('agentic_temp_storage_type', 'local');
switch($storage_type) {
case 's3':
return new S3TempStorage(/* AWS credentials */);
case 'r2':
return new CloudflareR2TempStorage(/* R2 credentials */);
case 'bunny':
return new BunnyCDNTempStorage(/* Bunny API key */);
default:
return new LocalTempStorage();
}
}
```
**Benefits:**
- Scales for high-volume image generation
- No disk space constraints
- Automatic cleanup via cloud service
---
### 4. **Error Handling & Retry Logic**
**Current State:** Minimal error handling
**Recommendation:** Add robust retry + fallback strategies
```php
/**
* Resilient image generation with retry logic
*/
private static function generate_with_retry($prompt, $model, $max_retries = 3) {
for ($attempt = 1; $attempt <= $max_retries; $attempt++) {
try {
return self::call_image_api($model, $prompt);
} catch (TimeoutException $e) {
if ($attempt === $max_retries) {
// Last attempt: return cached/previous variant
return self::get_fallback_image($model, $prompt);
}
sleep($attempt * 2); // Exponential backoff
} catch (RateLimitException $e) {
// Switch to slower, cheaper model
$model = self::get_fallback_model($model);
sleep(5);
}
}
}
/**
* Cost estimation with usage tracking
*/
private static function track_generation_cost($model, $usage) {
// Store: tokens, cost per image, cumulative cost
// Alert if monthly budget exceeded
update_option('agentic_monthly_generation_cost',
get_option('agentic_monthly_generation_cost', 0) + $usage['cost']
);
}
```
---
### 5. **Admin Interface Enhancements**
**Current State:** Basic image library table
**Recommendations:**
a) **Add real-time generation progress**
- WebSocket updates instead of polling
- Show: variant 2/3 generated, cost so far, ETA
b) **Add cost analytics dashboard**
- Cost per post, per model, trend graph
- Budget alerts + consumption warnings
- Compare model costs
c) **Batch operations**
- Regenerate all images for post
- Export all temps as ZIP
- Auto-optimize + commit all in one click
---
### 6. **Security & Permission Checks**
**Current State:** Basic `edit_post` check
**Recommendations:**
```php
/**
* Add granular permission checks
*/
private static function check_user_image_permissions($user_id, $action) {
// Check: Can user generate images? (rate limit check)
// Check: Can user commit to this post?
// Check: Monthly generation quota not exceeded?
if (!user_can_generate_images($user_id)) {
return new WP_Error('quota_exceeded', 'Generation limit reached');
}
}
/**
* Sanitize all image prompts before API call
*/
private static function sanitize_image_prompt($prompt) {
// Remove: potentially harmful instructions
// Limit: length to 1000 chars
// Log: all prompts for audit trail
return apply_filters('agentic_sanitize_image_prompt', $prompt);
}
```
---
### 7. **Database Indexes & Performance**
**Current State:** Basic indexes
**Recommendations:**
```sql
-- Add composite index for faster queries
CREATE INDEX idx_post_image_status
ON wp_agentic_images(post_id, agent_image_id, status);
-- Add index for cost tracking
CREATE INDEX idx_generation_date_cost
ON wp_agentic_images_variants(created_at, cost);
-- For analytics queries
CREATE INDEX idx_model_generation_time
ON wp_agentic_images_variants(image_model_used, generation_time);
```
---
### 8. **Configuration & Feature Flags**
**New Settings Panel Section:**
```php
'generation_settings' => [
'max_variants_per_generate' => 3,
'variant_formats' => ['jpg', 'webp', 'avif'],
'enable_auto_optimize' => true,
'temp_storage_type' => 'local|s3|r2|bunny',
'cleanup_old_temps_days' => 7,
'max_generation_cost_per_post' => 5.00,
'image_models' => ['sourceful/riverflow-v2-max', 'sdxl-turbo'],
'enable_cost_tracking' => true,
'enable_user_notifications' => true,
]
```
---
## Implementation Priority
**Phase 1 (Critical):**
- Add error handling + retry logic
- Optimize images before commit
- Add cost tracking
**Phase 2 (Important):**
- WebP/AVIF conversion
- Enhanced admin analytics
- Database performance indexes
**Phase 3 (Nice-to-have):**
- Cloud temp storage offloading
- Real-time progress WebSockets
- Batch operations UI
---
## Next Steps
1. Review these recommendations
2. Clarify which sections to update first
3. I can generate updated flows with code examples
4. Test integration with your current WP Agentic Writer setup