Exemple #1
0
        public async Task <ReasoningTaskResource> CreateTaskAsync(CreateReasoningTaskResource reasoningTaskResource)
        {
            var knowledgeBase = await _knowledgeBaseRepository.GetAsync(reasoningTaskResource.KnowledgeBaseId);

            if (knowledgeBase == null)
            {
                var message = $"Couldn't find knowledge base with id `{reasoningTaskResource.KnowledgeBaseId}`";

                _logger.LogInformation(message);
                throw new Exception(message);
            }

            var reasoningProcess = ReasoningProcessFactory.CreateInstance(
                await _knowledgeBaseRepository.GetAsync(reasoningTaskResource.KnowledgeBaseId),
                reasoningTaskResource.ReasoningMethod,
                reasoningTaskResource.Hypothesis
                );

            var result = ReasoningTaskFactory.CreateInstance(
                _reasoningService.ClearReasoning(reasoningProcess),
                reasoningTaskResource.Description,
                reasoningTaskResource.Sources,
                reasoningTaskResource.Actions
                );

            _reasoningTaskRepository.Create(result);

            _logger.LogInformation($"Reasoning task {result.Id} has been created");

            _reasoningTaskResolver.EnqueueReasoningTask(result.Id);

            return(GetReasoningTaskResource(result));
        }
Exemple #2
0
        public async Task <KnowledgeBaseResource> GetAsync(string id)
        {
            _logger.LogInformation($"Trying to get knowledge base {id}");

            var knowledgeBase = await _knowledgeBaseRepository.GetAsync(id);

            if (knowledgeBase == null)
            {
                _logger.LogWarning($"Couldn't find knowledge base {id}");

                return(null);
            }

            _logger.LogInformation($"Knowledge base {id} has been found");

            return(new KnowledgeBaseResource {
                KnowledgeBase = knowledgeBase
            });
        }