返回 JoyAI-Echo
memory-review-preview.ts
根目录 / echo_longvideo / Director_Agent / webui / src / lib / memory-review-preview.ts
1 import type { MemoryReview, UIMessage } from "@/lib/types";
2
3 export function careerMemoryReviewPreview(
4 status: MemoryReview["status"] = "awaiting_method",
5 attempt = 1,
6 selectionMode: MemoryReview["selection_mode"] = null,
7 manualSelectedIds: string[] = [],
8 ): UIMessage {
9 const awaitingMethod = status === "awaiting_method";
10 return {
11 id: "memory-review:career-preview:1:shot-001",
12 role: "assistant",
13 content: awaitingMethod
14 ? "Shot 1 is ready. Choose how its identity and scene memories should be selected before generating Shot 2."
15 : "Shot 1 is ready. Review its identity and scene memories before generating Shot 2.",
16 createdAt: Date.now(),
17 memoryReview: {
18 review_id: "career-shot-001",
19 shot_id: 1,
20 status,
21 attempt,
22 candidate_count: awaitingMethod ? 0 : 12,
23 rejected_candidate_indices: attempt > 1 ? [2, 4, 9] : [],
24 selection_mode: selectionMode,
25 required_memory_ids: ["ID_A", "ID_B", "PREVIOUS_SHOT"],
26 manual_selected_ids: manualSelectedIds,
27 history: [],
28 error: null,
29 updated_at: new Date().toISOString(),
30 source_video: {
31 url: "/memory-review-preview/source.mp4",
32 name: "source.mp4",
33 },
34 selections: awaitingMethod ? [] : [
35 {
36 memory_id: "ID_A",
37 kind: "character",
38 candidate_index: attempt > 1 ? 5 : 2,
39 frame_index: attempt > 1 ? 111 : 51,
40 timestamp_sec: attempt > 1 ? 4.44 : 2.059,
41 confidence: 0.9,
42 visual_status: "provisional",
43 source_shot_id: 1,
44 audio_source_shot_id: 1,
45 reasoning:
46 "清晰展示 ID_A 的深棕色齐肩头发、精致面部轮廓和炭灰色毛衣。当前画面仍包含 ID_B,因此作为 provisional memory。",
47 image: { url: "/memory-review-preview/ID_A.jpg", name: "ID_A.jpg" },
48 audio: { url: "/memory-review-preview/ID_A.wav", name: "ID_A.wav" },
49 },
50 {
51 memory_id: "ID_B",
52 kind: "character",
53 candidate_index: 9,
54 frame_index: 190,
55 timestamp_sec: 7.581,
56 confidence: 0.97,
57 visual_status: "confirmed",
58 source_shot_id: 1,
59 audio_source_shot_id: 1,
60 reasoning:
61 "单人近景清晰展示 ID_B 的短黑发、浅胡茬、宽阔面部结构和深色夹克,可确认为 target-only memory。",
62 image: { url: "/memory-review-preview/ID_B.jpg", name: "ID_B.jpg" },
63 audio: { url: "/memory-review-preview/ID_B.wav", name: "ID_B.wav" },
64 },
65 {
66 memory_id: "PREVIOUS_SHOT",
67 kind: "previous_shot",
68 candidate_index: 4,
69 frame_index: 91,
70 timestamp_sec: 3.637,
71 confidence: 0.96,
72 visual_status: "representative",
73 source_shot_id: 1,
74 audio_source_shot_id: 1,
75 reasoning:
76 "信息最完整的双人镜头:角色、方向盘互动、雨夜车内环境以及冷暖光线关系均清楚可见。",
77 image: {
78 url: "/memory-review-preview/PREVIOUS_SHOT.jpg",
79 name: "PREVIOUS_SHOT.jpg",
80 },
81 audio: {
82 url: "/memory-review-preview/PREVIOUS_SHOT.wav",
83 name: "PREVIOUS_SHOT.wav",
84 },
85 },
86 ],
87 },
88 };
89 }
90
90 lines TYPESCRIPT