diff options
author | icebaker <icebaker@proton.me> | 2023-06-03 19:13:26 -0300 |
---|---|---|
committer | icebaker <icebaker@proton.me> | 2023-06-03 19:13:26 -0300 |
commit | cb8a84a60773cfe9e7fab03d93fc6430e4574351 (patch) | |
tree | 27839477aafb56128804393a328c94d341d5b394 /components/providers | |
parent | 2c50a06b68a21ce904e5dfd15833e3569ff64bfa (diff) |
add cryptography to state and user identifiers
Diffstat (limited to 'components/providers')
-rw-r--r-- | components/providers/openai.rb | 19 |
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) |