Skip to content

Python: New samples added to use the auto_reduce flag in the ChatHistorySummarizationReducer and the ChatHistoryTruncationReducer classes #10830

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Mar 7, 2025

Conversation

saurabhvartak1982
Copy link
Contributor

Motivation and Context

Description

The ChatHistorySummarizationReducer and the ChatHistoryTruncationReducer both inherit the class ChatHistoryReducer. Now the ChatHistoryReducer has a flag auto_reduce which helps in either triggering the summarization call (in case of ChatHistorySummarizationReducer) or the truncation call (in case of ChatHistoryTruncationReducer) automatically.

However, this flag would useful only if the method add_message_async is used to add messages to the chat history. The add_message_async method is also provided by the ChatHistoryReducer class.

Contribution Checklist

@saurabhvartak1982 saurabhvartak1982 requested a review from a team as a code owner March 6, 2025 10:33
@markwallace-microsoft markwallace-microsoft added the python Pull requests for the Python Semantic Kernel label Mar 6, 2025
@github-actions github-actions bot changed the title New samples added to use the auto_reduce flag in the ChatHistorySummarizationReducer and the ChatHistoryTruncationReducer classes Python: New samples added to use the auto_reduce flag in the ChatHistorySummarizationReducer and the ChatHistoryTruncationReducer classes Mar 6, 2025
…_history_reducer_autoreduce.py and simple_chatbot_with_truncation_history_reducer_autoreduce.py
@moonbox3 moonbox3 added this pull request to the merge queue Mar 7, 2025
Merged via the queue into microsoft:main with commit 8590e30 Mar 7, 2025
27 checks passed
musale pushed a commit to musale/semantic-kernel that referenced this pull request Mar 10, 2025
…orySummarizationReducer and the ChatHistoryTruncationReducer classes (microsoft#10830)

### Motivation and Context

<!-- Thank you for your contribution to the semantic-kernel repo!
Please help reviewers and future users, providing the following
information:
  1. Why is this change required?
The changes provide reference samples to make use of the **auto_reduce**
flag of the **ChatHistorySummarizationReducer** and the
**ChatHistoryTruncationReducer** classes.
  2. What problem does it solve?
Currently there are no samples showcasing the use of the **auto_reduce**
flag.
  3. What scenario does it contribute to?
If the summarization or truncation of the chat history is desired
without an explicit call to do so, then this sample code aims to provide
a reference.
  4. If it fixes an open issue, please link to the issue here.
NA
-->

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->
The **ChatHistorySummarizationReducer** and the
**ChatHistoryTruncationReducer** both inherit the class
**ChatHistoryReducer**. Now the **ChatHistoryReducer** has a flag
**auto_reduce** which helps in either triggering the summarization call
(in case of **ChatHistorySummarizationReducer**) or the truncation call
(in case of **ChatHistoryTruncationReducer**) automatically.

However, this flag would useful only if the method **add_message_async**
is used to add messages to the chat history. The **add_message_async**
method is also provided by the **ChatHistoryReducer** class.


### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [X] The code builds clean without any errors or warnings
- [X] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [X] All unit tests pass, and I have added new tests where possible
- [X] I didn't break anyone 😄

---------

Co-authored-by: Evan Mattson <35585003+moonbox3@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation python Pull requests for the Python Semantic Kernel
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants