Files
mknotes/enhancement_proposals.md
T
schihei f00f29ab6b Move prompts to separate files and add prompt types
- Created directory structure for prompts (system and user prompts)
- Added specialized prompts for lectures, meetings, and interviews
- Updated enhancer.py to load prompts from files
- Added --prompt-type CLI parameter to select prompt type
- Updated documentation and enhancement proposals
2025-05-22 21:28:36 +02:00

3.8 KiB

mknotes Improvement Recommendations

This document outlines proposed improvements for the mknotes software, grouped by category.

Feature Enhancements

  • Support for More Audio Formats (Partially implemented - WAV support added)

    • Added support for WAV files with automatic conversion to MP3 before processing
    • Extend support to include additional formats like FLAC, OGG, etc.
    • Updated the find_audio_files function in utils.py to recognize WAV extension
  • Customizable Enhancement Prompts (Implemented)

    • Added CLI argument to select different prompt types (lecture, meeting, interview)
    • Moved prompts to separate files for easier customization
    • Created specialized prompts for different use cases (lectures, meeting minutes, interviews)
    • Allow users to provide their own custom prompts via configuration files.
  • Batch Processing Controls

    • Add the ability to limit the number of files processed in one run.
    • Implement resume functionality for interrupted batch processing.
  • Output Format Options

    • Support multiple output formats beyond Markdown (e.g., HTML, PDF, DOCX).
    • Add options for customizing Markdown styling.
  • Caching Mechanism

    • Implement caching for OpenAI API calls to reduce costs and improve performance.
    • Store intermediate results to avoid reprocessing if enhancement fails.

Technical Improvements

  • Robust Error Handling and Logging

    • Implement a proper logging system instead of print statements.
    • Add comprehensive error handling with appropriate recovery strategies.
    • Example: Add retry logic for API calls with exponential backoff.
  • Configuration Management

    • Create a configuration system using YAML/JSON files.
    • Allow users to set default values for all parameters.
    • Support environment-specific configurations.
  • API Key Management

    • Implement a more secure way to handle API keys.
    • Add support for API key rotation.
  • Performance Optimization

    • Implement parallel processing for transcription of multiple files.
    • Add an option to use local models for offline processing.
  • Testing Framework

    • Add unit tests for core functionality.
    • Implement integration tests for the complete workflow.

Code Structure Improvements

  • Separation of Concerns (Partially implemented)

    • Moved prompts to separate files in a dedicated prompts directory.
    • Create a more abstract API client layer.
  • Progress Tracking and Reporting

    • Enhance progress reporting beyond simple tqdm bars.
    • Add detailed statistics about processing time, token usage, etc.
  • Plugin Architecture

    • Implement a plugin system to allow for custom transcription or enhancement modules.
    • Make it easier to switch between different AI models or services.

User Experience Enhancements

  • Interactive Mode

    • Add an interactive mode where users can preview and edit enhanced notes before saving.
    • Implement a simple TUI (Text User Interface) for a better CLI experience.
  • Web Interface

    • Create a simple web interface for users who prefer GUI over CLI.
    • Consider a lightweight Flask/FastAPI app that wraps the core functionality.
  • Notification System

    • Add notifications for long-running processes (email, desktop notifications).
    • Implement a webhook system for integration with other tools.

Documentation Improvements

  • Enhanced Documentation

    • Create comprehensive documentation with examples and use cases.
    • Add a troubleshooting guide for common issues.
  • Sample Configurations

    • Provide sample configuration files for different use cases.
    • Include examples of custom prompts for different types of content.

These recommendations are intended to guide future development and prioritization for mknotes. Each suggestion can be implemented independently or as part of a broader roadmap.