Skip to content

[FEATURE] Async Context Compression Manual Invoke Ability #80

Description

@farrerz

Plugin Type (Optional)

Filter

Plugin Name (Optional)

Filter - Async Context Compression

Feature Description

The current implementation of the Async Context Compression is excellent and works incredibly well for the vast majority of my daily use cases!

With that being said, I have run into situations where it would beneficial to have the ability to manually invoke the compression process (via a button or other action in Open WebUI) without having to have submitted a request and gotten a response from the main model.

Motivation & Use Case

I have run into situations where it would beneficial to have the ability to manually invoke the compression without having to have submitted a request and gotten a response from the main model. In particular, I have run into a few situations where this would be greatly beneficial:

  • Cloning a chat that has been compressed in past seems to result in the compression not existing in the cloned conversations (likely because the message IDs are different?). This means that the same a cloned chat will have such a large context that it cannot fit in the model, even though it is (from the user's perspective) the same chat as the original that fits because it has been compressed.
    • This same situation applies to importing json files for previously exported chats.
  • Switching to a model with a smaller context mid-chat. This again results in the same issue where the prompt fails because the context is too large, even though the prompt would be able to work if the compression step could be manually invoked to compress the context before submitting the prompt.

I am sure there are other situations that could benefit from being able to manually invoke the compression as well, and for debugging as well.

Additional Information (Optional)

Thanks for your work on this, it's a fantastic tool!

Checklist

  • I have searched existing issues/discussions for similar requests
  • This feature would be useful for multiple users

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions