## Summary by CodeRabbit
- **New Features**
- Updated environment variable descriptions for improved clarity on OCR processing options.
- Enhanced the `doOCRViaLLM` method to support different LLM providers and improve image data handling.
- **Bug Fixes**
- Standardized error handling for better reporting across multiple methods.
- **Documentation**
- Revised Docker Compose section in `README.md` to reflect updated environment variable options.
- Spawn a new goroutine in the `main` function to process documents with the `autoTag` every 10 seconds.
- Implement `processAutoTagDocuments` function to:
- Fetch documents with the `autoTag`.
- Generate suggestions using the LLM.
- Apply the suggestions to the documents.
- Remove the `autoTag` from the documents.
- Add logging for each document being processed.
- **Custom Prompt Templates**: Introduced support for user-modifiable prompt templates using Go's `text/template`.
- Added default prompt templates for title and tag generation.
- Templates are stored in the `prompts` directory and are loaded at startup.
- If the template files do not exist, they are created with default content.
- Users can modify the templates by editing the files in the `prompts` directory.
- **API Endpoints for Prompts**:
- Added `GET /api/prompts` endpoint to retrieve the current prompt templates.
- Added `POST /api/prompts` endpoint to update the prompt templates.
- These endpoints prepare for future UI support for modifying prompts.
- **Thread Safety**:
- Implemented a `sync.RWMutex` to ensure thread-safe access to the templates.
- **Updated Backend Logic**:
- Modified `getSuggestedTitle` and `getSuggestedTags` functions to use the loaded templates.
- Templates utilize variables like `{{.Language}}`, `{{.Content}}`, `{{.AvailableTags}}`, and `{{.Title}}`.
- **Docker and Documentation**:
- Updated the `loadTemplates` function to ensure the `prompts` directory exists and to save default templates if missing.
- Updated the README with instructions on how to mount the `prompts` directory in Docker and Docker Compose.
- Provided guidance on modifying the prompt templates via file edits.