Esempio n. 1
0
        internal static void ModuleTesting()
        {
            var externalDatabase = RestaurantAgent.CreateRestaurantDatabase();
            var module           = new ExternalDatabaseProviderModule("restaurant", externalDatabase);

            var database = new EvaluatedDatabase();

            database.Container
            .Pattern("luxury")
            .WhatItSpecifies("pricerange")
            .HowToEvaluate("expensive")
            ;

            database.StartQueryLog();
            module.AttachTo(database);

            var result = database.Query(SemanticItem.AnswerQuery(Question.HowToDo, Constraints.WithInput("set restaurant specifier luxury")));
            //var result = database.Query(SemanticItem.AnswerQuery(Question.IsItTrue, Constraints.WithInput("restaurant database has 1 result")));

            var actionId = result.FirstOrDefault().Answer;
            var action   = database.GetNativeAction(actionId);

            action(result.FirstOrDefault());

            var log = database.FinishLog();

            Log.Questions(log.GetQuestions());
            Log.Result(result);

            Log.Dump(database);
        }
Esempio n. 2
0
        public string Input(string utterance)
        {
            var normalizedUtterance = normalizeInput(utterance);

            Log.DialogUtterance("U: " + normalizedUtterance);
            Db.StartQueryLog();

            _outputCandidates.Clear();

            //handle input processing
            _inputHistory.Add(normalizedUtterance);

            if (_inputHistory.Count == 1)
            {
                FireEvent("dialog started");
            }

            FireEvent("user input is received");
            HandleAllEvents();

            finishInputProcessing();
            HandleAllEvents();

            _executionQuestions.Clear();

            //handle output processing
            var output = _outputCandidates.LastOrDefault();

            var log = Db.FinishLog();

            Log.Questions(log.GetQuestions());

            var normalizedOutput = prettyPrintOutput(output);

            Log.DialogUtterance("S: " + normalizedOutput);
            return(normalizedOutput);
        }