58 lines
1.1 KiB
TypeScript
58 lines
1.1 KiB
TypeScript
import { MaterialItem } from "./personal-info";
|
|
|
|
interface FileInfo {
|
|
id: string;
|
|
file_name: string;
|
|
url: string;
|
|
metadata: Record<string, any>;
|
|
}
|
|
|
|
interface VideoClip {
|
|
clip_id: number;
|
|
start_time: number;
|
|
end_time: number;
|
|
description: string;
|
|
tags: string[];
|
|
composition: string;
|
|
shot_size: string;
|
|
point_of_view: string;
|
|
created_at: string;
|
|
}
|
|
|
|
interface VideoInfo {
|
|
id: string;
|
|
name: string | null;
|
|
description: string | null;
|
|
file_info: FileInfo;
|
|
preview_file_info: FileInfo;
|
|
user_id: string;
|
|
created_at: string;
|
|
updated_at: string;
|
|
}
|
|
|
|
export interface Video {
|
|
video: VideoInfo;
|
|
video_clips: VideoClip[];
|
|
}
|
|
export interface Content {
|
|
text: string;
|
|
image_material_infos?: MaterialItem[];
|
|
video_material_infos?: Video[];
|
|
}
|
|
export interface Message {
|
|
content: Content;
|
|
role: 'User' | 'Assistant'; // 使用联合类型限制 role 的值
|
|
timestamp: string;
|
|
askAgain?: Array<{
|
|
id: string;
|
|
text: string;
|
|
}>;
|
|
}
|
|
|
|
|
|
export interface Chat {
|
|
created_at: string;
|
|
session_id: string;
|
|
title: string;
|
|
latest_message: Message;
|
|
} |