创意写作助手¶
项目背景与目标¶
写作是创意工作,但创作者常面临灵感枯竭、结构组织困难、语言打磨耗时等问题。专业作家有编辑团队辅助,而独立创作者(网文作者、自媒体、学生)缺乏支持。AI 创意写作助手通过灵感激发、大纲生成、内容润色、风格适配,全方位辅助创作过程,提升写作效率与质量,同时保留作者主导权。
本项目目标是构建一个 AI 创意写作助手 Agent,覆盖从灵感到大纲到成稿到润色的全流程,核心能力包括灵感激发、大纲构建、内容生成与续写、语言润色、风格适配。
需求分析¶
核心能力: 1. 灵感激发:基于主题/关键词生成创意点子 2. 大纲生成:构建故事结构(三幕剧、英雄之旅等) 3. 内容续写:根据前文与大纲继续创作 4. 语言润色:优化遣词造句、节奏、画面感 5. 风格适配:模仿指定作者风格或文体 6. 一致性检查:人物、设定、情节前后一致
用户场景:网文连载、短篇创作、剧本写作、公文撰写、学术润色。
技术选型说明¶
| 模块 | 技术方案 | 选型理由 |
|---|---|---|
| Agent 框架 | LangGraph | 写作流程多步骤 |
| LLM | GPT-4o / Claude | 长文本创意生成 |
| 大纲管理 | 结构化树 + 向量 | 大纲与正文关联 |
| 风格学习 | 少样本 + 微调 | 风格模仿 |
| 一致性检查 | RAG + LLM 校验 | 设定与人物一致 |
| 知识库 | 写作技巧 RAG | 叙事方法论支撑 |
| 后端 | FastAPI | 流式生成 |
| 数据库 | PostgreSQL | 作品存档 |
架构设计¶
flowchart TD
U[创作者] --> INS[灵感激发]
INS --> IDEAS[创意点子]
IDEAS --> OUTLINE[大纲生成]
OUTLINE --> TPL[(叙事模板)]
OUTLINE --> DRAFT[初稿生成]
DRAFT --> LLM[LLM 续写]
DRAFT --> CONSIST[一致性检查]
CONSIST --> BIBLE[(设定圣经)]
CONSIST --> HIST[(正文历史)]
DRAFT --> POLISH[润色优化]
POLISH --> STYLE[风格适配]
POLISH --> REPLY[返回作者]
REPLY --> EDIT[作者修改]
EDIT --> DRAFT
关键模块实现思路¶
模块1:灵感激发¶
灵感激发从模糊输入(主题、情绪、画面)发散出具体创意点子。采用"发散 + 聚类"策略:LLM 生成大量创意点,按主题聚类去重,输出多样化候选。
def inspire(theme, mood=None, count=10):
prompt = f"""主题:{theme},情绪:{mood}
生成 {count} 个创意故事点子,涵盖不同类型:
- 角色驱动型(人物困境)
- 设定驱动型(独特世界观)
- 情节驱动型(反转与悬念)
每个点子 50 字以内,附一句话核心冲突"""
ideas = llm.generate(prompt)
return cluster_and_dedup(ideas)
可结合 trending 话题、经典叙事原型(坎贝尔英雄之旅)激发,避免套路化。
模块2:大纲构建¶
大纲是长篇创作的骨架。支持多种叙事结构模板:三幕剧、英雄之旅、起承转合、悬念递进。LLM 基于创意点子与选定结构生成多层大纲:卷 → 章 → 场景。
def build_outline(idea, structure="three_act"):
template = STRUCTURE_TEMPLATES[structure]
prompt = f"""基于创意:{idea}
按{template.name}结构生成大纲:
{template.framework}
输出:分卷 → 分章 → 每章场景要点"""
outline = llm.generate(prompt)
return validate_outline(outline, template) # 校验结构完整性
大纲支持人工调整,调整后影响后续生成。大纲与正文双向链接,便于追溯。
模块3:内容续写¶
续写是核心功能。LLM 基于大纲、前文、设定圣经生成后续内容。关键技术是长上下文管理:前文摘要 + 最近原文 + 大纲指引,避免超出上下文窗口。
def continue_writing(outline, history, setting_bible):
summary = summarize(history, max_words=500) # 前文摘要
recent = history[-2000:] # 最近原文
prompt = f"""设定圣经:{setting_bible}
前文摘要:{summary}
最近内容:{recent}
当前章节大纲:{outline.current_chapter}
要求:续写 800-1200 字,保持风格一致,推进情节"""
return llm.generate(prompt)
续写提供多个候选,作者选择或融合,保留主导权。
模块4:语言润色¶
润色聚焦语言层面优化,不改变情节:遣词造句、节奏感、画面感、情感渲染。分维度润色:用词精准、句式多样、感官描写、对话自然。
POLISH_PROMPT = """润色以下段落(不改变情节):
原文:{text}
润色维度:
1. 用词:替换平淡词为生动词
2. 句式:长短句搭配,避免单调
3. 感官:增加视觉/听觉/触觉描写
4. 节奏:调整断句增强节奏感
输出润色后文本,附修改说明"""
润色提供"轻度/中度/重度"三档,轻度保留原貌微调,重度大幅改写。
模块5:风格适配¶
风格模仿是高级功能。两种方式: - 少样本提示:提供目标风格样本(如鲁迅杂文、古龙武侠),LLM 模仿 - 微调模型:用大量目标作者作品微调,深度学习风格特征
def adapt_style(text, target_style, samples=None):
if samples: # 少样本
prompt = f"""参考以下风格样本:
{samples}
将文本改写为该风格:
{text}"""
else: # 微调模型
prompt = f"以{target_style}风格改写:{text}"
return llm.generate(prompt)
风格特征包括:词汇偏好、句式习惯、修辞手法、节奏、叙事视角。
模块6:一致性检查¶
长篇创作易出现不一致:人物性格突变、设定前后矛盾、时间线错乱。维护"设定圣经"(人物档案、世界设定、时间线),每次生成后校验。
def check_consistency(new_text, bible):
issues = []
for char in extract_characters(new_text):
if contradicts_profile(char, bible.characters):
issues.append(f"{char}性格与设定不符")
if timeline_conflict(new_text, bible.timeline):
issues.append("时间线冲突")
return issues
核心流程详解¶
长篇创作流程: 1. 灵感激发 → 选定创意点子 2. 大纲构建 → 生成多层大纲 → 作者调整 3. 设定圣经:人物档案、世界设定、时间线 4. 逐章续写:大纲 + 前文 + 设定 → 生成 → 作者修改 5. 一致性检查 → 发现问题则修正 6. 润色优化:语言层面打磨 7. 风格统一:全文风格一致性调整
短篇快速创作: 1. 输入主题与字数要求 2. 生成创意点子 → 选定 3. 生成完整初稿 4. 润色优化 → 输出
部署与优化建议¶
- 作者主导:AI 辅助而非替代,所有生成内容作者可修改
- 版权安全:风格模仿避免直接复制原文,学习特征而非照搬
- 长文管理:长篇小说用摘要 + 检索管理上下文,避免遗忘前文
- 多模型协作:创意生成用强模型,润色用轻量模型降本
- 版本管理:每次修改版本化,支持回退与对比
- 反馈学习:作者修改记录用于优化生成偏好
常见问题与解决方案¶
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 生成内容套路化 | LLM 倾向常见模式 | 创意约束 + 多样化采样 |
| 长篇前后矛盾 | 上下文遗忘 | 设定圣经 + 一致性检查 |
| 风格模仿不像 | 样本不足 | 增加样本 + 微调模型 |
| 续写偏离大纲 | LLM 发散 | 大纲强约束 + 生成后校验 |
扩展方向¶
- 对话式创作:与作者对话式协作,逐步推进
- 多模态:配图生成、封面设计
- 读者反馈集成:连载中根据读者反馈调整走向
- 类型专精:悬疑、言情、科幻等类型专项优化