using BotSharp.Platform.Models;
using BotSharp.Platform.Models.AiRequest;
using BotSharp.Platform.Models.AiResponse;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
namespace BotSharp.Platform.Abstraction
{
///
/// Platform abstraction
/// Implement this interface to build a Chatbot platform
///
public interface IPlatformBuilder
{
///
/// Agent storage
///
IAgentStorage Storage { get; set; }
///
/// Parse options for the incoming text or voice request from the sender.
///
// DialogRequestOptions RequestOptions { get; set; }
///
/// Convert platform specific data to standard training corpus format
///
///
///
TrainingCorpus ExtractorCorpus(TAgent agent);
///
/// Load agent from files.
/// There must contain a meta.json
///
///
///
TAgent LoadAgentFromFile(string dataDir) where TImporter : IAgentImporter, new();
///
///
///
///
///
///
bool SaveAgent(TAgent agent);
Task Train(TAgent agent, TrainingCorpus corpus);
AiResponse TextRequest(AiRequest request);
}
}