dify
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
/**
|
||||
* @description 智能体相关类型定义
|
||||
* @author yslg
|
||||
* @since 2025-10-15
|
||||
* @description AI模块类型定义
|
||||
* @author AI Assistant
|
||||
* @since 2025-11-04
|
||||
*/
|
||||
|
||||
import { BaseDTO } from '../base';
|
||||
import { PageParam } from '../base';
|
||||
|
||||
/**
|
||||
* 智能体配置实体
|
||||
@@ -14,18 +15,24 @@ export interface AiAgentConfig extends BaseDTO {
|
||||
name?: string;
|
||||
/** 智能体头像 */
|
||||
avatar?: string;
|
||||
/** 智能体描述 */
|
||||
description?: string;
|
||||
/** 系统提示词 */
|
||||
systemPrompt?: string;
|
||||
/** 模型名称 */
|
||||
modelName?: string;
|
||||
/** 模型提供商 */
|
||||
modelProvider?: string;
|
||||
/** 温度值 */
|
||||
/** 温度值(0.0-1.0) */
|
||||
temperature?: number;
|
||||
/** 最大tokens */
|
||||
maxTokens?: number;
|
||||
/** Top P值 */
|
||||
topP?: number;
|
||||
/** Dify应用ID */
|
||||
difyAppId?: string;
|
||||
/** Dify API Key */
|
||||
difyApiKey?: string;
|
||||
/** 状态(0禁用 1启用) */
|
||||
status?: number;
|
||||
/** 创建者 */
|
||||
@@ -34,18 +41,84 @@ export interface AiAgentConfig extends BaseDTO {
|
||||
updater?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* AI知识库实体
|
||||
*/
|
||||
export interface AiKnowledge extends BaseDTO {
|
||||
/** 知识库名称 */
|
||||
name?: string;
|
||||
/** 知识库描述 */
|
||||
description?: string;
|
||||
/** 索引方式(high_quality=高质量, economy=经济) */
|
||||
indexingTechnique?: string;
|
||||
/** Embedding模型 */
|
||||
embeddingModel?: string;
|
||||
/** Dify数据集ID */
|
||||
difyDatasetId?: string;
|
||||
/** 同步状态(0未同步 1已同步 2同步失败) */
|
||||
syncStatus?: number;
|
||||
/** 文档数量 */
|
||||
documentCount?: number;
|
||||
/** 字符数 */
|
||||
characterCount?: number;
|
||||
/** 创建者部门 */
|
||||
creatorDept?: string;
|
||||
/** 状态(0禁用 1启用) */
|
||||
status?: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* AI上传文件实体
|
||||
*/
|
||||
export interface AiUploadFile extends BaseDTO {
|
||||
/** 知识库ID */
|
||||
knowledgeId?: string;
|
||||
/** 文件名 */
|
||||
fileName?: string;
|
||||
/** 文件路径 */
|
||||
filePath?: string;
|
||||
/** 文件大小(字节) */
|
||||
fileSize?: number;
|
||||
/** 文件类型(MIME类型) */
|
||||
fileType?: string;
|
||||
/** Dify文档ID */
|
||||
difyDocumentId?: string;
|
||||
/** Dify批次ID */
|
||||
difyBatchId?: string;
|
||||
/** 上传状态(0处理中 1成功 2失败) */
|
||||
uploadStatus?: number;
|
||||
/** 向量化状态(0待处理 1处理中 2已完成 3失败) */
|
||||
vectorStatus?: number;
|
||||
/** 分片数 */
|
||||
segmentCount?: number;
|
||||
/** 错误信息 */
|
||||
errorMessage?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 对话会话实体
|
||||
*/
|
||||
export interface AiConversation extends BaseDTO {
|
||||
/** 用户ID */
|
||||
userID?: string;
|
||||
/** 智能体ID */
|
||||
agentID?: string;
|
||||
/** 会话标题 */
|
||||
title?: string;
|
||||
/** 会话摘要 */
|
||||
summary?: string;
|
||||
/** Dify会话ID */
|
||||
difyConversationId?: string;
|
||||
/** 状态(0已结束 1进行中) */
|
||||
status?: number;
|
||||
/** 是否收藏 */
|
||||
isFavorite?: boolean;
|
||||
/** 是否置顶 */
|
||||
isPinned?: boolean;
|
||||
/** 消息数量 */
|
||||
messageCount?: number;
|
||||
/** Token总数 */
|
||||
totalTokens?: number;
|
||||
/** 最后消息时间 */
|
||||
lastMessageTime?: string;
|
||||
}
|
||||
@@ -58,6 +131,8 @@ export interface AiMessage extends BaseDTO {
|
||||
conversationID?: string;
|
||||
/** 用户ID */
|
||||
userID?: string;
|
||||
/** 智能体ID */
|
||||
agentID?: string;
|
||||
/** 角色(user用户 assistant助手 system系统) */
|
||||
role?: string;
|
||||
/** 消息内容 */
|
||||
@@ -66,54 +141,26 @@ export interface AiMessage extends BaseDTO {
|
||||
fileIDs?: string;
|
||||
/** 引用知识ID(JSON数组) */
|
||||
knowledgeIDs?: string;
|
||||
/** 知识库引用详情(JSON数组) */
|
||||
knowledgeRefs?: string;
|
||||
/** Token数量 */
|
||||
tokenCount?: number;
|
||||
/** Dify消息ID */
|
||||
difyMessageId?: string;
|
||||
/** 评分(1=好评,-1=差评) */
|
||||
rating?: number;
|
||||
/** 反馈内容 */
|
||||
feedback?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 知识库实体
|
||||
*/
|
||||
export interface AiKnowledge extends BaseDTO {
|
||||
/** 知识标题 */
|
||||
title?: string;
|
||||
/** 知识内容 */
|
||||
content?: string;
|
||||
/** 知识类型(1文本 2文件) */
|
||||
type?: number;
|
||||
/** 文件ID */
|
||||
fileID?: string;
|
||||
/** 状态(0禁用 1启用) */
|
||||
status?: number;
|
||||
/** 创建者 */
|
||||
creator?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传文件实体
|
||||
*/
|
||||
export interface AiUploadFile extends BaseDTO {
|
||||
/** 用户ID */
|
||||
userID?: string;
|
||||
/** 文件名 */
|
||||
fileName?: string;
|
||||
/** 文件路径 */
|
||||
filePath?: string;
|
||||
/** 文件大小 */
|
||||
fileSize?: number;
|
||||
/** 文件类型 */
|
||||
fileType?: string;
|
||||
/** 状态(0处理中 1成功 2失败) */
|
||||
status?: number;
|
||||
/** 错误信息 */
|
||||
errorMessage?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用统计实体
|
||||
* AI使用统计实体
|
||||
*/
|
||||
export interface AiUsageStatistics extends BaseDTO {
|
||||
/** 用户ID */
|
||||
userID?: string;
|
||||
/** 智能体ID */
|
||||
agentID?: string;
|
||||
/** 统计日期 */
|
||||
statisticsDate?: string;
|
||||
/** 对话次数 */
|
||||
@@ -122,6 +169,8 @@ export interface AiUsageStatistics extends BaseDTO {
|
||||
messageCount?: number;
|
||||
/** Token使用量 */
|
||||
tokenUsage?: number;
|
||||
/** 知识库查询次数 */
|
||||
knowledgeQueryCount?: number;
|
||||
/** 文件上传次数 */
|
||||
fileUploadCount?: number;
|
||||
}
|
||||
@@ -130,12 +179,14 @@ export interface AiUsageStatistics extends BaseDTO {
|
||||
* 对话请求参数
|
||||
*/
|
||||
export interface ChatRequest {
|
||||
/** 会话ID */
|
||||
conversationID?: string;
|
||||
/** 消息内容 */
|
||||
message?: string;
|
||||
/** 文件ID列表 */
|
||||
fileIDs?: string[];
|
||||
/** 智能体ID */
|
||||
agentId: string;
|
||||
/** 会话ID(可选,为空则创建新会话) */
|
||||
conversationId?: string;
|
||||
/** 用户问题 */
|
||||
query: string;
|
||||
/** 指定的知识库ID列表(可选) */
|
||||
knowledgeIds?: string[];
|
||||
/** 是否流式返回 */
|
||||
stream?: boolean;
|
||||
}
|
||||
@@ -145,7 +196,9 @@ export interface ChatRequest {
|
||||
*/
|
||||
export interface ChatResponse {
|
||||
/** 消息ID */
|
||||
messageID?: string;
|
||||
messageId?: string;
|
||||
/** 会话ID */
|
||||
conversationId?: string;
|
||||
/** 消息内容 */
|
||||
content?: string;
|
||||
/** Token使用量 */
|
||||
@@ -159,11 +212,243 @@ export interface ChatResponse {
|
||||
*/
|
||||
export interface FileUploadResponse {
|
||||
/** 文件ID */
|
||||
fileID?: string;
|
||||
fileId?: string;
|
||||
/** 文件名 */
|
||||
fileName?: string;
|
||||
/** 文件大小 */
|
||||
fileSize?: number;
|
||||
/** 处理状态 */
|
||||
status?: number;
|
||||
/** Dify文档ID */
|
||||
difyDocumentId?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 会话搜索参数
|
||||
*/
|
||||
export interface ConversationSearchParams {
|
||||
/** 智能体ID(可选) */
|
||||
agentId?: string;
|
||||
/** 关键词 */
|
||||
keyword?: string;
|
||||
/** 是否收藏(可选) */
|
||||
isFavorite?: boolean;
|
||||
/** 开始日期 */
|
||||
startDate?: string;
|
||||
/** 结束日期 */
|
||||
endDate?: string;
|
||||
/** 分页参数 */
|
||||
pageParam?: PageParam;
|
||||
}
|
||||
|
||||
/**
|
||||
* 消息搜索参数
|
||||
*/
|
||||
export interface MessageSearchParams {
|
||||
/** 关键词 */
|
||||
keyword: string;
|
||||
/** 会话ID(可选,限定范围) */
|
||||
conversationId?: string;
|
||||
/** 分页参数 */
|
||||
pageParam?: PageParam;
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户对话统计
|
||||
*/
|
||||
export interface UserChatStatistics {
|
||||
/** 会话总数 */
|
||||
totalConversations?: number;
|
||||
/** 消息总数 */
|
||||
totalMessages?: number;
|
||||
/** Token总数 */
|
||||
totalTokens?: number;
|
||||
/** 收藏会话数 */
|
||||
favoriteConversations?: number;
|
||||
/** 最近活跃会话数(7天) */
|
||||
recentActiveConversations?: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* 会话统计详情
|
||||
*/
|
||||
export interface ConversationStatistics {
|
||||
/** 会话ID */
|
||||
conversationId?: string;
|
||||
/** 标题 */
|
||||
title?: string;
|
||||
/** 消息数量 */
|
||||
messageCount?: number;
|
||||
/** Token总数 */
|
||||
totalTokens?: number;
|
||||
/** 创建时间 */
|
||||
createTime?: string;
|
||||
/** 最后消息时间 */
|
||||
lastMessageTime?: string;
|
||||
/** 用户消息数 */
|
||||
userMessageCount?: number;
|
||||
/** AI回复数 */
|
||||
assistantMessageCount?: number;
|
||||
/** 评分分布 */
|
||||
ratingDistribution?: Array<{ rating: number; count: number }>;
|
||||
/** 反馈数量 */
|
||||
feedbackCount?: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量导出参数
|
||||
*/
|
||||
export interface BatchExportParams {
|
||||
/** 会话ID列表 */
|
||||
conversationIds: string[];
|
||||
/** 格式(markdown/json) */
|
||||
format: 'markdown' | 'json';
|
||||
}
|
||||
|
||||
/**
|
||||
* 知识库权限参数
|
||||
*/
|
||||
export interface KnowledgePermissionParams {
|
||||
/** 知识库ID */
|
||||
knowledgeId: string;
|
||||
/** 部门ID列表 */
|
||||
deptIds: string[];
|
||||
/** 角色ID列表 */
|
||||
roleIds: string[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Streaming 回调接口
|
||||
*/
|
||||
export interface StreamCallback {
|
||||
/** 接收到消息片段 */
|
||||
onMessage?: (message: string) => void;
|
||||
/** 消息结束 */
|
||||
onMessageEnd?: (metadata: string) => void;
|
||||
/** 完成 */
|
||||
onComplete?: () => void;
|
||||
/** 错误 */
|
||||
onError?: (error: Error) => void;
|
||||
}
|
||||
|
||||
// ==================== Dify 文档分段相关类型 ====================
|
||||
|
||||
/**
|
||||
* Dify 分段(父级)
|
||||
*/
|
||||
export interface DifySegment {
|
||||
/** 分段ID */
|
||||
id: string;
|
||||
/** 位置序号 */
|
||||
position: number;
|
||||
/** 文档ID */
|
||||
document_id: string;
|
||||
/** 分段内容 */
|
||||
content: string;
|
||||
/** 字数 */
|
||||
word_count: number;
|
||||
/** Token数 */
|
||||
tokens: number;
|
||||
/** 关键词列表 */
|
||||
keywords: string[];
|
||||
/** 索引节点ID */
|
||||
index_node_id: string;
|
||||
/** 索引节点哈希 */
|
||||
index_node_hash: string;
|
||||
/** 命中次数 */
|
||||
hit_count: number;
|
||||
/** 是否启用 */
|
||||
enabled: boolean;
|
||||
/** 禁用时间 */
|
||||
disabled_at?: number;
|
||||
/** 禁用者 */
|
||||
disabled_by?: string;
|
||||
/** 状态 */
|
||||
status: string;
|
||||
/** 创建者ID */
|
||||
created_by: string;
|
||||
/** 创建时间(时间戳) */
|
||||
created_at: number;
|
||||
/** 索引开始时间 */
|
||||
indexing_at?: number;
|
||||
/** 完成时间 */
|
||||
completed_at?: number;
|
||||
/** 错误信息 */
|
||||
error?: string;
|
||||
/** 停止时间 */
|
||||
stopped_at?: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dify 子块(分段内容块)
|
||||
*/
|
||||
export interface DifyChildChunk {
|
||||
/** 子块ID */
|
||||
id: string;
|
||||
/** 父分段ID */
|
||||
segment_id: string;
|
||||
/** 分段内容 */
|
||||
content: string;
|
||||
/** 字数 */
|
||||
word_count: number;
|
||||
/** Token数 */
|
||||
tokens: number;
|
||||
/** 索引节点ID */
|
||||
index_node_id: string;
|
||||
/** 索引节点哈希 */
|
||||
index_node_hash: string;
|
||||
/** 状态 */
|
||||
status: string;
|
||||
/** 创建者ID */
|
||||
created_by: string;
|
||||
/** 创建时间(时间戳) */
|
||||
created_at: number;
|
||||
/** 索引开始时间 */
|
||||
indexing_at?: number;
|
||||
/** 完成时间 */
|
||||
completed_at?: number;
|
||||
/** 错误信息 */
|
||||
error?: string;
|
||||
/** 停止时间 */
|
||||
stopped_at?: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dify 分段列表响应
|
||||
*/
|
||||
export interface DifySegmentListResponse {
|
||||
/** 分段数据列表 */
|
||||
data: DifySegment[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Dify 子块列表响应
|
||||
*/
|
||||
export interface DifyChildChunkListResponse {
|
||||
/** 子块数据列表 */
|
||||
data: DifyChildChunk[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Dify 子块单个响应
|
||||
*/
|
||||
export interface DifyChildChunkResponse {
|
||||
/** 子块数据 */
|
||||
data: DifyChildChunk;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分段更新请求
|
||||
*/
|
||||
export interface SegmentUpdateRequest {
|
||||
/** 更新的内容 */
|
||||
content: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分段创建请求
|
||||
*/
|
||||
export interface SegmentCreateRequest {
|
||||
/** 分段内容 */
|
||||
content: string;
|
||||
}
|
||||
Reference in New Issue
Block a user