- Add remaining AI assistant CSS styling for event creation page - Include comprehensive AI system documentation and test reports - Update Claude settings to reflect completed deployment commands - Finalize template loader and router modifications for enhanced functionality This completes the comprehensive event creation system v3.2.0 with: - Featured image support for events, organizers, and venues - AI-powered event population with URL parsing and text extraction - Dynamic searchable selectors with real-time AJAX - Modal creation forms with role-based permissions - Complete deprecation of 27+ legacy files - Authoritative technical documentation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
305 lines
No EOL
9.3 KiB
Markdown
305 lines
No EOL
9.3 KiB
Markdown
# AI-Assisted Event Population Implementation Plan
|
|
|
|
## Overview
|
|
|
|
This plan implements AI-powered event form population using Anthropic Claude API, integrating seamlessly with the existing HVAC event creation system while maintaining WordPress security standards and TEC compatibility.
|
|
|
|
## Architecture Strategy
|
|
|
|
```
|
|
INPUT SOURCES PROCESSING PIPELINE OUTPUT INTEGRATION
|
|
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
|
│ • URLs │ │ HVAC_AI_Event │ │ Form Field │
|
|
│ • Pasted Text │───>│ _Populator │──────>│ Population │
|
|
│ • Descriptions │ │ • Claude API │ │ • TEC Meta │
|
|
└─────────────────┘ │ • Validation │ │ • Confidence │
|
|
│ • Mapping │ │ • User Review │
|
|
└─────────────────┘ └─────────────────┘
|
|
```
|
|
|
|
## Phase 1: MVP Implementation
|
|
|
|
### 1.1 Core Infrastructure Setup
|
|
|
|
**API Configuration**
|
|
- Add `define('ANTHROPIC_API_KEY', 'your-key-here');` to wp-config.php
|
|
- Create `HVAC_AI_Config` class for secure API settings management
|
|
- Implement connectivity validation and error handling
|
|
|
|
**Core Service Implementation**
|
|
```php
|
|
// includes/class-hvac-ai-event-populator.php
|
|
class HVAC_AI_Event_Populator {
|
|
use HVAC_Singleton_Trait;
|
|
|
|
public function populate_from_input($input, $input_type) {
|
|
// Structured Claude API call with web search enabled
|
|
// Return standardized JSON with confidence scores
|
|
}
|
|
|
|
private function build_prompt($input, $context) {
|
|
// Dynamic prompt with venue/organizer context
|
|
}
|
|
|
|
private function validate_response($response) {
|
|
// Schema validation and sanitization
|
|
}
|
|
}
|
|
```
|
|
|
|
**AJAX Endpoint Development**
|
|
- Extend existing `HVAC_Ajax_Handlers` class with `hvac_ai_populate_event`
|
|
- Integrate with `HVAC_Ajax_Security` framework
|
|
- Implement role validation: `hvac_trainer` or `hvac_master_trainer`
|
|
- Input validation and sanitization pipeline
|
|
|
|
### 1.2 Essential Field Mapping
|
|
|
|
**TEC Integration Points**
|
|
```php
|
|
private array $field_mapping = [
|
|
'title' => 'event_title',
|
|
'description' => 'event_description',
|
|
'start_date' => 'event_start_datetime',
|
|
'end_date' => 'event_end_datetime',
|
|
'venue' => '_EventVenueID',
|
|
'organizer' => '_EventOrganizerID',
|
|
'cost' => 'event_cost',
|
|
'capacity' => 'event_capacity'
|
|
];
|
|
```
|
|
|
|
**Data Processing Pipeline**
|
|
- Input sanitization using `sanitize_textarea_field()`
|
|
- URL validation for web sources
|
|
- Response parsing with JSON schema validation
|
|
- Basic venue/organizer duplicate detection
|
|
|
|
### 1.3 Minimum Viable Frontend
|
|
|
|
**Modal Interface Integration**
|
|
- Enhance existing template system in `templates/page-tec-create-event.php`
|
|
- Convert placeholder "AI Assist" button to functional interface
|
|
- Single input field supporting both URLs and text
|
|
- Basic loading states and error messaging
|
|
|
|
**JavaScript Integration**
|
|
```javascript
|
|
// assets/js/hvac-ai-assist.js
|
|
jQuery(document).ready(function($) {
|
|
$('#ai-assist-btn').on('click', function() {
|
|
showAIModal();
|
|
});
|
|
|
|
function processAIInput(input) {
|
|
// AJAX call to backend endpoint
|
|
// Handle loading states
|
|
// Populate form fields on success
|
|
}
|
|
});
|
|
```
|
|
|
|
## Phase 2: Enhanced UX & Validation
|
|
|
|
### 2.1 Advanced Modal Interface
|
|
|
|
**Three-Tab Input System**
|
|
- **URL Tab**: EventBrite, Facebook Events, custom sites
|
|
- **Text Tab**: Email/PDF content, formatted or unformatted
|
|
- **Description Tab**: Natural language event details
|
|
|
|
**Enhanced User Experience**
|
|
- Input type auto-detection with visual feedback
|
|
- Progressive loading states with detailed status messages
|
|
- Enhanced error handling with recovery suggestions
|
|
|
|
### 2.2 Robust Data Processing
|
|
|
|
**Venue/Organizer Intelligence**
|
|
```php
|
|
private function find_matching_venue($extracted_venue) {
|
|
// Fuzzy matching against existing venues
|
|
// Similarity scoring above 80% threshold
|
|
// Return existing ID or create new venue
|
|
}
|
|
|
|
private function detect_duplicates($event_data) {
|
|
// Check date + similar title combinations
|
|
// Return warnings for potential duplicates
|
|
}
|
|
```
|
|
|
|
**Confidence Scoring System**
|
|
```php
|
|
private function calculate_confidence($field_value, $source_context) {
|
|
// Per-field confidence scoring (0.0-1.0)
|
|
// Overall extraction confidence
|
|
// Completeness matrix for missing fields
|
|
}
|
|
```
|
|
|
|
### 2.3 Integration Polish
|
|
|
|
**Form Field Enhancement**
|
|
- Field-level confidence indicators (color-coded borders)
|
|
- Confidence matrix display modal
|
|
- Review and adjust workflow before final submission
|
|
- Seamless autosave integration
|
|
|
|
## Phase 3: Performance & Caching
|
|
|
|
### 3.1 Caching Implementation
|
|
|
|
**WordPress Transients Strategy**
|
|
```php
|
|
private function get_cached_response($input_hash) {
|
|
return get_transient("hvac_ai_cache_{$input_hash}");
|
|
}
|
|
|
|
private function cache_response($input_hash, $response) {
|
|
set_transient("hvac_ai_cache_{$input_hash}", $response, 24 * HOUR_IN_SECONDS);
|
|
}
|
|
```
|
|
|
|
**Cache Management**
|
|
- Content-based cache key generation
|
|
- 24-hour TTL for successful extractions
|
|
- Cache invalidation on venue/organizer updates
|
|
- Memory-optimized for shared hosting
|
|
|
|
### 3.2 Performance Optimization
|
|
|
|
**Request Management**
|
|
- Per-user rate limiting (configurable limits)
|
|
- Request timeout handling (30-second maximum)
|
|
- Error rate monitoring and alerting
|
|
- Prompt optimization for accuracy and speed
|
|
|
|
## Phase 4: Production Readiness
|
|
|
|
### 4.1 Testing Strategy
|
|
|
|
**Comprehensive Test Coverage**
|
|
- Unit tests for API response parsing
|
|
- Integration tests with various input formats
|
|
- Security testing for AJAX endpoints
|
|
- Performance validation on Cloudways environment
|
|
|
|
**Test Scenarios**
|
|
- EventBrite URLs, Facebook Events, custom sites
|
|
- Email formats, PDF content, unstructured text
|
|
- Minimal descriptions, detailed specifications
|
|
- Non-English content, past events, recurring events
|
|
|
|
### 4.2 Edge Case Handling
|
|
|
|
**Robust Error Management**
|
|
- Network timeout recovery with retry logic
|
|
- Malformed API response handling
|
|
- Rate limit exceeded graceful degradation
|
|
- Multiple event extraction (first event only)
|
|
|
|
**Security Hardening**
|
|
- Input validation against injection attacks
|
|
- API key security audit
|
|
- OWASP compliance verification
|
|
- WordPress security best practices
|
|
|
|
## Technical Specifications
|
|
|
|
### Prompt Engineering Strategy
|
|
|
|
```
|
|
System: You are an HVAC event extraction specialist for professional training calendar.
|
|
|
|
Context:
|
|
- Current date: {current_date}
|
|
- Existing venues: {venue_list}
|
|
- Existing organizers: {organizer_list}
|
|
|
|
Input: {user_input}
|
|
|
|
Extract event information and output ONLY valid JSON:
|
|
{
|
|
"title": "string",
|
|
"description": "string",
|
|
"start_date": "YYYY-MM-DD",
|
|
"start_time": "HH:MM",
|
|
"end_date": "YYYY-MM-DD",
|
|
"end_time": "HH:MM",
|
|
"venue": {
|
|
"name": "string",
|
|
"address": "string",
|
|
"confidence": 0.0-1.0
|
|
},
|
|
"organizer": {
|
|
"name": "string",
|
|
"email": "string",
|
|
"confidence": 0.0-1.0
|
|
},
|
|
"cost": number,
|
|
"capacity": number|null,
|
|
"confidence": {
|
|
"overall": 0.0-1.0,
|
|
"per_field": {
|
|
"title": 0.0-1.0,
|
|
"dates": 0.0-1.0,
|
|
"venue": 0.0-1.0
|
|
}
|
|
}
|
|
}
|
|
|
|
Rules:
|
|
1. Match venues/organizers to existing when similarity > 80%
|
|
2. Convert relative dates to absolute dates
|
|
3. Use null for missing fields, not empty strings
|
|
4. If multiple events found, extract primary event only
|
|
```
|
|
|
|
### File Structure
|
|
|
|
```
|
|
includes/
|
|
├── class-hvac-ai-event-populator.php # Main AI service
|
|
├── class-hvac-ai-modal.php # Modal interface handler
|
|
└── class-hvac-ai-config.php # API configuration
|
|
|
|
assets/
|
|
├── js/hvac-ai-assist.js # Frontend JavaScript
|
|
└── css/hvac-ai-assist.css # Modal styling
|
|
|
|
templates/
|
|
└── page-tec-create-event.php # Enhanced with AI button
|
|
```
|
|
|
|
### Success Metrics
|
|
|
|
**Technical Performance**
|
|
- API response time < 10 seconds (target: 5 seconds)
|
|
- Field population accuracy > 85% against test dataset
|
|
- Zero security vulnerabilities in penetration testing
|
|
- 99.9% uptime for feature availability
|
|
|
|
**User Experience**
|
|
- 50% reduction in event submission time
|
|
- 75% of submissions use AI assistance
|
|
- Error rate < 5% requiring manual intervention
|
|
- User satisfaction score > 4/5
|
|
|
|
### Risk Mitigation
|
|
|
|
**Operational Risks**
|
|
- **API Failures**: Graceful degradation with clear error messages
|
|
- **Performance Issues**: Request queuing and rate limiting
|
|
- **Security Vulnerabilities**: Multi-layer validation and WordPress best practices
|
|
|
|
**Adoption Risks**
|
|
- **User Training**: Comprehensive documentation and tutorials
|
|
- **Feature Discovery**: Prominent UI placement and onboarding
|
|
- **Trust Building**: Confidence indicators and manual review workflow
|
|
|
|
## Next Steps
|
|
|
|
This implementation plan provides a clear roadmap from MVP to production-ready AI-assisted event population. The phased approach allows for early user feedback while maintaining the existing plugin's architecture and security standards.
|
|
|
|
The plan can be executed incrementally, with each phase building upon the previous foundation while delivering immediate value to HVAC trainers through reduced event submission friction. |