网站首页 网站源码
namespace Dpz.Core.Service.RepositoryService;
/// <summary>
/// AI聊天服务接口
/// </summary>
public interface IAiChatService
{
/// <summary>
/// 创建新会话
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="sessionId"></param>
/// <param name="sessionName">会话名称</param>
/// <param name="modelType">当前会话的模型</param>
/// <returns>会话信息</returns>
Task<VmAiChatSession> CreateSessionAsync(
string userId,
string sessionId,
string sessionName,
string modelType
);
/// <summary>
/// 获取用户的会话列表
/// </summary>
/// <param name="userId">用户ID</param>
/// <returns>会话列表</returns>
Task<List<VmAiChatSession>> GetSessionListAsync(string userId);
/// <summary>
/// 删除会话(软删除)
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="sessionId">会话ID</param>
/// <returns></returns>
Task<bool> DeleteSessionAsync(string userId, string sessionId);
/// <summary>
/// 获取会话详情
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="sessionId">会话ID</param>
/// <returns>会话信息</returns>
Task<VmAiChatSession?> GetSessionAsync(string userId, string sessionId);
/// <summary>
/// 保存AI聊天记录(用户消息)
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="sessionId">会话ID</param>
/// <param name="message">消息内容</param>
/// <param name="sender">发送人信息</param>
/// <returns></returns>
Task SaveUserMessageAsync(string userId, string sessionId, string message, VmUserInfo sender);
/// <summary>
/// 保存AI聊天记录(AI回复)
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="sessionId">会话ID</param>
/// <param name="message">消息内容</param>
/// <param name="aiUser">AI用户信息</param>
/// <returns></returns>
Task SaveAiMessageAsync(string userId, string sessionId, string message, VmUserInfo aiUser);
/// <summary>
/// 获取会话的聊天记录
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="sessionId">会话ID</param>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页条数</param>
/// <returns>聊天记录</returns>
Task<IPagedList<VmAiChatRecord>> GetSessionMessagesAsync(
string sessionId,
int pageIndex,
int pageSize
);
/// <summary>
/// 更新会话名称
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="sessionId">会话ID</param>
/// <param name="newName">新名称</param>
/// <returns></returns>
Task<bool> UpdateSessionNameAsync(string userId, string sessionId, string newName);
/// <summary>
/// 更新会话的AI模型类型
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="sessionId">会话ID</param>
/// <param name="modelType">模型类型(AiModel枚举的整数值转换为字符串)</param>
/// <returns></returns>
Task<bool> UpdateSessionModelTypeAsync(string userId, string sessionId, string modelType);
/// <summary>
/// 删除聊天记录(软删除)
/// </summary>
/// <param name="messageId">消息ID</param>
/// <param name="account">账号</param>
/// <returns></returns>
Task<ResponseResult> DeleteMessageAsync(string messageId, string account);
}
这个接口定义了一个AI聊天服务的契约,包含了管理AI聊天会话和消息记录的核心功能。以下是各方法的详细说明:
CreateSessionAsync - 创建一个新的AI聊天会话
GetSessionListAsync - 获取用户的所有会话列表
DeleteSessionAsync - 软删除一个会话
GetSessionAsync - 获取特定会话的详细信息
UpdateSessionNameAsync - 更新会话名称
UpdateSessionModelTypeAsync - 更新会话使用的AI模型类型
SaveUserMessageAsync - 保存用户发送的消息
SaveAiMessageAsync - 保存AI回复的消息
GetSessionMessagesAsync - 获取会话的聊天记录(分页)
DeleteMessageAsync - 软删除一条消息
这个接口为AI聊天功能提供了一个完整的数据访问层抽象,可以有不同的实现方式(如数据库存储、内存存储等)。
