初始化
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
ALTER TABLE script_analyses
|
||||
ADD COLUMN analysis_result jsonb NOT NULL DEFAULT '{}'::jsonb,
|
||||
ADD COLUMN analysis_status varchar(20) NOT NULL DEFAULT 'idle',
|
||||
ADD COLUMN analysis_message text;
|
||||
|
||||
ALTER TABLE script_analyses
|
||||
ADD CONSTRAINT script_analyses_status_check
|
||||
CHECK (analysis_status IN ('idle', 'queued', 'running', 'succeeded', 'failed'));
|
||||
|
||||
CREATE TABLE script_analysis_characters (
|
||||
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
script_analysis_id uuid NOT NULL REFERENCES script_analyses(id) ON DELETE CASCADE,
|
||||
name citext NOT NULL,
|
||||
faction varchar(20) NOT NULL,
|
||||
biography text NOT NULL DEFAULT '',
|
||||
motivation text NOT NULL DEFAULT '',
|
||||
relationship text NOT NULL DEFAULT '',
|
||||
sort_order integer NOT NULL DEFAULT 0,
|
||||
created_at timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT script_analysis_characters_faction_check CHECK (faction IN ('正派', '反派', '中立派')),
|
||||
CONSTRAINT script_analysis_characters_name_unique UNIQUE (script_analysis_id, name)
|
||||
);
|
||||
|
||||
CREATE INDEX idx_script_analysis_characters_analysis
|
||||
ON script_analysis_characters(script_analysis_id, sort_order);
|
||||
CREATE TRIGGER script_analysis_characters_updated_at
|
||||
BEFORE UPDATE ON script_analysis_characters
|
||||
FOR EACH ROW EXECUTE FUNCTION set_updated_at();
|
||||
|
||||
ALTER TABLE generation_tasks
|
||||
ADD COLUMN script_analysis_id uuid REFERENCES script_analyses(id) ON DELETE CASCADE;
|
||||
|
||||
ALTER TABLE generation_tasks
|
||||
DROP CONSTRAINT generation_tasks_task_type_check;
|
||||
ALTER TABLE generation_tasks
|
||||
ADD CONSTRAINT generation_tasks_task_type_check
|
||||
CHECK (task_type IN ('prompt_reverse', 'image_generation', 'video_generation', 'script_analysis'));
|
||||
|
||||
CREATE INDEX idx_generation_tasks_script_analysis
|
||||
ON generation_tasks(script_analysis_id, created_at DESC)
|
||||
WHERE script_analysis_id IS NOT NULL;
|
||||
CREATE UNIQUE INDEX uq_script_analysis_active_task
|
||||
ON generation_tasks(script_analysis_id)
|
||||
WHERE script_analysis_id IS NOT NULL
|
||||
AND status IN ('pending_submission', 'submitting', 'submit_unknown', 'submitted', 'processing', 'result_ready', 'downloading', 'cancel_requested');
|
||||
|
||||
INSERT INTO prompts (id, name, type, content, scope, owner_user_id)
|
||||
VALUES (
|
||||
'2eb481cf-4a8f-4da4-a70e-ea977739c8d1',
|
||||
'默认剧本分析提示词',
|
||||
'剧本分析',
|
||||
$prompt$你是一名资深短剧策划、编剧和商业化内容分析师。请严格依据用户提供的剧本原文进行结构化分析,不得把推测写成原文事实,不得编造原文不存在的关键人物、情节或台词。信息不足时使用空字符串或空数组。
|
||||
|
||||
分析目标:
|
||||
1. 标签:分别提取短剧题材、风格、受众、情绪等短剧标签,以及适合山水景区、古镇景区、主题乐园、文博场馆、商业街区等文旅或商业落地场景的适用场景标签。只输出与剧本确实匹配的标签。
|
||||
2. 核心看点与卖点:用一句话总结核心看点、卖点、爽点或痛点,并列出具体看点及其类型。
|
||||
3. 剧情结构:输出短剧梗概、故事大纲、情绪大纲、分集大纲和人物小传。人物必须覆盖剧本中具有明确身份或剧情作用的正派、反派和中立人物;faction 只能是“正派”“反派”“中立派”。同一人物只返回一次。
|
||||
4. 第一集黄金三秒:分别给出开篇第一个画面或场景、第一句台词,以及通过悬念前置、激烈冲突、视觉奇观等方式瞬间抓住观众的设计。若原稿开篇不够强,需要明确说明问题并给出不改变核心剧情的优化建议;第一句台词不得冒充原文台词,建议台词需明确标为建议。
|
||||
5. 单集钩子:输出第1至第10集逐集钩子。原文无法识别某一集时保留该集编号并说明信息不足,不得虚构剧情。第10集除逐集钩子外,再提供3至5个付费卡点候选,每个候选需说明钩子类型、卡点内容和付费吸引力。$prompt$,
|
||||
'system',
|
||||
NULL
|
||||
)
|
||||
ON CONFLICT (id) DO UPDATE SET
|
||||
name = EXCLUDED.name,
|
||||
type = EXCLUDED.type,
|
||||
content = EXCLUDED.content,
|
||||
scope = EXCLUDED.scope,
|
||||
owner_user_id = EXCLUDED.owner_user_id,
|
||||
deleted_at = NULL,
|
||||
updated_at = CURRENT_TIMESTAMP;
|
||||
Reference in New Issue
Block a user