90 lines
2.6 KiB
Markdown
90 lines
2.6 KiB
Markdown
# System Patterns
|
|
|
|
## Architecture Overview
|
|
The application follows a client-server architecture with containerized deployment and secure authentication:
|
|
|
|
### Authentication System
|
|
- JSON file-based user management
|
|
- Secure password hashing with bcrypt
|
|
- Session-based authentication using Flask-Login
|
|
- Protected API routes with login_required decorator
|
|
- Remember me functionality for persistent sessions
|
|
|
|
### Frontend (React)
|
|
- Single Page Application (SPA) architecture
|
|
- Authentication state management
|
|
- Protected route handling
|
|
- Component-based structure:
|
|
- Login: User authentication interface
|
|
- FileUpload: Handles file input and processing
|
|
- FileList: Manages processed files
|
|
- ModelSelector: AI model selection
|
|
- Configurations: System settings and prompts
|
|
- ProgressBar: Real-time processing feedback
|
|
- Notifications: User feedback system
|
|
- TxtToPdf: Document conversion utility
|
|
- ImageDescription: Image analysis and description
|
|
- ChangePassword: User password management
|
|
|
|
### Backend (Flask)
|
|
- RESTful API architecture
|
|
- Modular design with separate concerns:
|
|
- app.py: Main application and route handlers
|
|
- models.py: Data models and AI model management
|
|
- utils.py: Processing utilities and helpers
|
|
|
|
## Key Technical Decisions
|
|
|
|
### Background Processing
|
|
- Asynchronous job processing using threading
|
|
- Job tracking system with unique IDs
|
|
- Real-time progress updates via polling
|
|
|
|
### File Management
|
|
- Secure file handling with unique naming
|
|
- Separate upload and output directories
|
|
- Support for multiple file formats
|
|
|
|
### AI Integration
|
|
- Modular AI model system
|
|
- Support for multiple AI providers:
|
|
- OpenAI
|
|
- Gemini
|
|
- Mistral
|
|
- Configurable prompts system
|
|
- Vision AI capabilities:
|
|
- Base64 image encoding
|
|
- MIME type detection
|
|
- Proper Gemini Vision API formatting
|
|
|
|
### OCR Processing
|
|
- Multiple processing modes:
|
|
- Pure OCR (Tesseract)
|
|
- Hybrid (OCR + AI)
|
|
- Full AI OCR
|
|
- Page-by-page processing for large documents
|
|
|
|
### Translation System
|
|
- Language management system
|
|
- Page-by-page translation
|
|
- Progress tracking per page
|
|
|
|
### Configuration Management
|
|
- JSON-based configuration storage
|
|
- Import/export functionality
|
|
- Runtime model and prompt updates
|
|
|
|
## Error Handling
|
|
- Comprehensive error catching
|
|
- User-friendly error messages
|
|
- Job cancellation support
|
|
|
|
## Security Patterns
|
|
- Secure file uploads with sanitization
|
|
- CORS configuration with credentials support
|
|
- Environment-based configuration
|
|
- Password hashing and verification
|
|
- Session management and protection
|
|
- API route protection
|
|
- Authentication state persistence
|
|
- Secure cookie handling
|