api定义

This commit is contained in:
2025-10-15 14:03:58 +08:00
parent 67e7432837
commit ab22fe1008
22 changed files with 2490 additions and 7 deletions

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}