components/providers/openai.rb in nano-bots-0.0.1 vs components/providers/openai.rb in nano-bots-0.0.2
- old
+ new
@@ -22,10 +22,17 @@
uri_base: "#{@settings[:credentials][:address].sub(%r{/$}, '')}/",
access_token: @settings[:credentials][:'access-token']
)
end
+ def stream(input)
+ provider = @settings.key?(:stream) ? @settings[:stream] : true
+ interface = input[:interface].key?(:stream) ? input[:interface][:stream] : true
+
+ provider && interface
+ end
+
def evaluate(input, &block)
messages = input[:history].map do |event|
{ role: event[:who] == 'user' ? 'user' : 'assistant',
content: event[:message] }
end
@@ -49,10 +56,10 @@
payload[key] = @settings[key] if @settings.key?(key)
end
payload.delete(:logit_bias) if payload.key?(:logit_bias) && payload[:logit_bias].nil?
- if @settings[:stream] && input[:interface][:stream]
+ if stream(input)
content = ''
payload[:stream] = proc do |chunk, _bytesize|
partial = chunk.dig('choices', 0, 'delta', 'content')
if partial