feat(类型): 添加智能摘要功能类型定义

- 定义摘要长度类型 (short/standard/detailed)
- 定义摘要风格类型 (bullet/narrative)
- 添加摘要状态、数据等接口定义
- 配置摘要长度和风格的默认选项
- 导出模块入口文件
This commit is contained in:
gaoziman 2025-12-28 01:30:05 +08:00
parent c48d05885a
commit 5d301364fb
2 changed files with 111 additions and 0 deletions

View File

@ -0,0 +1,31 @@
/**
*
*
* AI
*/
// 组件导出
export { SummaryButton } from './SummaryButton';
export { SummaryModal } from './SummaryModal';
export { SummaryOptions } from './SummaryOptions';
export { SummaryContent } from './SummaryContent';
// Hook 导出
export { useSummary } from './useSummary';
// 类型导出
export type {
SummaryLength,
SummaryStyle,
SummaryOptions as SummaryOptionsType,
SummaryStatus,
SummaryData,
SummaryMessage,
GenerateSummaryRequest,
GenerateSummaryResponse,
UseSummaryReturn,
ModalView,
} from './types';
// 常量导出
export { SUMMARY_LENGTH_CONFIG, SUMMARY_STYLE_CONFIG } from './types';

View File

@ -0,0 +1,80 @@
/**
*
*/
// 摘要长度选项
export type SummaryLength = 'short' | 'standard' | 'detailed';
// 摘要风格选项
export type SummaryStyle = 'bullet' | 'narrative';
// 摘要生成选项
export interface SummaryOptions {
length: SummaryLength;
style: SummaryStyle;
}
// 摘要长度配置
export const SUMMARY_LENGTH_CONFIG: Record<SummaryLength, { label: string; description: string; maxWords: number }> = {
short: { label: '简短', description: '约50字的核心要点', maxWords: 50 },
standard: { label: '标准', description: '约150字的详细摘要', maxWords: 150 },
detailed: { label: '详细', description: '约300字的完整分析', maxWords: 300 },
};
// 摘要风格配置
export const SUMMARY_STYLE_CONFIG: Record<SummaryStyle, { label: string; description: string }> = {
bullet: { label: '要点式', description: '结构化的要点列表' },
narrative: { label: '叙述式', description: '连贯的段落描述' },
};
// 摘要生成状态
export type SummaryStatus = 'idle' | 'generating' | 'completed' | 'error';
// 摘要数据
export interface SummaryData {
content: string; // 摘要内容Markdown
generatedAt: Date; // 生成时间
messageCount: number; // 分析的消息数
options: SummaryOptions; // 生成时使用的选项
}
// 摘要生成请求
export interface GenerateSummaryRequest {
conversationId: string;
options: SummaryOptions;
}
// 摘要生成响应
export interface GenerateSummaryResponse {
success: boolean;
summary?: string;
error?: string;
messageCount?: number;
}
// useSummary Hook 返回类型
export interface UseSummaryReturn {
// 状态
status: SummaryStatus;
summary: SummaryData | null;
error: string | null;
streamingContent: string;
// 选项
options: SummaryOptions;
setOptions: (options: Partial<SummaryOptions>) => void;
// 操作
generate: (conversationId: string, messages: SummaryMessage[]) => Promise<void>;
reset: () => void;
saveSummary: (conversationId: string) => Promise<boolean>;
}
// 用于摘要生成的消息格式
export interface SummaryMessage {
role: 'user' | 'assistant';
content: string;
}
// Modal 状态
export type ModalView = 'options' | 'generating' | 'result';