summaryrefslogtreecommitdiff
path: root/components/providers
diff options
context:
space:
mode:
authoricebaker <icebaker@proton.me>2023-06-03 19:13:26 -0300
committericebaker <icebaker@proton.me>2023-06-03 19:13:26 -0300
commitcb8a84a60773cfe9e7fab03d93fc6430e4574351 (patch)
tree27839477aafb56128804393a328c94d341d5b394 /components/providers
parent2c50a06b68a21ce904e5dfd15833e3569ff64bfa (diff)
add cryptography to state and user identifiers
Diffstat (limited to 'components/providers')
-rw-r--r--components/providers/openai.rb19
1 files changed, 13 insertions, 6 deletions
diff --git a/components/providers/openai.rb b/components/providers/openai.rb
index c0a6639..c64a588 100644
--- a/components/providers/openai.rb
+++ b/components/providers/openai.rb
@@ -3,6 +3,7 @@
require 'openai'
require_relative './base'
+require_relative '../crypto'
module NanoBot
module Components
@@ -15,8 +16,9 @@ module NanoBot
attr_reader :settings
- def initialize(settings)
+ def initialize(settings, environment: {})
@settings = settings
+ @environment = environment
@client = ::OpenAI::Client.new(
uri_base: "#{@settings[:credentials][:address].sub(%r{/$}, '')}/",
@@ -46,11 +48,16 @@ module NanoBot
)
end
- payload = {
- model: @settings[:model],
- user: @settings[:credentials][:'user-identifier'],
- messages:
- }
+ user = @settings[:credentials][:'user-identifier']
+
+ user_suffix = @environment && (
+ @environment['NANO_BOTS_USER_IDENTIFIER'] ||
+ @environment[:NANO_BOTS_USER_IDENTIFIER]
+ )
+
+ user = "#{user}/#{user_suffix}" if user_suffix && user_suffix != ''
+
+ payload = { model: @settings[:model], user: Crypto.encrypt(user, soft: true), messages: }
CHAT_SETTINGS.each do |key|
payload[key] = @settings[key] if @settings.key?(key)