Sha256: b7173f2a4773f863c538e499b8844dab9e825bf549de73483033cdd6cc4a3177
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
# frozen_string_literal: true module Xip class Controller module Nlp extend ActiveSupport::Concern included do # Memoized in order to prevent multiple requests to the NLP provider def perform_nlp! Xip::Logger.l( topic: :nlp, message: "User #{current_session_id} -> Performing NLP." ) unless Xip.config.nlp_integration.present? raise Xip::Errors::ConfigurationError, "An NLP integration has not yet been configured (Xip.config.nlp_integration)" end @nlp_result ||= begin nlp_client = nlp_client_klass.new @nlp_result = @current_message.nlp_result = nlp_client.understand( query: current_message.message ) if Xip.config.log_all_nlp_results Xip::Logger.l( topic: :nlp, message: "User #{current_session_id} -> NLP Result: #{@nlp_result.parsed_result.inspect}" ) end @nlp_result end end private def nlp_client_klass integration = Xip.config.nlp_integration.to_s.titlecase klass = "Xip::Nlp::#{integration}::Client" klass.classify.constantize end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
xip-2.0.0.beta2 | lib/xip/controller/nlp.rb |