api定义
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
package org.xyzh.api.ai.agent;
|
||||
|
||||
import org.xyzh.common.core.domain.ResultDomain;
|
||||
import org.xyzh.common.dto.ai.TbAiAgentConfig;
|
||||
|
||||
|
||||
/**
|
||||
* @description 智能体配置服务接口
|
||||
* @filename AiAgentConfigService.java
|
||||
* @author system
|
||||
* @copyright xyzh
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
public interface AiAgentConfigService {
|
||||
|
||||
/**
|
||||
* @description 获取智能体配置列表
|
||||
* @param status 状态(可选)
|
||||
* @return ResultDomain<TbAiAgentConfig> 配置列表
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiAgentConfig> getAgentConfigList(Integer status);
|
||||
|
||||
/**
|
||||
* @description 根据ID获取智能体配置详情
|
||||
* @param configID 配置ID
|
||||
* @return ResultDomain<TbAiAgentConfig> 配置详情
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiAgentConfig> getAgentConfigById(String configID);
|
||||
|
||||
/**
|
||||
* @description 创建智能体配置
|
||||
* @param config 配置信息
|
||||
* @return ResultDomain<TbAiAgentConfig> 创建结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiAgentConfig> createAgentConfig(TbAiAgentConfig config);
|
||||
|
||||
/**
|
||||
* @description 更新智能体配置
|
||||
* @param config 配置信息
|
||||
* @return ResultDomain<TbAiAgentConfig> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiAgentConfig> updateAgentConfig(TbAiAgentConfig config);
|
||||
|
||||
/**
|
||||
* @description 删除智能体配置
|
||||
* @param configID 配置ID
|
||||
* @return ResultDomain<Boolean> 删除结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<Boolean> deleteAgentConfig(String configID);
|
||||
|
||||
/**
|
||||
* @description 更新智能体状态
|
||||
* @param configID 配置ID
|
||||
* @param status 状态
|
||||
* @return ResultDomain<TbAiAgentConfig> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiAgentConfig> updateAgentStatus(String configID, Integer status);
|
||||
|
||||
/**
|
||||
* @description 更新智能体模型配置
|
||||
* @param configID 配置ID
|
||||
* @param modelName 模型名称
|
||||
* @param modelProvider 模型提供商
|
||||
* @param temperature 温度值
|
||||
* @param maxTokens 最大tokens
|
||||
* @param topP Top P值
|
||||
* @return ResultDomain<TbAiAgentConfig> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiAgentConfig> updateAgentModel(String configID, String modelName, String modelProvider,
|
||||
java.math.BigDecimal temperature, Integer maxTokens, java.math.BigDecimal topP);
|
||||
|
||||
/**
|
||||
* @description 更新智能体系统提示词
|
||||
* @param configID 配置ID
|
||||
* @param systemPrompt 系统提示词
|
||||
* @return ResultDomain<TbAiAgentConfig> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiAgentConfig> updateAgentPrompt(String configID, String systemPrompt);
|
||||
|
||||
/**
|
||||
* @description 获取启用的智能体配置
|
||||
* @return ResultDomain<TbAiAgentConfig> 启用的配置列表
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiAgentConfig> getActiveAgentConfigs();
|
||||
|
||||
/**
|
||||
* @description 根据名称搜索智能体配置
|
||||
* @param name 智能体名称
|
||||
* @return ResultDomain<TbAiAgentConfig> 搜索结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiAgentConfig> searchAgentConfigsByName(String name);
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
package org.xyzh.api.ai.conversation;
|
||||
|
||||
import org.xyzh.common.core.domain.ResultDomain;
|
||||
import org.xyzh.common.dto.ai.TbAiConversation;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @description AI对话会话服务接口
|
||||
* @filename AiConversationService.java
|
||||
* @author system
|
||||
* @copyright xyzh
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
public interface AiConversationService {
|
||||
|
||||
/**
|
||||
* @description 获取用户会话列表
|
||||
* @param userID 用户ID
|
||||
* @param status 状态(可选)
|
||||
* @return ResultDomain<TbAiConversation> 会话列表
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiConversation> getUserConversations(String userID, Integer status);
|
||||
|
||||
/**
|
||||
* @description 根据ID获取会话详情
|
||||
* @param conversationID 会话ID
|
||||
* @return ResultDomain<TbAiConversation> 会话详情
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiConversation> getConversationById(String conversationID);
|
||||
|
||||
/**
|
||||
* @description 创建新会话
|
||||
* @param userID 用户ID
|
||||
* @param title 会话标题
|
||||
* @return ResultDomain<TbAiConversation> 创建结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiConversation> createConversation(String userID, String title);
|
||||
|
||||
/**
|
||||
* @description 更新会话标题
|
||||
* @param conversationID 会话ID
|
||||
* @param title 新标题
|
||||
* @return ResultDomain<TbAiConversation> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiConversation> updateConversationTitle(String conversationID, String title);
|
||||
|
||||
/**
|
||||
* @description 更新会话状态
|
||||
* @param conversationID 会话ID
|
||||
* @param status 状态
|
||||
* @return ResultDomain<TbAiConversation> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiConversation> updateConversationStatus(String conversationID, Integer status);
|
||||
|
||||
/**
|
||||
* @description 结束会话
|
||||
* @param conversationID 会话ID
|
||||
* @return ResultDomain<TbAiConversation> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiConversation> endConversation(String conversationID);
|
||||
|
||||
/**
|
||||
* @description 删除会话
|
||||
* @param conversationID 会话ID
|
||||
* @return ResultDomain<Boolean> 删除结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<Boolean> deleteConversation(String conversationID);
|
||||
|
||||
/**
|
||||
* @description 更新会话消息统计
|
||||
* @param conversationID 会话ID
|
||||
* @param messageCount 消息数量
|
||||
* @param lastMessageTime 最后消息时间
|
||||
* @return ResultDomain<TbAiConversation> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiConversation> updateConversationStats(String conversationID, Integer messageCount, Date lastMessageTime);
|
||||
|
||||
/**
|
||||
* @description 获取用户会话统计
|
||||
* @param userID 用户ID
|
||||
* @param startDate 开始日期(可选)
|
||||
* @param endDate 结束日期(可选)
|
||||
* @return ResultDomain<TbAiConversation> 会话统计
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiConversation> getUserConversationStats(String userID, Date startDate, Date endDate);
|
||||
|
||||
/**
|
||||
* @description 清空用户所有会话
|
||||
* @param userID 用户ID
|
||||
* @return ResultDomain<Boolean> 清空结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<Boolean> clearUserConversations(String userID);
|
||||
|
||||
/**
|
||||
* @description 获取最近会话
|
||||
* @param userID 用户ID
|
||||
* @param limit 限制数量
|
||||
* @return ResultDomain<TbAiConversation> 最近会话列表
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiConversation> getRecentConversations(String userID, Integer limit);
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
package org.xyzh.api.ai.file;
|
||||
|
||||
import org.xyzh.common.core.domain.ResultDomain;
|
||||
import org.xyzh.common.dto.ai.TbAiUploadFile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description AI文件上传服务接口
|
||||
* @filename AiUploadFileService.java
|
||||
* @author system
|
||||
* @copyright xyzh
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
public interface AiUploadFileService {
|
||||
|
||||
/**
|
||||
* @description 获取用户上传文件列表
|
||||
* @param userID 用户ID
|
||||
* @param conversationID 会话ID(可选)
|
||||
* @param status 状态(可选)
|
||||
* @return ResultDomain<TbAiUploadFile> 文件列表
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUploadFile> getUserFiles(String userID, String conversationID, Integer status);
|
||||
|
||||
/**
|
||||
* @description 根据ID获取文件详情
|
||||
* @param fileID 文件ID
|
||||
* @return ResultDomain<TbAiUploadFile> 文件详情
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUploadFile> getFileById(String fileID);
|
||||
|
||||
/**
|
||||
* @description 创建文件记录
|
||||
* @param file 文件信息
|
||||
* @return ResultDomain<TbAiUploadFile> 创建结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUploadFile> createFile(TbAiUploadFile file);
|
||||
|
||||
/**
|
||||
* @description 更新文件状态
|
||||
* @param fileID 文件ID
|
||||
* @param status 状态
|
||||
* @return ResultDomain<TbAiUploadFile> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUploadFile> updateFileStatus(String fileID, Integer status);
|
||||
|
||||
/**
|
||||
* @description 更新文件提取文本
|
||||
* @param fileID 文件ID
|
||||
* @param extractedText 提取的文本
|
||||
* @return ResultDomain<TbAiUploadFile> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUploadFile> updateFileExtractedText(String fileID, String extractedText);
|
||||
|
||||
/**
|
||||
* @description 删除文件
|
||||
* @param fileID 文件ID
|
||||
* @return ResultDomain<Boolean> 删除结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<Boolean> deleteFile(String fileID);
|
||||
|
||||
/**
|
||||
* @description 清空会话文件
|
||||
* @param conversationID 会话ID
|
||||
* @return ResultDomain<Boolean> 清空结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<Boolean> clearConversationFiles(String conversationID);
|
||||
|
||||
/**
|
||||
* @description 清空用户文件
|
||||
* @param userID 用户ID
|
||||
* @return ResultDomain<Boolean> 清空结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<Boolean> clearUserFiles(String userID);
|
||||
|
||||
/**
|
||||
* @description 获取文件统计
|
||||
* @param userID 用户ID
|
||||
* @param conversationID 会话ID(可选)
|
||||
* @return ResultDomain<TbAiUploadFile> 文件统计
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUploadFile> getFileStatistics(String userID, String conversationID);
|
||||
|
||||
/**
|
||||
* @description 根据文件名搜索文件
|
||||
* @param userID 用户ID
|
||||
* @param fileName 文件名
|
||||
* @return ResultDomain<TbAiUploadFile> 搜索结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUploadFile> searchFilesByName(String userID, String fileName);
|
||||
|
||||
/**
|
||||
* @description 根据文件类型获取文件
|
||||
* @param userID 用户ID
|
||||
* @param fileType 文件类型
|
||||
* @return ResultDomain<TbAiUploadFile> 文件列表
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUploadFile> getFilesByType(String userID, String fileType);
|
||||
|
||||
/**
|
||||
* @description 批量删除文件
|
||||
* @param fileIDs 文件ID列表
|
||||
* @return ResultDomain<Boolean> 删除结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<Boolean> batchDeleteFiles(List<String> fileIDs);
|
||||
|
||||
/**
|
||||
* @description 检查文件是否存在
|
||||
* @param userID 用户ID
|
||||
* @param fileName 文件名
|
||||
* @param filePath 文件路径
|
||||
* @return ResultDomain<Boolean> 是否存在
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<Boolean> checkFileExists(String userID, String fileName, String filePath);
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
package org.xyzh.api.ai.knowledge;
|
||||
|
||||
import org.xyzh.common.core.domain.ResultDomain;
|
||||
import org.xyzh.common.dto.ai.TbAiKnowledge;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description AI知识库服务接口
|
||||
* @filename AiKnowledgeService.java
|
||||
* @author system
|
||||
* @copyright xyzh
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
public interface AiKnowledgeService {
|
||||
|
||||
/**
|
||||
* @description 获取知识库列表
|
||||
* @param filter 过滤条件
|
||||
* @return ResultDomain<TbAiKnowledge> 知识库列表
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiKnowledge> getKnowledgeList(TbAiKnowledge filter);
|
||||
|
||||
/**
|
||||
* @description 根据ID获取知识详情
|
||||
* @param knowledgeID 知识ID
|
||||
* @return ResultDomain<TbAiKnowledge> 知识详情
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiKnowledge> getKnowledgeById(String knowledgeID);
|
||||
|
||||
/**
|
||||
* @description 创建知识
|
||||
* @param knowledge 知识信息
|
||||
* @return ResultDomain<TbAiKnowledge> 创建结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiKnowledge> createKnowledge(TbAiKnowledge knowledge);
|
||||
|
||||
/**
|
||||
* @description 更新知识
|
||||
* @param knowledge 知识信息
|
||||
* @return ResultDomain<TbAiKnowledge> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiKnowledge> updateKnowledge(TbAiKnowledge knowledge);
|
||||
|
||||
/**
|
||||
* @description 删除知识
|
||||
* @param knowledgeID 知识ID
|
||||
* @return ResultDomain<Boolean> 删除结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<Boolean> deleteKnowledge(String knowledgeID);
|
||||
|
||||
/**
|
||||
* @description 更新知识状态
|
||||
* @param knowledgeID 知识ID
|
||||
* @param status 状态
|
||||
* @return ResultDomain<TbAiKnowledge> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiKnowledge> updateKnowledgeStatus(String knowledgeID, Integer status);
|
||||
|
||||
/**
|
||||
* @description 更新知识向量ID
|
||||
* @param knowledgeID 知识ID
|
||||
* @param vectorID 向量ID
|
||||
* @return ResultDomain<TbAiKnowledge> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiKnowledge> updateKnowledgeVector(String knowledgeID, String vectorID);
|
||||
|
||||
/**
|
||||
* @description 搜索知识
|
||||
* @param keyword 关键词
|
||||
* @param category 分类(可选)
|
||||
* @param status 状态(可选)
|
||||
* @return ResultDomain<TbAiKnowledge> 搜索结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiKnowledge> searchKnowledge(String keyword, String category, Integer status);
|
||||
|
||||
/**
|
||||
* @description 根据分类获取知识
|
||||
* @param category 分类
|
||||
* @return ResultDomain<TbAiKnowledge> 知识列表
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiKnowledge> getKnowledgeByCategory(String category);
|
||||
|
||||
/**
|
||||
* @description 根据标签获取知识
|
||||
* @param tag 标签
|
||||
* @return ResultDomain<TbAiKnowledge> 知识列表
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiKnowledge> getKnowledgeByTag(String tag);
|
||||
|
||||
/**
|
||||
* @description 向量检索知识
|
||||
* @param query 查询内容
|
||||
* @param limit 限制数量
|
||||
* @return ResultDomain<TbAiKnowledge> 检索结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiKnowledge> vectorSearchKnowledge(String query, Integer limit);
|
||||
|
||||
/**
|
||||
* @description 批量删除知识
|
||||
* @param knowledgeIDs 知识ID列表
|
||||
* @return ResultDomain<Boolean> 删除结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<Boolean> batchDeleteKnowledge(List<String> knowledgeIDs);
|
||||
|
||||
/**
|
||||
* @description 获取知识统计
|
||||
* @param category 分类(可选)
|
||||
* @return ResultDomain<TbAiKnowledge> 知识统计
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiKnowledge> getKnowledgeStatistics(String category);
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
package org.xyzh.api.ai.message;
|
||||
|
||||
import org.xyzh.common.core.domain.ResultDomain;
|
||||
import org.xyzh.common.dto.ai.TbAiMessage;
|
||||
|
||||
|
||||
/**
|
||||
* @description AI对话消息服务接口
|
||||
* @filename AiMessageService.java
|
||||
* @author system
|
||||
* @copyright xyzh
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
public interface AiMessageService {
|
||||
|
||||
/**
|
||||
* @description 获取会话消息列表
|
||||
* @param conversationID 会话ID
|
||||
* @param limit 限制数量(可选)
|
||||
* @return ResultDomain<TbAiMessage> 消息列表
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiMessage> getConversationMessages(String conversationID, Integer limit);
|
||||
|
||||
/**
|
||||
* @description 根据ID获取消息详情
|
||||
* @param messageID 消息ID
|
||||
* @return ResultDomain<TbAiMessage> 消息详情
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiMessage> getMessageById(String messageID);
|
||||
|
||||
/**
|
||||
* @description 发送用户消息
|
||||
* @param conversationID 会话ID
|
||||
* @param userID 用户ID
|
||||
* @param content 消息内容
|
||||
* @param fileIDs 关联文件ID(可选)
|
||||
* @return ResultDomain<TbAiMessage> 创建结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiMessage> sendUserMessage(String conversationID, String userID, String content, String fileIDs);
|
||||
|
||||
/**
|
||||
* @description 发送助手消息
|
||||
* @param conversationID 会话ID
|
||||
* @param userID 用户ID
|
||||
* @param content 消息内容
|
||||
* @param knowledgeIDs 引用知识ID(可选)
|
||||
* @param tokenCount Token数量
|
||||
* @return ResultDomain<TbAiMessage> 创建结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiMessage> sendAssistantMessage(String conversationID, String userID, String content, String knowledgeIDs, Integer tokenCount);
|
||||
|
||||
/**
|
||||
* @description 发送系统消息
|
||||
* @param conversationID 会话ID
|
||||
* @param content 消息内容
|
||||
* @return ResultDomain<TbAiMessage> 创建结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiMessage> sendSystemMessage(String conversationID, String content);
|
||||
|
||||
/**
|
||||
* @description 更新消息内容
|
||||
* @param messageID 消息ID
|
||||
* @param content 新内容
|
||||
* @return ResultDomain<TbAiMessage> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiMessage> updateMessageContent(String messageID, String content);
|
||||
|
||||
/**
|
||||
* @description 更新消息Token数量
|
||||
* @param messageID 消息ID
|
||||
* @param tokenCount Token数量
|
||||
* @return ResultDomain<TbAiMessage> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiMessage> updateMessageTokens(String messageID, Integer tokenCount);
|
||||
|
||||
/**
|
||||
* @description 删除消息
|
||||
* @param messageID 消息ID
|
||||
* @return ResultDomain<Boolean> 删除结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<Boolean> deleteMessage(String messageID);
|
||||
|
||||
/**
|
||||
* @description 清空会话消息
|
||||
* @param conversationID 会话ID
|
||||
* @return ResultDomain<Boolean> 清空结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<Boolean> clearConversationMessages(String conversationID);
|
||||
|
||||
/**
|
||||
* @description 获取用户消息统计
|
||||
* @param userID 用户ID
|
||||
* @param conversationID 会话ID(可选)
|
||||
* @return ResultDomain<TbAiMessage> 消息统计
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiMessage> getUserMessageStats(String userID, String conversationID);
|
||||
|
||||
/**
|
||||
* @description 获取会话最后一条消息
|
||||
* @param conversationID 会话ID
|
||||
* @return ResultDomain<TbAiMessage> 最后消息
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiMessage> getLastMessage(String conversationID);
|
||||
|
||||
/**
|
||||
* @description 搜索消息内容
|
||||
* @param userID 用户ID
|
||||
* @param keyword 关键词
|
||||
* @param conversationID 会话ID(可选)
|
||||
* @return ResultDomain<TbAiMessage> 搜索结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiMessage> searchMessages(String userID, String keyword, String conversationID);
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
package org.xyzh.api.ai.statistics;
|
||||
|
||||
import org.xyzh.common.core.domain.ResultDomain;
|
||||
import org.xyzh.common.dto.ai.TbAiUsageStatistics;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @description AI使用统计服务接口
|
||||
* @filename AiUsageStatisticsService.java
|
||||
* @author system
|
||||
* @copyright xyzh
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
public interface AiUsageStatisticsService {
|
||||
|
||||
/**
|
||||
* @description 获取用户使用统计
|
||||
* @param userID 用户ID
|
||||
* @param startDate 开始日期(可选)
|
||||
* @param endDate 结束日期(可选)
|
||||
* @return ResultDomain<TbAiUsageStatistics> 统计列表
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUsageStatistics> getUserStatistics(String userID, Date startDate, Date endDate);
|
||||
|
||||
/**
|
||||
* @description 获取指定日期的使用统计
|
||||
* @param userID 用户ID
|
||||
* @param statDate 统计日期
|
||||
* @return ResultDomain<TbAiUsageStatistics> 统计信息
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUsageStatistics> getDailyStatistics(String userID, Date statDate);
|
||||
|
||||
/**
|
||||
* @description 创建或更新使用统计
|
||||
* @param statistics 统计信息
|
||||
* @return ResultDomain<TbAiUsageStatistics> 创建/更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUsageStatistics> saveStatistics(TbAiUsageStatistics statistics);
|
||||
|
||||
/**
|
||||
* @description 更新使用统计
|
||||
* @param userID 用户ID
|
||||
* @param statDate 统计日期
|
||||
* @param conversationCount 会话数量
|
||||
* @param messageCount 消息数量
|
||||
* @param totalTokens 总Token数
|
||||
* @param fileCount 文件数量
|
||||
* @return ResultDomain<TbAiUsageStatistics> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUsageStatistics> updateStatistics(String userID, Date statDate, Integer conversationCount,
|
||||
Integer messageCount, Integer totalTokens, Integer fileCount);
|
||||
|
||||
/**
|
||||
* @description 增加会话数量
|
||||
* @param userID 用户ID
|
||||
* @param statDate 统计日期
|
||||
* @return ResultDomain<TbAiUsageStatistics> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUsageStatistics> incrementConversationCount(String userID, Date statDate);
|
||||
|
||||
/**
|
||||
* @description 增加消息数量
|
||||
* @param userID 用户ID
|
||||
* @param statDate 统计日期
|
||||
* @param tokenCount Token数量
|
||||
* @return ResultDomain<TbAiUsageStatistics> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUsageStatistics> incrementMessageCount(String userID, Date statDate, Integer tokenCount);
|
||||
|
||||
/**
|
||||
* @description 增加文件数量
|
||||
* @param userID 用户ID
|
||||
* @param statDate 统计日期
|
||||
* @return ResultDomain<TbAiUsageStatistics> 更新结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUsageStatistics> incrementFileCount(String userID, Date statDate);
|
||||
|
||||
/**
|
||||
* @description 获取使用排行榜
|
||||
* @param statDate 统计日期
|
||||
* @param limit 限制数量
|
||||
* @return ResultDomain<TbAiUsageStatistics> 排行榜
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUsageStatistics> getUsageRanking(Date statDate, Integer limit);
|
||||
|
||||
/**
|
||||
* @description 获取总体使用统计
|
||||
* @param startDate 开始日期
|
||||
* @param endDate 结束日期
|
||||
* @return ResultDomain<TbAiUsageStatistics> 总体统计
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUsageStatistics> getOverallStatistics(Date startDate, Date endDate);
|
||||
|
||||
/**
|
||||
* @description 获取用户使用趋势
|
||||
* @param userID 用户ID
|
||||
* @param days 天数
|
||||
* @return ResultDomain<TbAiUsageStatistics> 趋势数据
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUsageStatistics> getUserUsageTrend(String userID, Integer days);
|
||||
|
||||
/**
|
||||
* @description 删除使用统计
|
||||
* @param statisticsID 统计ID
|
||||
* @return ResultDomain<Boolean> 删除结果
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<Boolean> deleteStatistics(String statisticsID);
|
||||
|
||||
/**
|
||||
* @description 获取用户Token使用统计
|
||||
* @param userID 用户ID
|
||||
* @param startDate 开始日期
|
||||
* @param endDate 结束日期
|
||||
* @return ResultDomain<TbAiUsageStatistics> Token统计
|
||||
* @author system
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
ResultDomain<TbAiUsageStatistics> getUserTokenStatistics(String userID, Date startDate, Date endDate);
|
||||
}
|
||||
Reference in New Issue
Block a user