taskflow-ai
Version:
TaskFlow AI - 智能PRD文档解析与任务管理助手,支持多模型AI协同、MCP编辑器集成,专为开发团队设计的CLI工具
296 lines (295 loc) • 5.81 kB
TypeScript
/**
* 模型相关类型定义
*/
/**
* 服务响应类型
*/
export interface ServiceResponse<T> {
success: boolean;
data?: T;
error?: string;
}
import { ModelType } from './config';
/**
* 消息角色
*/
export declare enum MessageRole {
USER = "user",
ASSISTANT = "assistant",
SYSTEM = "system"
}
/**
* 聊天消息
*/
export interface ChatMessage {
role: MessageRole;
content: string;
}
/**
* 基本模型请求参数
*/
export interface ModelRequestParams {
messages: ChatMessage[];
temperature?: number;
maxTokens?: number;
topP?: number;
frequencyPenalty?: number;
presencePenalty?: number;
stopSequences?: string[];
}
/**
* 基本模型响应
*/
export interface ModelResponse {
content: string;
finishReason?: string;
usage?: {
promptTokens: number;
completionTokens: number;
totalTokens: number;
};
}
/**
* 模型调用选项
*/
export interface ModelCallOptions {
temperature?: number;
maxTokens?: number;
stream?: boolean;
timeout?: number;
}
/**
* 模型服务能力
*/
export interface ModelCapabilities {
modelType: ModelType;
maxContextLength: number;
supportsStreaming: boolean;
supportsFunctionCalling?: boolean;
supportsMultimodalInput?: boolean;
supportsVision?: boolean;
maxResponseTokens: number;
}
/**
* 模型详细信息
*/
export interface ModelDetails {
name: string;
description: string;
maxTokens: number;
supportStream: boolean;
supportsFunctions?: boolean;
features?: string[];
}
/**
* 多模型配置
*/
export interface MultiModelConfig {
enabled: boolean;
primary: ModelType;
fallback: ModelType[];
loadBalancing?: boolean;
costOptimization?: boolean;
}
/**
* PRD解析选项
*/
export interface ParseOptions {
modelType?: ModelType;
multiModel?: MultiModelConfig;
extractSections?: boolean;
extractFeatures?: boolean;
prioritize?: boolean;
outputPath?: string;
}
/**
* 任务规划选项
*/
export interface PlanningOptions {
modelType?: ModelType;
taskTemplate?: string;
estimateDuration?: boolean;
assignTasks?: boolean;
suggestDependencies?: boolean;
optimizeForTime?: boolean;
optimizeForResources?: boolean;
considerTeamSize?: number;
maxParallelTasks?: number;
includeTestTasks?: boolean;
includeDocTasks?: boolean;
}
/**
* 测试生成选项
*/
export interface TestGenerationOptions {
modelType?: ModelType;
framework?: string;
coverage?: boolean;
includeEdgeCases?: boolean;
mockDependencies?: boolean;
}
/**
* 文件类型
*/
export declare enum FileType {
MARKDOWN = "markdown",
PDF = "pdf",
WORD = "word",
TEXT = "text",
JSON = "json",
UNKNOWN = "unknown"
}
/**
* 百度文心API请求体
*/
export interface BaiduRequestBody {
messages: {
role: string;
content: string;
}[];
temperature?: number;
top_p?: number;
stream?: boolean;
user_id?: string;
}
/**
* 百度文心API响应体
*/
export interface BaiduResponseBody {
id: string;
object: string;
created: number;
sentence_id?: number;
is_end?: boolean;
result: string;
need_clear_history: boolean;
usage: {
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
};
}
/**
* 讯飞星火API请求体
*/
export interface XunfeiRequestBody {
header: {
app_id: string;
uid?: string;
};
parameter: {
chat: {
domain: string;
temperature?: number;
max_tokens?: number;
top_k?: number;
};
};
payload: {
message: {
text: {
role: string;
content: string;
}[];
};
};
}
/**
* 讯飞星火API响应体
*/
export interface XunfeiResponseBody {
header: {
code: number;
message: string;
sid: string;
status: number;
};
payload: {
choices: {
status: number;
seq: number;
text: {
content: string;
role: string;
}[];
};
usage?: {
text: {
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
};
};
};
}
/**
* 智谱API请求体
*/
export interface ZhipuRequestBody {
model: string;
messages: {
role: string;
content: string;
}[];
temperature?: number;
top_p?: number;
max_tokens?: number;
stream?: boolean;
}
/**
* 智谱API响应体
*/
export interface ZhipuResponseBody {
id: string;
created: number;
model: string;
choices: {
index: number;
message: {
role: string;
content: string;
};
finish_reason: string;
}[];
usage: {
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
};
}
/**
* DeepSeek API请求体
*/
export interface DeepseekRequestBody {
model: string;
messages: {
role: string;
content: string;
}[];
temperature?: number;
top_p?: number;
max_tokens?: number;
stream?: boolean;
}
/**
* DeepSeek API响应体
*/
export interface DeepseekResponseBody {
id: string;
object: string;
created: number;
model: string;
choices: {
index: number;
message: {
role: string;
content: string;
};
finish_reason: string;
}[];
usage: {
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
};
}