last ...
This commit is contained in:
@@ -1,10 +1,130 @@
|
||||
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
|
||||
{
|
||||
/// <summary>
|
||||
/// Provide Ai Capabilities Using AI Service ...
|
||||
/// using User Data Info ...
|
||||
/// </summary>
|
||||
public interface IXAiProvider
|
||||
{
|
||||
/// <summary>
|
||||
/// Ai Service for Getting Features ...
|
||||
/// </summary>
|
||||
IXAIService AiService { get; }
|
||||
|
||||
//
|
||||
#region Helpers ...
|
||||
/// <summary>
|
||||
/// Converts Entity to Dto ...
|
||||
/// <see cref="XAiProjectDto"/>
|
||||
/// </summary>
|
||||
/// <param name="entity"><see cref="XAiProject"/></param>
|
||||
/// <returns></returns>
|
||||
Task<XAiProjectDto> ToDto(XAiProject entity);
|
||||
|
||||
/// <summary>
|
||||
/// Converts Entity to Dto ...
|
||||
/// <see cref="XAiMessageDto"/>
|
||||
/// </summary>
|
||||
/// <param name="entity"><see cref="XAiMessage"/></param>
|
||||
/// <returns></returns>
|
||||
Task<XAiMessageDto> ToDto(XAiMessage entity);
|
||||
|
||||
/// <summary>
|
||||
/// Converts Entity to Dto ...
|
||||
/// <see cref="XAiConversationDto"/>
|
||||
/// </summary>
|
||||
/// <param name="entity"><see cref="XAiConversation"/></param>
|
||||
/// <returns></returns>
|
||||
Task<XAiConversationDto> ToDto(XAiConversation entity);
|
||||
|
||||
/// <summary>
|
||||
/// Converts a List of Entities to Dtos ...
|
||||
/// <see cref="XAiProjectDto"/>
|
||||
/// </summary>
|
||||
/// <param name="entities"><see cref="XAiProject"/></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<XAiProjectDto>> ToDtos(IEnumerable<XAiProject> entities);
|
||||
|
||||
/// <summary>
|
||||
/// Converts a List of Entities to Dtos ...
|
||||
/// <see cref="XAiMessageDto"/>
|
||||
/// </summary>
|
||||
/// <param name="entities"><see cref="XAiMessage"/></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<XAiMessageDto>> ToDtos(IEnumerable<XAiMessage> entities);
|
||||
|
||||
/// <summary>
|
||||
/// Converts a List of Entities to Dtos ...
|
||||
/// <see cref="XAiConversationDto"/>
|
||||
/// </summary>
|
||||
/// <param name="entities"><see cref="XAiConversation"/></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<XAiConversationDto>> ToDtos(IEnumerable<XAiConversation> entities);
|
||||
|
||||
/// <summary>
|
||||
/// Converts a QueryResult of Entities to Dtos ...
|
||||
/// <see cref="XAiProjectDto"/>
|
||||
/// </summary>
|
||||
/// <param name="queryResult"><see cref="XAiProject"/></param>
|
||||
/// <returns></returns>
|
||||
Task<XQueryResult<XAiProjectDto>> ToDtoQueryResult(XQueryResult<XAiProject> queryResult);
|
||||
|
||||
/// <summary>
|
||||
/// Converts a QueryResult of Entities to Dtos ...
|
||||
/// <see cref="XAiMessageDto"/>
|
||||
/// </summary>
|
||||
/// <param name="queryResult"><see cref="XAiMessage"/></param>
|
||||
/// <returns></returns>
|
||||
Task<XQueryResult<XAiMessageDto>> ToDtoQueryResult(XQueryResult<XAiMessage> queryResult);
|
||||
|
||||
/// <summary>
|
||||
/// Converts a QueryResult of Entities to Dtos ...
|
||||
/// <see cref="XAiConversationDto"/>
|
||||
/// </summary>
|
||||
/// <param name="queryResult"><see cref="XAiConversation"/></param>
|
||||
/// <returns></returns>
|
||||
Task<XQueryResult<XAiConversationDto>> ToDtoQueryResult(XQueryResult<XAiConversation> queryResult);
|
||||
|
||||
/// <summary>
|
||||
/// Check Permission for Ai Actions ...
|
||||
/// </summary>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> HasPermission(
|
||||
XUserClaimsInfoDto userInfo
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// Prepare Prompt ...
|
||||
/// </summary>
|
||||
/// <param name="prompt"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <returns></returns>
|
||||
Task<string> PreparePrompt(
|
||||
string prompt,
|
||||
XUserClaimsInfoDto userInfo
|
||||
);
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Ask a Question ...
|
||||
/// </summary>
|
||||
/// <param name="prompt"></param>
|
||||
/// <param name="conversationId"></param>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <returns></returns>
|
||||
Task<XAiMessageDto> Ask(
|
||||
string prompt,
|
||||
Guid conversationId,
|
||||
XUserClaimsInfoDto userInfo
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user