class RasaCore::Client
Attributes
response_format[RW]
Public Class Methods
new(args={})
click to toggle source
# File lib/rasa_core/client.rb, line 7 def initialize(args={}) @server = args[:server] @port = args[:port] end
Public Instance Methods
append_action(args={})
click to toggle source
# File lib/rasa_core/client.rb, line 54 def append_action(args={}) body = { event: 'action', timestamp: args[:timestamp], name: args[:name], policy: args[:policy], confidence: args[:confidence]} append_event_to_tracker(args, body) end
append_slot(args={})
click to toggle source
# File lib/rasa_core/client.rb, line 40 def append_slot(args={}) body = { event: 'slot', timestamp: args[:timestamp], name: args[:name], value: args[:value]} append_event_to_tracker(args, body) end
check_health()
click to toggle source
# File lib/rasa_core/client.rb, line 12 def check_health build_response(run_request(url: build_url), :no_format) end
conversation_tracker(args={})
click to toggle source
# File lib/rasa_core/client.rb, line 33 def conversation_tracker(args={}) path = ['conversations', args[:sender_id] || "default", 'tracker'].join('/') query = {include_events: args[:include_events] || "AFTER_RESTART"} url = build_url(path: path, query: query) build_response(run_request(url: url)) end
reset_slots(args={})
click to toggle source
# File lib/rasa_core/client.rb, line 49 def reset_slots(args={}) body = {event: 'reset_slots', timestamp: args[:timestamp]} append_event_to_tracker(args, body) end
send_message(args={})
click to toggle source
# File lib/rasa_core/client.rb, line 26 def send_message(args={}) path = "webhooks/rest/webhook" body = {sender: args[:sender_id] || 'default', message: args[:message]} response = run_request(url: build_url(path: path), body: body, method: 'post') build_response(response) end
status()
click to toggle source
# File lib/rasa_core/client.rb, line 21 def status response = run_request(url: build_url(path: 'status')) build_response(response) end
version()
click to toggle source
# File lib/rasa_core/client.rb, line 16 def version response = run_request(url: build_url(path: 'version')) build_response(response) end
Private Instance Methods
append_event_to_tracker(args={}, body={})
click to toggle source
# File lib/rasa_core/client.rb, line 89 def append_event_to_tracker(args={}, body={}) path = ['conversations', args[:sender_id] || "default", 'tracker/events'].join('/') query = {include_events: args[:include_events] || "AFTER_RESTART"} response = run_request(url: build_url(path: path), query: query, body: body, method: 'post') build_response(response) end
build_response(response, frmt=nil)
click to toggle source
# File lib/rasa_core/client.rb, line 76 def build_response(response, frmt=nil) body = response.body body = format_response_body(body, frmt || self.response_format) if response.success? { success: response.success?, timed_out: response.timed_out?, return_message: response.return_message, code: response.code, body: body } end
build_url(args={})
click to toggle source
# File lib/rasa_core/client.rb, line 66 def build_url(args={}) "#{@server}:#{@port}/#{args[:path]}#{build_url_query(args[:query])}" end
build_url_query(query)
click to toggle source
# File lib/rasa_core/client.rb, line 70 def build_url_query(query) q = URI.encode_www_form(query || {}) q.empty? ? "" : '?'+q end