feat(*): 分镜创作体系 - 重构画风、提示词模板与视频生成链路

This commit is contained in:
ddCat
2026-08-04 15:03:41 +08:00
parent 98382ba976
commit d4018123e1
46 changed files with 2667 additions and 572 deletions

View File

@@ -201,21 +201,51 @@ export type ModelPricing = {
updatedAt: string;
};
export type StoryboardPromptTemplate = {
export type PromptTemplate = {
id: string;
operation: string;
name: string;
version: number;
content: string;
outputType: "json" | "text";
enabled: boolean;
createdBy?: string;
createdAt: string;
updatedAt: string;
};
export type StoryboardPromptVariable = {
export type PromptTemplateVariable = {
label: string;
placeholder: string;
};
export type PromptOperationDefinition = {
operation: string;
label: string;
category: string;
description: string;
outputType: "json" | "text";
schemaKey?: string;
variables: PromptTemplateVariable[];
outputContract: string;
};
export type UserPromptCustomization = {
id: string;
operation: string;
mode: "inherit" | "append" | "rewrite";
content: string;
baseTemplateId: string;
updatedAt: string;
};
export type UserPromptPreference = {
definition: PromptOperationDefinition;
template: PromptTemplate | null;
customization?: UserPromptCustomization;
outdated: boolean;
};
export type AdminOSSSetting = {
enabled: boolean;
provider: "aliyun";
@@ -397,20 +427,32 @@ export function deleteAdminChannel(id: string) {
return request<{ ok: boolean }>(api.delete(`/admin/channels/${encodeURIComponent(id)}`));
}
export function listAdminStoryboardPromptTemplates() {
return request<{ templates: StoryboardPromptTemplate[]; variables: StoryboardPromptVariable[] }>(api.get("/admin/storyboard-prompts"));
export function listAdminPromptTemplates() {
return request<{ templates: PromptTemplate[]; definitions: PromptOperationDefinition[] }>(api.get("/admin/prompt-templates"));
}
export function createAdminStoryboardPromptTemplate(input: Partial<Pick<StoryboardPromptTemplate, "name" | "content" | "enabled">>) {
return request<{ template: StoryboardPromptTemplate }>(api.post("/admin/storyboard-prompts", input));
export function createAdminPromptTemplate(input: Pick<PromptTemplate, "operation" | "name" | "content"> & { enabled?: boolean }) {
return request<{ template: PromptTemplate }>(api.post("/admin/prompt-templates", input));
}
export function updateAdminStoryboardPromptTemplate(id: string, input: Partial<Pick<StoryboardPromptTemplate, "name" | "content" | "enabled">>) {
return request<{ template: StoryboardPromptTemplate }>(api.patch(`/admin/storyboard-prompts/${encodeURIComponent(id)}`, input));
export function updateAdminPromptTemplate(id: string, input: Pick<PromptTemplate, "operation" | "name" | "content"> & { enabled?: boolean }) {
return request<{ template: PromptTemplate }>(api.patch(`/admin/prompt-templates/${encodeURIComponent(id)}`, input));
}
export function deleteAdminStoryboardPromptTemplate(id: string) {
return request<{ ok: boolean }>(api.delete(`/admin/storyboard-prompts/${encodeURIComponent(id)}`));
export function deleteAdminPromptTemplate(id: string) {
return request<{ ok: boolean }>(api.delete(`/admin/prompt-templates/${encodeURIComponent(id)}`));
}
export function listUserPromptPreferences() {
return request<{ preferences: UserPromptPreference[] }>(api.get("/settings/prompt-templates"));
}
export function updateUserPromptCustomization(operation: string, input: Pick<UserPromptCustomization, "mode" | "content">) {
return request<{ customization: UserPromptCustomization }>(api.patch(`/settings/prompt-templates/${encodeURIComponent(operation)}`, input));
}
export function resetUserPromptCustomization(operation: string) {
return request<{ ok: boolean }>(api.delete(`/settings/prompt-templates/${encodeURIComponent(operation)}`));
}
export function getAdminOSSSetting() {

View File

@@ -183,7 +183,7 @@ export function backendProviderConfig(config: AiConfig) {
audioFormat: config.audioFormat,
audioSpeed: config.audioSpeed,
audioInstructions: config.audioInstructions,
systemPrompt: config.systemPrompt,
systemPrompt: "",
};
}

View File

@@ -117,6 +117,8 @@ export type CreateSessionInput = {
prompt: string;
canvasSnapshot?: Record<string, unknown>;
references?: string[];
projectStyle?: { presetId: string; title: string; prompt: string };
characters?: Array<{ assetId: string; versionId: string; name: string; definition: Record<string, unknown> }>;
config?: Record<string, unknown>;
};