コード例 #1
0
            public async Task <(string?, IKnowledge)> Reply(IKnowledge knowledge, MuteCommandContext message)
            {
                if (IsComplete)
                {
                    return(null, knowledge);
                }

                // Get or construct an eliza engine from the knowledge chain
                // If the previous engine has finished a new one will be constructed
                ElizaEngineAdapter engine;

                (engine, knowledge) = knowledge.GetOrAdd(e => !e.Eliza.Finished, k => new ElizaEngineAdapter(k, _script));

                // Get a response from eliza and pass it back
                var response = engine.Eliza.ProcessInput(message);

                IsComplete = engine.Eliza.Finished;
                return(response, knowledge);
            }