AI剧本创作配置:用Python脚本和提示词模板自动生成剧本
AI剧本创作配置要解决的核心问题,是让模型稳定输出符合格式的剧本内容,而不是每次靠手动对话碰运气。
比较稳妥的做法是把剧本结构拆成固定提示词模板,再用脚本调用模型接口批量生成,最后人工校对。
下面按准备、操作、避坑和验证的顺序展开,适合有一点Python基础、想批量生成短剧或短视频脚本的读者。
先确定剧本格式和模型接口
动手前先明确两件事:剧本按什么结构输出,以及用哪个模型接口。
格式建议用纯文本加固定标记,例如每场以“场景:”开头、对白以“角色名:”开头,这样后续排版和切分都方便。
模型接口选择支持长文本输出的服务,具体模型名和价格以你所用平台的控制台为准,不要照搬别人的参数。
准备条件清单:
- 一个可用的模型API密钥,保存在环境变量里,不要写死在代码中
- Python 3.8以上环境,安装
openai或对应厂商的SDK - 一个
prompt_template.txt文件,存放剧本结构模板 - 一个
output/目录,用于保存生成的剧本文件
安装依赖的命令示例:
pip install openai
设计可复用的剧本提示词模板
提示词模板决定输出质量。
模板里要写清角色设定、场景数量、每场对白轮数、总字数上限和禁止项。
例如在prompt_template.txt中写入:
你是一位短剧编剧。请根据以下设定创作剧本:
主题:{theme}
主要角色:{characters}
场景数量:3场
每场对白不超过8轮
总字数控制在600字以内
输出格式:每场以“场景N:地点”开头,对白以“角色名:台词”开头
不要输出解释性文字。
注意模板中的{theme}和{characters}是占位符,脚本里用format()替换。
占位符名称要和脚本中的变量一致,否则会报KeyError。
编写调用脚本并批量生成
新建generate_script.py,核心逻辑是读取模板、替换占位符、调用接口、保存结果。
下面是一个可调整的示例:
import os
from openai import OpenAI
client = OpenAI(api_key=os.environ["API_KEY"])
with open("prompt_template.txt", "r", encoding="utf-8") as f:
template = f.read()
prompt = template.format(theme="职场逆袭", characters="小林、主管")
resp = client.chat.completions.create(
model="你的模型名",
messages=[{"role": "user", "content": prompt}],
temperature=0.7,
max_tokens=1200
)
text = resp.choices[0].message.content
with open("output/script_01.txt", "w", encoding="utf-8") as f:
f.write(text)
运行python generate_script.py后检查output/script_01.txt是否生成。
如果要批量生成多个主题,把主题放进列表循环调用即可,但建议每次请求之间加短暂间隔,避免触发接口的频率限制。
常见报错与避坑说明
实际配置时容易遇到几类问题:
KeyError:模板占位符和format()参数不一致,检查大括号内的变量名是否拼写正确。- 认证失败:
API_KEY环境变量未生效,可在脚本里临时打印os.environ.get("API_KEY")确认是否读到值,但不要打印完整密钥。 - 输出被截断:
max_tokens设置过小,结合模型支持的上下文长度适当调大,同时控制提示词长度。 - 格式跑偏:模型偶尔不按标记输出,可在提示词末尾追加“如果格式不符请重新输出”,并在脚本里做简单校验,例如检查是否包含“场景1”。
另外,生成的内容建议人工校对一轮,尤其是涉及真实人物、品牌或敏感话题时,不能直接发布。
验证生成结果是否可用
验证分两步:先看格式,再看内容。
格式上检查每场是否以“场景”开头、对白是否带角色名;
内容上快速通读,确认角色关系前后一致、没有明显逻辑断裂。
可以用下面的命令快速统计字数:
wc -m output/script_01.txt
如果字数明显超过模板限制,说明提示词约束不够或max_tokens偏大,回到模板里收紧“总字数”要求。
稳定后再把脚本接入定时任务或批量列表,就能持续产出初稿。
整套AI剧本创作配置的重点不在模型多强,而在模板、脚本和校验三步是否固定下来。