Releases: bakaburg1/minutemaker
v0.12.0
Add Support for Local Whisper Models and Integrate llmR for Summarization
Enhancements
- Support for Local Whisper Models: Added functions
use_whisper_local_stt
anduse_mlx_whisper_local_stt
to support local Whisper models via Python with reticulate, with the second being optimized for Mac OS with Apple Silicon (Commit: 69e4f5e). - Integration with llmR: Refactored the code to rely on the
llmR
package for LLM interactions, removing redundant LLM-related functions (Commit: 2331b46). - Enhanced Speech-to-Text Workflow: Updated
perform_speech_to_text
to usewhisper_local
as the default model and enhancedspeech_to_summary_workflow
to display the selected speech-to-text model (Commit: 69e4f5e).
Fixes
- Dependency Management: Replaced custom dependency check function with
rlang::check_installed
for better package management (Commit: 3227b0d).
Documentation
- Updated README: Revised README to describe the use of
llmR
for summarization and the addition of new local models for speech-to-text (Commit: 8bff883).
Summary
This pull request introduces significant enhancements to the minutemaker
package by adding support for local Whisper models, integrating the llmR
package for LLM interactions, and improving the speech-to-text workflow. Additionally, it fixes dependency management issues and updates the documentation to reflect these changes.
What's Changed
- Add Support for Local Whisper Models and Integrate llmR for Summarization by @bakaburg1 in #23
Full Changelog: v0.10.0...v0.12.0
v0.10.0
Enhancements
- Change interrogate_llm to prompt_llm: Renamed the
interrogate_llm
function toprompt_llm
to better reflect its purpose of generating prompts for language models (Commit: [2f9eedd]). - Model Logging for LLM Requests: Added a
log_request
parameter touse_openai_llm
,use_azure_llm
, anduse_custom_llm
functions to log the specific endpoint and model being used (Commit: [7e85f2f]). - Handling Long LLM Responses: Improved the handling of LLM responses that exceed the output token limit. Users are now prompted to decide how to proceed, and incomplete answers are saved to a file for reference (Commit: [18cfada]).
- Model Parameter for Custom LLM APIs: Added a
model
parameter to LLM calls to allow specifying a model for custom APIs with multiple models (Commit: [cd4227b]).
Fixes
- Restore Correct Speaker Extraction for Webex VTT: Fixed the parsing of Webex VTT files which was broken by the implementation of MS Teams VTT parsing (Commit: [d189980]).
- Remove Newlines from JSON Output: Fixed an issue where some custom LLMs produced invalid JSON with newlines, causing errors during parsing (Commit: [e9e578a]).
- Support JSON Mode for Custom LLMs: Ensured that most custom LLMs now support JSON mode by keeping the JSON mode option in the call (Commit: [f4df24c]).
Documentation
- Improve Code Comments and Error Handling: Enhanced code comments and error handling for better clarity and maintenance (Commit: [4b689ff]).
Summary
This pull request introduces several enhancements to the LLM handling, including logging the model being used, better management of long responses, and support for specifying models in custom APIs. It also includes fixes for speaker extraction in Webex VTT files and handling of JSON outputs from custom LLMs. Additionally, code comments and error handling have been improved for better clarity.
In the land of code so bright,
LLMs now log their might.
Webex speakers found their way,
JSON errors kept at bay.
With models clear and prompts so neat,
Minutemaker's now complete!
Full Changelog: v0.9.0...v0.10.0
Improve agenda review and add custom LLM support
Enhancements
- Improve user interaction for agenda review: the
speech_to_summary_workflow
function now displays the generated agenda in the console, facilitating review and reducing the need to locate the agenda file separately. (Commit: 3bed1cc). - Add support for custom language model endpoints: replace
use_local_llm()
withuse_custom_llm()
to send requests to custom (local or remote) language model endpoints compatible with the OpenAI API specification, allowing to use also API Keys. (Commit: 0fdfe57). - Dynamic output_length parameter as default: dynamically set
summarization_output_length
in the workflow function based on whether a multipart summary is generated (shorter outputs) or not (longer outputs), optimizing the readability and relevance of summaries. (Commit: 2511287).
Fixes
- Fix output_length usage:
output_length
was not being considered in the summarization process. (Commit: 08e95d1). - Fix agenda file validation: update the validation logic for the 'agenda' argument in the
speech_to_summary_workflow
function to handle character type inputs correctly and provide clearer error messages. (Commit: d200a55). - Fix agenda validation: add checks for empty agenda elements and missing required items, improve error messages for invalid time formats, and update tests. (Commit: 6d870ee).
Documentation
- Fix messages typos: correct typos in messages. (Commit: 0fdfe57).
Summary
This pull request focuses on improving the user experience and adding support for custom language model endpoints. It enhances the agenda review process, ensures dynamic output length adjustment, fixes agenda validation, and adds documentation typo corrections.
🐇✨
In the land of code and script,
A rabbit hopped and tweaks it flipped.
Errors tamed and features new,
Paths to explore, in R we drew.
Hop along, the changes gleam,
In the coder's crafted dream. 🌟📜
What's Changed
- Improve agenda review and add custom LLM support by @bakaburg1 in #21
Full Changelog: v0.8.0...v0.9.0
v0.8.0: Enhanced Agenda Management and Utilization
Enhancements:
- Added a new
multipart_summary
argument inspeech_to_summary_workflow()
to allow users to choose between summarizing each agenda item separately (the previous approach, now the default) or as a single summary just using the agenda to focus the model, offering greater flexibility in the summarization process (Commit: 99168d4). - Introduced
format_agenda()
function to convert machine-readable agendas into human-readable text, improving the usability of agenda-driven summarization (Commit: 0d27980). - Added
validate_agenda()
function to ensure the validity of agenda structures before summarization, enhancing the reliability of the summarization process (Commit: 5e943af). - Added the ability for users to proceed with the summarization workflow after agenda generation without re-running the entire workflow function, streamlining the user experience (Commit: 8056ed6).
- Changed the summarization workflow logic to not ask whether the user wants to overwrite the summarization output if
overwrite_formatted_output
isFALSE
(Commit: 99168d4). - Implemented global configuration for the language model (LLM) provider via
getOption("minutemaker_llm_provider")
, allowing for more flexible and centralized LLM provider management (Commit: 159335d). - Updated
interrogate_llm()
to retrieve the LLM provider setting from global options, providing a more dynamic and user-friendly approach to specifying the LLM provider (Commit: 15723d6).
Fixes:
- Addressed an issue where the summarization process could fail due to invalid agendas by implementing the
validate_agenda()
function (Commit: 6bdabad).
🐰🌟
In the fields of code, where logic plays,
A rabbit hopped, through the minutemaker maze.
With each soft paw, new paths were laid,
Agendas checked, and plans well made.
Hop, skip, jump, the updates shine,
In every line, a leap in time! 🕒🚀
🐰🌟
What's Changed
- Enhanced Agenda Management and Utilization by @bakaburg1 in #20
Full Changelog: v0.7.0...v0.8.0
v0.7.0: Manage events without agendas in the summarisation workflow
This pull request includes a series of enhancements and fixes that improve the transcript summarization workflow, add new functionality for entity extraction, and ensure better support for various transcript formats. The changes also address code quality and documentation to provide a more robust and user-friendly experience.
Breaking:
- Replaced
event_audience
withaudience
as argument name for consistency across the framework. Before, some functions used the first and some the second term (Commit: 644fb29).
Enhancements:
- Workflow Enhancement: Added support for summarizing meetings without an agenda in the workflow. Before, the full workflow function was designed to only work with long meetings organized in sub-talks described by an agenda. (Commit: 644fb29).
- Entity Extraction Functionality: Introduced the
entity_extractor
function to identify and extract entities such as people, acronyms, organizations, and concepts from a text, which can be particularly useful for building vocabularies for LLMs from event descriptions or transcripts (Commit: ae4fc3c). - Agenda Management: Added the ability to manage deviations from the expected agenda, allowing the LLM to add talks not described in the expected agenda, enhancing the flexibility of the summarization process (Commit: 40f7620).
- Support for MS Teams VTT Files: Implemented support for importing transcripts from MS Teams VTT files, which do not follow the standard VTT specification (Commit: cfa9673).
- Output Quality Improvements: Utilized the
styler
package to enhance the readability of generated agendas and unformatted summary outputs, contributing to better readability and user experience (Commit: 194b8c8).
Fixes:
- Agenda Generation Bug: Resolved an issue where the agenda generation was creating infinite unnamed speaker lists, exhausting the context window (Commit: bfc5597).
Dependencies:
- Styler Package Addition: Added the
styler
package and its dependencies to the project, which is used to improve the formatting of the generated outputs (Commit: e88a6bd).
Haiku:
🐇✨
In the code's gentle weave, a change was made,
With careful paws, the paths were laid.
From VTT to summaries so bright,
A rabbit hopped through code, by night.
Celebrate each line, for through the maze,
We find our way, in the code's embrace.
🌟📜
What's Changed
- v0.7.0: Manage events without agendas in the summarisation workflow by @bakaburg1 in #19
Full Changelog: v0.6.0...v0.7.0
v0.6.0
Major Enhancements:
- Introduced the
infer_agenda_from_transcript
function to automate the generation of an event agenda by analyzing a given transcript, aiming to identify and extract key segments and construct a structured overview of the event's proceedings. This enhancement significantly streamlines the workflow for summarizing meetings and conferences. (Commit: c458b0d)
Minor Improvements and Fixes:
- Enhanced error handling for transcription processes, including managing empty transcription JSON files and transcription files with no speaker information. (Commits: 3c4e877, 41b823a)
- Improved the summarization process by adding checks to handle cases where a transcript subset for a talk is empty and ensuring the final result tree is not empty. (Commit: b66b912)
- Addressed various minor issues, including dependency installation, handling of integers as agenda times, and managing fatal Whisper API errors. (Commits: b1daf88, 4a2d159, b66b912)
Development and Maintenance:
- Cleaned up unused code and improved the robustness of the LLM prompt function. (Commits: e9afb2d, 2e7abbc)
- Started using
renv
for dev reproducibility. (Commit: 3b18519)
Full Changelog: v0.5.5...v0.6.0
HotFix 0.5.5: Multiple fixes
What's Changed
- Fix Webex chat multiline messages importation by @bakaburg1 in #14
- Fix faulty transcription files handling by @bakaburg1 in #15
- Update version to 0.5.5 by @bakaburg1 in #16
Full Changelog: v0.5.4...v0.5.5
Hotfix 0.5.4 Fix exp ID generation and improve summarization log readability
This version includes two changes:
-
fix: fix exp ID generation in summary tree check
-
feat: improve summarization log readability
The first commit fixes the generation of experiment IDs in the summary tree check. It ensures that the IDs are correctly generated and consistent with the titles and sessions. The previous version was causing an error when session where not used in the agenda definition.
The second commit improves the readability of the summarization log. It separates different summarised talks in the log for better clarity.
These changes enhance the functionality and user experience of the software.
What's Changed
- Hotfix: Fix exp ID generation and improve summarization log readability by @bakaburg1 in #13
Full Changelog: v0.5.3...v0.5.4
Fix file argument validation and add summary tree and agenda consistency checks
This release includes the following changes:
-
Fixed detection of valid file arguments for chat and transcripts merging
-
Added consistency checks for agenda and summary tree ids
Additional changes:
-
Reindentation of code
-
Moved validation functions to their own file
What's Changed
- Fix file argument validation and add summary tree and agenda consistency checks by @bakaburg1 in #12
Full Changelog: v0.5.2...v0.5.3
v0.5.2
Hot fix: Manage > 1 length vectors as inputs for output, summary structure and diarization instructions.
They are all collapsed before the prompt is built.
What's Changed
- Refactor code by @bakaburg1 in #10
- Hot fix: Manage > 1 length vectors as inputs for output, summary structure and diarization instructions by @bakaburg1 in #11
Full Changelog: v.0.5.0...v0.5.2