网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
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分析的结果,请根据实际情况进行判断。

IAiChatService 接口说明

这个接口定义了一个AI聊天服务的契约,包含了管理AI聊天会话和消息记录的核心功能。以下是各方法的详细说明:

会话管理功能

  1. CreateSessionAsync - 创建一个新的AI聊天会话

    • 参数:用户ID、会话ID、会话名称、模型类型
    • 返回:新创建的会话信息对象
  2. GetSessionListAsync - 获取用户的所有会话列表

    • 参数:用户ID
    • 返回:该用户的会话列表
  3. DeleteSessionAsync - 软删除一个会话

    • 参数:用户ID、会话ID
    • 返回:操作是否成功的布尔值
  4. GetSessionAsync - 获取特定会话的详细信息

    • 参数:用户ID、会话ID
    • 返回:会话信息对象(可能为null)
  5. UpdateSessionNameAsync - 更新会话名称

    • 参数:用户ID、会话ID、新名称
    • 返回:操作是否成功的布尔值
  6. UpdateSessionModelTypeAsync - 更新会话使用的AI模型类型

    • 参数:用户ID、会话ID、模型类型
    • 返回:操作是否成功的布尔值

消息管理功能

  1. SaveUserMessageAsync - 保存用户发送的消息

    • 参数:用户ID、会话ID、消息内容、发送者信息
    • 无返回值
  2. SaveAiMessageAsync - 保存AI回复的消息

    • 参数:用户ID、会话ID、消息内容、AI用户信息
    • 无返回值
  3. GetSessionMessagesAsync - 获取会话的聊天记录(分页)

    • 参数:会话ID、页码、每页大小
    • 返回:分页的聊天记录列表
  4. DeleteMessageAsync - 软删除一条消息

    • 参数:消息ID、账号
    • 返回:操作结果对象

设计特点

  1. 所有方法都是异步的(返回Task)
  2. 使用软删除机制,保留数据但标记为已删除
  3. 会话和消息管理分离,便于扩展
  4. 支持分页获取聊天记录
  5. 使用强类型对象(VmAiChatSession、VmAiChatRecord等)传递数据

这个接口为AI聊天功能提供了一个完整的数据访问层抽象,可以有不同的实现方式(如数据库存储、内存存储等)。

loading