FEATURE: Custom content summarization strategies. (#21813)

* FEATURE: Content custom summarization strategies.

This PR establishes a pattern for plugins to register alternative ways of summarizing content by extending a class that defines an interface.

Core controls which strategy we'll use and who has access to it through the `summarization_strategy` and `custom_summarization_allowed_groups`. It also defines the UI for summarizing topics.

Other plugins can access this summarization mechanism and implement their features, removing cross-plugin customizations, as it currently happens between chat and the discourse-ai plugin.

* Group membership validation and rate limiting

* Work with objects instead of classes

* Port summarization feature from discourse-ai to chat

* Rename available summaries to 'Top Replies' and 'Summary'
This commit is contained in:
Roman Rizzi
2023-06-13 14:21:46 -03:00
committed by GitHub
parent dcceb91000
commit 8938ecabc2
43 changed files with 649 additions and 58 deletions

View File

@@ -114,6 +114,14 @@ en:
heading: "Chat"
join: "Join"
last_visit: "last visit"
summarization:
title: "Summarize messages"
description: "Select an option below to summarize the conversation sent during the desired timeframe."
summarize: "Summarize"
since:
one: "Last hour"
other: "Last %{count} hours"
mention_warning:
dismiss: "dismiss"
cannot_see: "%{username} can't access this channel and was not notified."

View File

@@ -35,6 +35,8 @@ Chat::Engine.routes.draw do
put "/channels/:channel_id/messages/:message_id/restore" => "channel_messages#restore"
delete "/channels/:channel_id/messages/:message_id" => "channel_messages#destroy"
get "/channels/:channel_id/summarize" => "summaries#get_summary"
end
# direct_messages_controller routes