feat: Add PDF file upload support for AI-powered diagram generation #148
+349
−63
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📄 Overview
Implements PDF file upload functionality to enable users to upload academic papers, documentation, and other PDF files for AI-powered diagram generation.
🎯 Features
Phase 1: Universal Text Extraction
pdf-parselibraryPhase 2: Native File Upload
Additional Enhancements
ENABLE_PDF_INPUTenvironment variableMAX_FILE_SIZE)/api/config🖼️ Screenshots
PDF Upload Interface:

File Size Validation:

🔧 Technical Implementation
Provider Compatibility Matrix
Architecture
📦 Files Changed
.env.example: AddedENABLE_PDF_INPUTconfiguration flagapp/api/chat/route.ts: PDF processing logic with provider detectionapp/api/config/route.ts: New endpoint for feature configurationcomponents/chat-input.tsx: Enhanced UI with PDF supportlib/pdf-utils.ts: PDF utility functions (extraction, validation)package.json: Addedpdf-parse@^1.1.1dependency🧪 Testing
📝 Usage Example
🐛 Resolves
Closes #141
🚀 Deployment Notes
Required environment variables:
Dependencies to install:
Ready for review! 🎉