Module: LLM::Relay
- Defined in:
- lib/scout/llm/backends/relay.rb
Class Method Summary collapse
- .ask(question, options = {}, &block) ⇒ Object
- .gather(server, id) ⇒ Object
- .upload(server, file) ⇒ Object
Class Method Details
.ask(question, options = {}, &block) ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/scout/llm/backends/relay.rb', line 24 def self.ask(question, = {}, &block) server = IndiferentHash. , :server server ||= Scout::Config.get :server, :ask_relay, :relay, :ask, env: 'ASK_ENDPOINT,LLM_ENDPOINT', default: :openai [:question] = question TmpFile.with_file(.to_json) do |file| id = upload(server, file) gather(server, id) end end |
.gather(server, id) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/scout/llm/backends/relay.rb', line 12 def self.gather(server, id) TmpFile.with_file do |file| begin CMD.cmd("scp #{server}:.scout/var/ask/reply/#{ id }.json #{ file }") JSON.parse(Open.read(file)) rescue sleep 1 retry end end end |
.upload(server, file) ⇒ Object
6 7 8 9 10 |
# File 'lib/scout/llm/backends/relay.rb', line 6 def self.upload(server, file) id = Misc.digest(Open.read(file)) CMD.cmd("scp #{file} #{server}:.scout/var/ask/#{ id }.json") id end |