using System; using System.Collections.Generic; using System.Threading.Tasks; using xAiApi.AI.Models.Entities; using xAiModels.Models; using xIdentityModels.Models; using xModels.Dtos; namespace xAiApi.AI.Interfaces { /// /// Provide Ai Capabilities Using AI Service ... /// using User Data Info ... /// public interface IXAiProvider { /// /// Ai Service for Getting Features ... /// IXAIService AiService { get; } // #region Helpers ... /// /// Converts Entity to Dto ... /// /// /// /// Task ToDto(XAiProject entity); /// /// Converts Entity to Dto ... /// /// /// /// Task ToDto(XAiMessage entity); /// /// Converts Entity to Dto ... /// /// /// /// Task ToDto(XAiConversation entity); /// /// Converts a List of Entities to Dtos ... /// /// /// /// Task> ToDtos(IEnumerable entities); /// /// Converts a List of Entities to Dtos ... /// /// /// /// Task> ToDtos(IEnumerable entities); /// /// Converts a List of Entities to Dtos ... /// /// /// /// Task> ToDtos(IEnumerable entities); /// /// Converts a QueryResult of Entities to Dtos ... /// /// /// /// Task> ToDtoQueryResult(XQueryResult queryResult); /// /// Converts a QueryResult of Entities to Dtos ... /// /// /// /// Task> ToDtoQueryResult(XQueryResult queryResult); /// /// Converts a QueryResult of Entities to Dtos ... /// /// /// /// Task> ToDtoQueryResult(XQueryResult queryResult); /// /// Check Permission for Ai Actions ... /// /// /// Task HasPermission( XUserClaimsInfoDto userInfo ); /// /// Prepare Prompt ... /// /// /// /// Task PreparePrompt( string prompt, XUserClaimsInfoDto userInfo ); #endregion /// /// Ask a Question ... /// /// /// /// /// Task Ask( string prompt, Guid conversationId, XUserClaimsInfoDto userInfo ); } }