summaryrefslogtreecommitdiff
path: root/logic
diff options
context:
space:
mode:
Diffstat (limited to 'logic')
-rw-r--r--logic/cartridge/streaming.rb2
-rw-r--r--logic/providers/cohere/tokens.rb17
2 files changed, 18 insertions, 1 deletions
diff --git a/logic/cartridge/streaming.rb b/logic/cartridge/streaming.rb
index 0b9b19f..23e88ac 100644
--- a/logic/cartridge/streaming.rb
+++ b/logic/cartridge/streaming.rb
@@ -8,7 +8,7 @@ module NanoBot
module Streaming
def self.enabled?(cartridge, interface)
provider_stream = case Helpers::Hash.fetch(cartridge, %i[provider id])
- when 'openai', 'mistral'
+ when 'openai', 'mistral', 'cohere'
Helpers::Hash.fetch(cartridge, %i[provider settings stream])
when 'google'
Helpers::Hash.fetch(cartridge, %i[provider options stream])
diff --git a/logic/providers/cohere/tokens.rb b/logic/providers/cohere/tokens.rb
new file mode 100644
index 0000000..f7d3f55
--- /dev/null
+++ b/logic/providers/cohere/tokens.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+module NanoBot
+ module Logic
+ module Cohere
+ module Tokens
+ def self.apply_policies!(_cartridge, payload)
+ if payload[:chat_history]
+ payload[:chat_history] = payload[:chat_history].map { |message| message.except(:_meta) }
+ end
+
+ payload
+ end
+ end
+ end
+ end
+end