Ejemplo n.º 1
0
 public FlowManager(
     IConfiguration configuration,
     IStateManager stateManager,
     IContextProvider contextProvider,
     INamedSemaphore namedSemaphore,
     IActionProvider actionProvider,
     ISender sender,
     IDocumentSerializer documentSerializer,
     IEnvelopeSerializer envelopeSerializer,
     IArtificialIntelligenceExtension artificialIntelligenceExtension,
     IVariableReplacer variableReplacer,
     ILogger logger,
     ITraceManager traceManager,
     IUserOwnerResolver userOwnerResolver,
     IInputExpirationHandler inputExpirationHandler,
     Application application)
 {
     _configuration      = configuration;
     _stateManager       = stateManager;
     _contextProvider    = contextProvider;
     _namedSemaphore     = namedSemaphore;
     _actionProvider     = actionProvider;
     _sender             = sender;
     _documentSerializer = documentSerializer;
     _envelopeSerializer = envelopeSerializer;
     _artificialIntelligenceExtension = artificialIntelligenceExtension;
     _variableReplacer       = variableReplacer;
     _logger                 = logger;
     _traceManager           = traceManager;
     _userOwnerResolver      = userOwnerResolver;
     _inputExpirationHandler = inputExpirationHandler;
     _applicationIdentity    = application.Identity;
     _applicationNode        = application.Node;
 }
 public BuilderMessageReceiver(
     IFlowManager flowManager,
     BuilderSettings settings,
     IContactExtension contactExtension,
     IDirectoryExtension directoryExtension,
     ISender sender,
     IStateManager stateManager,
     IDocumentSerializer documentSerializer,
     IEnvelopeSerializer envelopeSerializer,
     IArtificialIntelligenceExtension artificialIntelligenceExtension,
     IContextProvider contextProvider,
     IUserOwnerResolver userOwnerResolver,
     ILogger logger)
     : base(contactExtension, directoryExtension, logger)
 {
     _flowManager        = flowManager;
     _settings           = settings;
     _sender             = sender;
     _stateManager       = stateManager;
     _documentSerializer = documentSerializer;
     _envelopeSerializer = envelopeSerializer;
     _contextProvider    = contextProvider;
     _userOwnerResolver  = userOwnerResolver;
     _artificialIntelligenceExtension = artificialIntelligenceExtension;
 }
 public BuilderDeskNotificationReceiver(
     BuilderSettings settings,
     IStateManager stateManager,
     ISender sender,
     IContextProvider contextProvider,
     IDocumentSerializer documentSerializer,
     IEnvelopeSerializer envelopeSerializer,
     IArtificialIntelligenceExtension artificialIntelligenceExtension,
     IHelpDeskExtension helpDeskExtension,
     IUserOwnerResolver userOwnerResolver)
 {
     _settings          = settings;
     _stateManager      = stateManager;
     _sender            = sender;
     _contextProvider   = contextProvider;
     _helpDeskExtension = helpDeskExtension;
     _userOwnerResolver = userOwnerResolver;
     _lazyInput         = new LazyInput(
         new Message(),
         new Identity(),
         _settings.Flow.BuilderConfiguration,
         documentSerializer,
         envelopeSerializer,
         artificialIntelligenceExtension,
         CancellationToken.None);
 }
 public PlainTextMessageReceiver(ISender sender,
                                 Settings settings,
                                 IStateManager stateManager,
                                 IArtificialIntelligenceExtension artificialIntelligenceExtension)
 {
     _sender       = sender;
     _settings     = settings;
     _stateManager = stateManager;
     _artificialIntelligenceExtension = artificialIntelligenceExtension;
 }
Ejemplo n.º 5
0
        public LazyInput(
            Message message,
            Identity userIdentity,
            BuilderConfiguration builderConfiguration,
            IDocumentSerializer documentSerializer,
            IEnvelopeSerializer envelopeSerializer,
            IArtificialIntelligenceExtension artificialIntelligenceExtension,
            CancellationToken cancellationToken)
        {
            Message = message ?? throw new ArgumentNullException(nameof(message));
            _builderConfiguration  = builderConfiguration ?? throw new ArgumentNullException(nameof(builderConfiguration));
            _lazySerializedContent = new Lazy <string>(() => documentSerializer.Serialize(Content));
            _analyzable            = new Lazy <bool>(() =>
            {
                string result = null;
                Message?.Metadata?.TryGetValue("builder.analyzable", out result);
                return(result?.ToLower() == "true");
            });
            _lazyAnalyzedContent = new Lazy <Task <AnalysisResponse> >(async() =>
            {
                // Only analyze the input if the type is plain text or analyzable metadata is true.
                if (!_analyzable.Value && Content.GetMediaType() != PlainText.MediaType)
                {
                    return(null);
                }

                try
                {
                    return(await artificialIntelligenceExtension.AnalyzeAsync(
                               new AnalysisRequest
                    {
                        Text = _lazySerializedContent.Value,
                        Extras = new Dictionary <string, string>
                        {
                            ["MessageId"] = Message.Id,
                            ["UserIdentity"] = userIdentity.ToString()
                        }
                    },
                               cancellationToken));
                }
                catch (LimeException)
                {
                    return(null);
                }
            });
            _lazySerializedMessage = new Lazy <string>(() =>
            {
                if (Message != null)
                {
                    return(envelopeSerializer.Serialize(Message));
                }

                return(null);
            });
        }
Ejemplo n.º 6
0
 public NLPService(
     IArtificialIntelligenceExtension artificialIntelligenceExtension,
     MySettings settings,
     IMessagingHubSender sender,
     IMpaService mpaService,
     ILogger logger,
     IGenericErrorService genericErrorService
     )
 {
     _artificialIntelligenceExtension = artificialIntelligenceExtension;
     _settings            = settings;
     _sender              = sender;
     _mpaService          = mpaService;
     _logger              = logger;
     _genericErrorService = genericErrorService;
 }
Ejemplo n.º 7
0
        public LazyInput(
            Document content,
            IDictionary <string, string> flowConfiguration,
            IDocumentSerializer documentSerializer,
            IEnvelopeSerializer envelopeSerializer,
            IArtificialIntelligenceExtension artificialIntelligenceExtension,
            CancellationToken cancellationToken)
        {
            _flowConfiguration     = flowConfiguration;
            Content                = content;
            _lazySerializedContent = new Lazy <string>(() => documentSerializer.Serialize(content));
            _lazyAnalyzedContent   = new Lazy <Task <AnalysisResponse> >(async() =>
            {
                // Only analyze the input if the type is plain text.
                if (Content.GetMediaType() != PlainText.MediaType)
                {
                    return(null);
                }

                try
                {
                    return(await artificialIntelligenceExtension.AnalyzeAsync(
                               new AnalysisRequest
                    {
                        Text = _lazySerializedContent.Value
                    },
                               cancellationToken));
                }
                catch (LimeException)
                {
                    return(null);
                }
            });
            _lazySerializedMessage = new Lazy <string>(() =>
            {
                var message = EnvelopeReceiverContext <Message> .Envelope;
                if (message != null)
                {
                    return(envelopeSerializer.Serialize(message));
                }

                return(null);
            });
        }
Ejemplo n.º 8
0
        public LazyInput(
            Message message,
            BuilderConfiguration builderConfiguration,
            IDocumentSerializer documentSerializer,
            IEnvelopeSerializer envelopeSerializer,
            IArtificialIntelligenceExtension artificialIntelligenceExtension,
            CancellationToken cancellationToken)
        {
            Message = message ?? throw new ArgumentNullException(nameof(message));
            _builderConfiguration  = builderConfiguration ?? throw new ArgumentNullException(nameof(builderConfiguration));
            _lazySerializedContent = new Lazy <string>(() => documentSerializer.Serialize(Content));
            _lazyAnalyzedContent   = new Lazy <Task <AnalysisResponse> >(async() =>
            {
                // Only analyze the input if the type is plain text.
                if (Content.GetMediaType() != PlainText.MediaType)
                {
                    return(null);
                }

                try
                {
                    return(await artificialIntelligenceExtension.AnalyzeAsync(
                               new AnalysisRequest
                    {
                        Text = _lazySerializedContent.Value
                    },
                               cancellationToken));
                }
                catch (LimeException)
                {
                    return(null);
                }
            });
            _lazySerializedMessage = new Lazy <string>(() =>
            {
                if (Message != null)
                {
                    return(envelopeSerializer.Serialize(Message));
                }

                return(null);
            });
        }
Ejemplo n.º 9
0
 public FlowManager(
     IConfiguration configuration,
     IStateManager stateManager,
     IContextProvider contextProvider,
     INamedSemaphore namedSemaphore,
     IActionProvider actionProvider,
     ISender sender,
     IDocumentSerializer documentSerializer,
     IEnvelopeSerializer envelopeSerializer,
     IArtificialIntelligenceExtension artificialIntelligenceExtension,
     IVariableReplacer variableReplacer)
 {
     _configuration      = configuration;
     _stateManager       = stateManager;
     _contextProvider    = contextProvider;
     _namedSemaphore     = namedSemaphore;
     _actionProvider     = actionProvider;
     _sender             = sender;
     _documentSerializer = documentSerializer;
     _envelopeSerializer = envelopeSerializer;
     _artificialIntelligenceExtension = artificialIntelligenceExtension;
     _variableReplacer = variableReplacer;
 }
Ejemplo n.º 10
0
 public LazyInput(
     Message message,
     Identity userIdentity,
     BuilderConfiguration builderConfiguration,
     IDocumentSerializer documentSerializer,
     IEnvelopeSerializer envelopeSerializer,
     IArtificialIntelligenceExtension artificialIntelligenceExtension,
     CancellationToken cancellationToken)
 {
     Message = message ?? throw new ArgumentNullException(nameof(message));
     _builderConfiguration  = builderConfiguration ?? throw new ArgumentNullException(nameof(builderConfiguration));
     _lazySerializedContent = new Lazy <string>(() => documentSerializer.Serialize(Content));
     _analyzable            = new Lazy <bool>(() =>
     {
         string result = null;
         Message?.Metadata?.TryGetValue("builder.analyzable", out result);
         return(result?.ToLower() == "true");
     });
     _artificialIntelligenceExtension = artificialIntelligenceExtension;
     _cancellationToken     = cancellationToken;
     _lazyAnalyzedContent   = CreateLazyAnalyzedContent(userIdentity);
     _lazySerializedMessage = CreateLazySerializedMessage(envelopeSerializer);
     _lazyGetContentResult  = CreateLazyGetContentResult();
 }
Ejemplo n.º 11
0
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
        public ProcessContentAssistantAction(IArtificialIntelligenceExtension artificialIntelligenceExtension) : base(nameof(ProcessContentAssistant))
#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member
        {
            _artificialIntelligenceExtension = artificialIntelligenceExtension;
        }
Ejemplo n.º 12
0
 public Startup(ISender sender, Settings settings, IArtificialIntelligenceExtension artificialIntelligenceExtension)
 {
     _sender   = sender;
     _settings = settings;
     _artificialIntelligenceExtension = artificialIntelligenceExtension;
 }