feat(prompts): admin「提示词」页 —— 视频线 6 条生图/视频提示词正文+比例可在后台改,不再写死
诉求:生图/视频提示词全写死在代码里,产品方看不到也改不了(之前那版只做成「质量后缀」不是正文)。
现新增可编辑「提示词模板」体系,覆盖视频项目生产线 6 条:人物立绘 / 人物三视图 / 商品三视图 /
场景图 / 分镜图 / 视频。
后端:
- 新模型 PromptTemplate(key 固定 6 条 + template 正文 + ratio 比例 + enabled);迁移 0012/0013
种入默认正文(= 各 builder 现写死文本,零回归)。
- render_prompt(key, default, **字段):读 DB 模板,留空/停用回落默认;安全替换 {占位符}(中文名),
未知占位符原样保留(改错不致命)。prompt_ratio_size:比例→gpt-image 尺寸。
- 6 个 builder/调用点改走模板;5 条图比例可改(gpt-image 仅 1:1/竖/横),视频固定 Seedance 9:16。
场景图新增可编辑「场景风格」包装(默认仅 {场景描述},零回归)。人物/分镜/视频原质量后缀并入模板。
- adminpanel CRUD:GET /prompt-templates、PATCH /<id>(改正文/比例/启用,key 不可改、不增删,带审计)。
前端:admin 新增「提示词」侧栏页(/admin/prompts):6 卡,每卡=占位符提示+正文文本框+比例按钮+
启用开关+保存。复用 .btn/.card-hard 共享类,仅 token 配色,单橙锚点。
验证:Django 套件 102 全绿(含新模型/API/生成侧立即生效 + 人物提示词改读模板);tsc+vite build 绿;
无头(独立 sqlite 栈)真开 /admin/prompts:6 卡齐、文本框/比例/占位符齐、0 控制台错误。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
304a083184
commit
9c2a3bc365
@@ -293,3 +293,23 @@
|
||||
.gov-card.warn .gov-count { color: var(--heat); }
|
||||
.gov-label { font-size: 12px; color: var(--black-alpha-56); }
|
||||
.gov-total { margin-left: auto; font-size: 12px; color: var(--black-alpha-48); }
|
||||
|
||||
/* 提示词模板页(仅 token,8px 圆角,单橙 accent) */
|
||||
.pt-list { display: flex; flex-direction: column; gap: 14px; }
|
||||
.pt-card { padding: 16px 18px; display: flex; flex-direction: column; gap: 12px; }
|
||||
.pt-card.pt-off { opacity: .6; }
|
||||
.pt-head { display: flex; align-items: center; gap: 10px; }
|
||||
.pt-title { font-size: 14px; font-weight: 600; color: var(--accent-black); }
|
||||
.pt-key { font-size: 11.5px; color: var(--black-alpha-40); }
|
||||
.pt-head .spacer { flex: 1; }
|
||||
.pt-enabled { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--black-alpha-56); cursor: pointer; }
|
||||
.pt-vars { font-size: 11.5px; color: var(--black-alpha-48); display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
|
||||
.pt-vars code { background: var(--heat-12); color: var(--heat); border-radius: var(--r-sm); padding: 1px 6px; }
|
||||
.pt-vars-hint { color: var(--black-alpha-40); }
|
||||
.pt-textarea { width: 100%; box-sizing: border-box; background: var(--background-base); border: 1px solid var(--border-faint); border-radius: var(--r-sm); padding: 10px 12px; font-size: 13px; line-height: 1.6; color: var(--accent-black); font-family: var(--font-mono); resize: vertical; outline: none; transition: border-color var(--t-base), box-shadow var(--t-base); }
|
||||
.pt-textarea:focus { border-color: var(--heat); box-shadow: 0 0 0 3px var(--heat-12); }
|
||||
.pt-foot { display: flex; align-items: center; gap: 8px; }
|
||||
.pt-ratio-label { font-size: 11.5px; color: var(--black-alpha-48); }
|
||||
.pt-ratios { display: inline-flex; gap: 6px; }
|
||||
.pt-ratio-na { font-size: 12px; color: var(--black-alpha-40); }
|
||||
.pt-foot .spacer { flex: 1; }
|
||||
|
||||
Reference in New Issue
Block a user