Skip to content

Releases: DjangoPeng/ChatPPT

ChatPPT v0.7

03 Nov 09:00
cf0882b
Compare
Choose a tag to compare

ChatPPT v0.7 Release Notes

New Features

  • Comprehensive Unit Test Coverage: Added unit tests across multiple modules to ensure code reliability and maintainability. Key highlights include:

    • Coverage for Core Components: Unit tests cover core components such as SlideBuilder, LayoutManager, ImageAdvisor, and PowerPoint generation logic, ensuring key functionalities perform as expected.
  • Docker Integration for Consistent Deployment: Introduced Docker support to streamline deployment and maintain environment consistency across development, testing, and production. Key features include:

    • Automated Unit Test Validation in Docker Build: The Docker build process includes a validate_tests.sh script to automatically run unit tests, ensuring only validated code reaches production.
    • Environment Variable Configuration for Secure API Keys: Docker configuration now supports passing LANGCHAIN_API_KEY and OPENAI_API_KEY as environment variables, enabling secure and flexible deployment across various environments.

Enhancements

  • Updated README with Docker Usage and Test Instructions: The README.md file has been enhanced to include clear instructions for:
    • Running Unit Tests: Step-by-step instructions for setting up and running unit tests locally and in Docker.
    • Building and Running Docker Images: Details on building and running Docker images, including example commands for passing environment variables securely.
    • Environment Setup: Guidance on setting up required environment variables (LANGCHAIN_API_KEY, OPENAI_API_KEY) for seamless usage of ChatPPT’s features.

Commit Log

  • Added unit tests for SlideBuilder, LayoutManager, and PowerPoint generation, including mocking and patching for isolated tests.
  • Integrated Docker support with validate_tests.sh for automated test validation in the Docker build process.
  • Updated README.md with instructions for Docker integration, unit testing, and environment variable setup.
  • Enhanced security by enabling API key injection via environment variables for Docker containers.

ChatPPT v0.6

02 Nov 03:39
08a2755
Compare
Choose a tag to compare

ChatPPT v0.6 Release Notes

New Features

  • ImageAdvisor Class for Bing Image Retrieval and Embedding: Introduced ImageAdvisor, a new class designed to retrieve and embed relevant Bing images based on presentation content. Key features include:
    • Keyword Extraction and Image Retrieval: Automatically extracts keywords from content and retrieves Bing images to match slide topics.
    • Retry Logic for Robust Image Download: Implements retry logic with up to 3 attempts and a 1-second timeout per request, ensuring reliable image downloads even under network instability.
    • Automatic RGBA Handling in Image Saving: Supports automatic format adjustment for RGBA mode images, converting them to PNG format when transparency is detected.
    • Detailed Logging: Provides multi-level logging (debug, warning, and error) for enhanced traceability and error handling during image retrieval and saving processes.

Enhancements

  • Integrated Jupyter Notebook Demo for ImageAdvisor: A dedicated Jupyter Notebook demonstrates the ImageAdvisor class functionality, showcasing keyword-based image retrieval, automatic image embedding, and markdown content generation with embedded images.
  • Enhanced save_image Function for Flexible Image Handling: The save_image function has been updated to handle various image formats dynamically, automatically converting images with transparency (RGBA) to PNG format and setting JPEG as the default for all other cases.

Commit Log

  • Implemented ImageAdvisor class with Bing image retrieval, retry logic, and automatic RGBA handling.
  • Enhanced save_image to support dynamic format handling based on image mode.
  • Added Jupyter Notebook demo to showcase ImageAdvisor capabilities, including image retrieval, embedding, and markdown integration.
  • Added Chinese comments for improved code readability and maintenance.

ChatPPT v0.5

01 Nov 04:08
858716f
Compare
Choose a tag to compare

ChatPPT v0.5 Release Notes

New Features

  • Integration of Multi-Modal Model MiniCPM-v-2.6: Added support for the MiniCPM-v-2.6 model to enable image file recognition and interpretation. Users can now upload image files in .png, .jpg, or .jpeg formats, and ChatPPT will analyze and provide insights based on the content.
  • One-Click PowerPoint Generation from Word Documents: Introduced a new feature to generate PowerPoint presentations directly from Word documents. This includes:
    • Docx Parsing Module (docx_parser): Transforms Word document content into a Markdown format (raw_content), providing structured content for PowerPoint generation.
    • Content Formatter (Agent): Driven by GPT-4-mini, the Content Formatter converts raw_content into markdown_content compatible with ChatPPT's PowerPoint structure. This formatting retains original content without loss.
    • Content Assistant (Agent): The Content Assistant, also powered by GPT-4-mini, enriches and refines markdown_content to produce the final PowerPoint content, optimized for input to input_parser.

Enhancements

  • Adaptive Image Sizing for PowerPoint Generation: Enhanced image handling by adding support for automatic image resizing to fit the ImagePlaceholder. Images are now centered and sized appropriately within slides, ensuring visual balance and optimal fit.

Commit Log

  • Integrated MiniCPM-v-2.6 model to support image file interpretation and analysis.
  • Added docx_parser for Word document parsing and conversion to Markdown format.
  • Developed Content Formatter to ensure seamless conversion of Word content to ChatPPT-compatible Markdown.
  • Added Content Assistant for expanding and refining PowerPoint content derived from Word files.
  • Enhanced image placeholder to support adaptive resizing and center alignment for better visual quality in PowerPoint slides.

ChatPPT v0.4

28 Oct 06:19
36c5c4e
Compare
Choose a tag to compare

ChatPPT v0.4 Release Notes

New Features

  • Integration of Whisper Large v3 (ASR): Integrated Whisper Large v3 Automatic Speech Recognition (ASR) model, significantly improving audio-to-text capabilities for creating content directly from spoken input. This enhancement provides high accuracy and facilitates a seamless transition from audio to structured text.
  • Hierarchical Content Parsing: Implemented a bullet point parsing system that supports multiple indentation levels. This feature allows ChatPPT to detect and assign bullet points to hierarchical levels based on indentation, preserving structure and improving content organization across slides.
  • Minimalist Slide Master with Enhanced Content Hierarchies: Introduced a minimalist-style slide master template optimized for hierarchical content. This design ensures clarity and coherence, particularly for multi-level content presentations, aligning with best practices in minimalism for enhanced readability and focus.

Enhancements

  • Bullet Point Level Parsing with Indentation Support: Enhanced parsing to recognize multiple levels of bullet points based on indentation, ensuring that content structure is accurately reflected in the generated slides. This supports more complex slide layouts by automatically aligning content to respective levels.
  • Improved Layout Consistency for Structured Content: The updated layout system now better accommodates hierarchical data, creating a consistent appearance across slides while supporting complex structures and facilitating the use of multi-level indentation within a single layout.

Commit Log

  • Integrated Whisper Large v3 for high-accuracy ASR.
  • Added bullet point level parsing based on indentation.
  • Updated slide master to minimalist style optimized for hierarchical content.
  • Enhanced layout consistency for structured, multi-level content.
  • Improved content parsing for accurate level assignment based on bullet indentation.

ChatPPT v0.3

24 Oct 08:40
78f5065
Compare
Choose a tag to compare

ChatPPT v0.3 Release Notes

New Features

  • Layout Encoding with Content Type Weighting: Implemented a new layout encoding system that assigns unique numbers to layouts based on weighted content types (Title, Content, Picture). This ensures consistent layout selection regardless of content type order and simplifies matching by treating layouts with the same types and quantities as identical.
  • Gradio-Powered ChatBot Integration: Introduced a Gradio interface that integrates with a GPT-4o-mini powered chatbot. Users can interact with the chatbot to generate markdown content for PowerPoint slides. The chatbot simplifies user input while offering flexibility for dynamic content creation.
  • PowerPoint Generation Integration: Seamlessly combined the Gradio chatbot with PowerPoint generation. The system now allows users to submit markdown through the chatbot interface and automatically generates a PowerPoint presentation based on the content.
  • Simplified Layout Matching: Moved from complex string-based matching to content-type-based encoding, streamlining layout assignment based on encoded values. This method makes the system more adaptable and extensible for future layouts and content types.

Enhancements

  • Debugging and Logging Improvements: Added enhanced logging features, including a __str__ method in key classes like LayoutManager, which provides detailed information about layout strategies and encoded values. This makes development and debugging more transparent and straightforward.
  • Dynamic Layout Strategy Generation: Refined the layout strategy creation to dynamically generate layout strategies based on content types rather than relying on manual configuration. This allows for greater flexibility and easier expansion.
  • Flexible Layout Expansion: The new layout encoding system provides the foundation for adding new content types and layouts, ensuring the system can be easily adapted for future use cases without breaking existing functionality.

Commit Log

  • Added layout encoding system based on weighted content types.
  • Introduced Gradio-powered chatbot for markdown generation and integration with PowerPoint generation.
  • Combined Gradio interface with PowerPoint generation to support end-to-end slide creation.
  • Improved logging and debugging output for layout strategies and encoding values.
  • Refined dynamic layout strategy generation for easier expansion.

ChatPPT v0.2

20 Oct 14:04
bc4d4da
Compare
Choose a tag to compare

ChatPPT v0.2 Release Notes

New Features

  • Automated Layout Management: Introduced a LayoutManager that automatically assigns appropriate layouts based on slide content (e.g., titles, bullet points, and images). Layouts are no longer manually specified in input text, significantly simplifying the input format.
  • Configurable Layout Mapping via config.json: Added support for managing layout configurations through a config.json file, ensuring flexibility and central control over layout mappings without hardcoding them in the main application.
  • Simplified Input Text Format: Updated the input format to remove layout names, leveraging the LayoutManager for dynamic layout assignment. Users now only need to provide titles, bullet points, and images in a streamlined structure.
  • Enhanced PowerPoint Parsing: Implemented a new parsing method using a SlideBuilder class that ensures a clean, modular way to handle slide generation and layout assignment, improving code structure and reusability.
  • Integrated Configuration Loader: The Config class now loads essential settings from config.json, including input mode, PowerPoint templates, and layout mappings, facilitating a more adaptable system.

Enhancements

  • Layout Strategy Refactor: Refactored layout assignment logic into a strategy-based system, making it easier to add or modify layout rules. This enhances flexibility for future releases and custom use cases.
  • Updated Input Documentation: Revised the input format documentation to reflect the new layout management system, providing clear guidelines on creating presentations without needing to specify layouts manually.
  • Error Handling for Configuration: Introduced robust error handling to ensure the application gracefully manages missing or malformed configuration files.

Commit Log

  • Introduced the LayoutManager for automated layout assignment.
  • Added support for layout_mapping in config.json.
  • Updated input parsing to utilize SlideBuilder for cleaner slide generation.
  • Simplified the input text format by removing manual layout specifications.
  • Implemented Config class to load settings from config.json.
  • Refactored layout logic into a strategy pattern for improved flexibility.
  • Enhanced error handling for configuration loading.
  • Updated the documentation to reflect the new input format and automated layout system.

ChatPPT v0.1

14 Oct 14:13
b9d383c
Compare
Choose a tag to compare
ChatPPT v0.1 Pre-release
Pre-release

ChatPPT v0.1 Release Notes

New Features

  • PowerPoint Content Parsing: Introduced a robust input parsing system that converts structured text into PowerPoint slides, including title, key points, and images. This system uses advanced regular expressions to map user input to corresponding slide layouts.
  • Template-based PowerPoint Generation: Implemented dynamic PowerPoint slide generation based on a master template (MasterTemplate.pptx). Users can define layouts such as "Title and Content" and "Title with 2 Columns" for different slide types.
  • Image and Bullet Point Handling: Added support for automatic insertion of images and bullet points into slides, ensuring images are placed in designated placeholders.
  • User Input Conversion: Developed a function to convert a natural language slide description into the required format for slide generation. This function transforms input like "Slide X: Title, Key Points, Notes" into the necessary format for parsing and PowerPoint creation.
  • File Naming Based on Title: Automatically uses the input's main title (e.g., "企业年度报告") as the generated PowerPoint file name, streamlining the output process for users.

Enhancements

  • Logging and Error Handling: Added comprehensive logging for better debugging, including layout mapping, placeholder identification, and file generation steps. This ensures users can easily trace any issues in slide creation.
  • Unit Testing for Input Parsing: Introduced unit tests for the input parser module, verifying that user inputs in the form of slide titles, bullet points, and images are correctly converted into the standard input format.
  • Template Compatibility: Improved compatibility with various PowerPoint templates, allowing for flexible layouts and dynamic content insertion. Special handling for text and image placeholders ensures correct placement of content.
  • Placeholder Identification: Enhanced the detection of image and text placeholders within templates to ensure content is correctly placed, avoiding issues with missing or misidentified placeholders.

Commit Log

  • Created an input parser to convert structured text to PowerPoint-ready content.
  • Implemented a function to dynamically generate PowerPoint slides from structured text using Python's python-pptx library.
  • Added functionality for detecting and inserting images and bullet points in slide layouts.
  • Optimized slide generation to automatically use the main title of the input text as the file name for the generated PowerPoint.
  • Developed unit tests for the input_parser.py module to verify input transformation logic.
  • Enhanced error logging to capture placeholder and layout mapping issues during PowerPoint generation.