2023-04-04 10:24:09 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module DiscourseAi
|
|
|
|
module Summarization
|
|
|
|
class EntryPoint
|
|
|
|
def load_files
|
2023-06-27 11:26:33 -04:00
|
|
|
require_relative "models/base"
|
|
|
|
require_relative "models/anthropic"
|
|
|
|
require_relative "models/discourse"
|
|
|
|
require_relative "models/open_ai"
|
|
|
|
|
|
|
|
require_relative "strategies/fold_content"
|
|
|
|
require_relative "strategies/truncate_content"
|
2023-04-04 10:24:09 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
def inject_into(plugin)
|
2023-06-27 11:26:33 -04:00
|
|
|
foldable_models = [
|
|
|
|
Models::OpenAi.new("gpt-4", max_tokens: 8192),
|
|
|
|
Models::OpenAi.new("gpt-4-32k", max_tokens: 32_768),
|
|
|
|
Models::OpenAi.new("gpt-3.5-turbo", max_tokens: 4096),
|
|
|
|
Models::OpenAi.new("gpt-3.5-turbo-16k", max_tokens: 16_384),
|
|
|
|
Models::Discourse.new("long-t5-tglobal-base-16384-book-summary", max_tokens: 16_384),
|
|
|
|
Models::Anthropic.new("claude-v1", max_tokens: 9000),
|
|
|
|
Models::Anthropic.new("claude-v1-100k", max_tokens: 100_000),
|
|
|
|
]
|
|
|
|
|
|
|
|
foldable_models.each do |model|
|
|
|
|
plugin.register_summarization_strategy(Strategies::FoldContent.new(model))
|
|
|
|
end
|
|
|
|
|
|
|
|
truncable_models = [
|
|
|
|
Models::Discourse.new("bart-large-cnn-samsum", max_tokens: 1024),
|
|
|
|
Models::Discourse.new("flan-t5-base-samsum", max_tokens: 512),
|
|
|
|
]
|
|
|
|
|
|
|
|
truncable_models.each do |model|
|
|
|
|
plugin.register_summarization_strategy(Strategies::TruncateContent.new(model))
|
|
|
|
end
|
2023-04-04 10:24:09 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|