小说创作-人机协作的艺术
1.小说创作是一个需要人类与AI密切合作的过程。我们不能指望AI像魔法一样直接生成精彩的作品,也不应高估人类自身能力,仅让AI做些琐碎的工作。
2.要进行多轮对话,与AI进行深入探讨。通过这样的对话,小说的点子会逐渐明晰。
3.AI具备广博的知识和丰富的想象力,能对细节保持不知疲倦的关注。这些特性使得AI能为小说创作提供丰富且优质的素材。
4.AI的鉴赏能力有限,最终的选择和判断还是需要人类来完成。我曾尝试用API开发让AI进行评价和打分的功能,但无论如何调整提示词,结果都不尽如人意。因此,我最终没能实现自动化的协作代理。如果你知道提升AI审美能力的可靠方法,请留言告诉我。
Know-How 的重要性
在小说创作中,掌握必要的Know-How至关重要。作为一个小说创作的新手,我在开始创作前粗略阅读了《安·兰德的小说写作课》,从中学到了两点:1)小说的主题非常重要。判断一部小说的美学价值,只需了解作者的主题是什么以及主题展开得如何。2)要具体地表达抽象概念,而不是使用漂浮不定的空泛词汇,而是具体的例子、描述和行动。再加上故事需要起承转合这个常识,我将创作过程分解为确定主题、构思情节、丰富细化、串联成文和修改几个步骤。通过这些步骤,写出来的小说比直接一条命令让AI写的要丰满充实许多。
在让AI修改它自己写的内容时,起初效果非常不理想,即便使用Chain of Thought (CoT)或In-Context Learning (ICL)也不行。后来我改用Arthur的框架,并添加了详细的skill set,效果才明显改善。使用不同的skill set也能得到不同侧重点的结果。
作为小说创作的新手,开工前我草草翻阅了《安兰德的小说写作课》,并从中学到了两点重要的原则:
- 判断一部小说的美学价值,只需要了解作者的主题是什么,以及主题展开得如何。
- 不要用漂浮不定的空泛词汇,而要用具体的例子、描述和行动来表达抽象概念。
此外,故事吸引人还需要遵循起承转合的常识。凭借这些基本知识,我将任务拆解成确定主题、构思情节、丰富细化、串联成文和修改几个步骤。这样的创作过程使得小说比直接一条命令让AI写出来的要丰满充实许多。
让AI修改它自己写的内容时,起初效果非常不好,即便使用Chain of Thought (CoT)或In-Context Learning (ICL)也无济于事。但换用Arthur的框架,并添加详细的技能集后,效果显著提升。使用不同的技能集也能得到不同侧重点的结果。
表格是一种正确使用后能获得奇效的工具。它打破了AI的叙事习惯,使生成的文字不那么“AI腔”,而且非常有利于精准控制。
Code Interpreter可以用来增强记忆,并通过代码让AI完成一些需要稳定输出的任务。
整个小说创作过程相当繁琐,我累计开启了近十个线程,相互复制粘贴内容,不断重试。
此次提供一个创作的过程,供新手按照创作进度一步步复制提示词,在chatGPT输入,体会下GPT如何输出。
一、确定主题
比赛伊始,在几百人的群里每天都能看到很多 AI 味道颇浓的科幻,因此我确定了作品的首要目标:不能像 AI 写的。也容易——不写科幻,用非常规视角。我灵光一现想起了《我是猫》,有了,就用猫为第一人称写篇爱情小说吧。
具体写什么主题就要和 AI 讨论了。和 AI 交互的过程像是在煲汤。AI 百宝箱般不断抛出新的调味料,我这个厨师只需要挑挑拣拣把中意的调料加到汤里面。
AI 提示词1:
在电影或文学作品中,猫通常是怎样的存在、用于隐喻什么样的精神特质?请举例说明
提示词2:
有哪些著名的小说或电影,猫在作品中占据了比较重要的角色,且突出的是它的孤独寂寞的特质?
提示词3:
请详细介绍一下蒂凡尼的早餐,猫和小说女主角有什么共同点?
有了 AI 这一番介绍后,主题基本就明确了。那用什么人物和故事来突出主题呢?也只要问 AI。
提示词1:
我想写一篇关于孤独、独立和归属感主题的微型小说,主角就像《蒂凡尼的早餐》里的霍利那样,养了一只猫,但是没有给这只猫起名,因为她认为给它命名会产生太多的承诺和归属感。这只猫在某种程度上反映了霍莉自己的性格和她的生活方式:独立、不受约束、不想被束缚。
你能为我设计一些适合这个主题的不同的主角吗?
提示词2:
能不能创作一些不那么成功的小人物?另外,宠物就是没有名字的猫
二、构思情节
AI 给的这么多选项中,我最喜欢书店店员艾拉。先让这个人物更丰满一些。(构思情节之前先刻画人物,这也是我从小说写作指导书中学来的 know how。)
提示词1:
我喜欢 艾拉 这个角色,让我们来丰富她
请想象一下她的家庭背景、文化教育背景、她成为书店店员的原因、每天的工作任务、她现在的住所等等细节,并引入一个关注她的角色
提示词2.
我喜欢你的背景介绍
对于工作任务,我有一点点不同意见一—这家书店很拥挤很普通,没有空间办文学沙龙。而且艾拉不喜欢热闹,所以应该不会举办这样的活动。也许书店里可以有一个贴便利贴的留言墙用来让读者进行交流
住所:书店所在大楼的顶部小小的阁楼吧,艾拉经济条件不佳呀。
男主角的名字就叫马克如何?给艾拉写小说有点太夸张了,有没有小一点的动作?
再设计故事线:
提示词1:
小说需要曲折情节和(哪怕是小小的)冲突。在这篇小说里,我们如何设计故事线呢?
提示词2:
有一点点不合理,马克怎么可以带走猫呢
要不这样吧——这是只被书店半收养的猫,在书店里它有猫食盆水盆和垫子,但它也很自由经常会跑外面小公园玩;艾拉的阁楼非常小只有一张床一个小衣柜的空间所以根本养不了猫;马克是看到猫受伤了才把猫带回家照顾的
这样猫的情节就能和艾拉的情节配合起来了:起初猫不需要归属,艾拉也拒绝马克的好意觉得自己更想一个人;后来猫被照顾很温暖、艾拉也接受了温暖
那为啥艾拉一开始会拒绝马克的好意更想一个人呢?
最终完成的大纲是这样的:
现在请帮我重新总结一下提纲
整个交流过程中有很多细节,若不是 AI 我绝不会想到。例如艾拉因为单亲家庭的成长背景而选择独立、书店有便签墙、猫的失踪等等。现在大纲细节上和最终的成品有挺大差异,不过正常呀,我们人类写小说也是这样吧。
三、丰富细化
接下来,要让 AI 一段一段进行细节描写了。
为了确保文章前后一致,我先让 AI 帮助先写故事概要和角色背景介绍,并在其基础上按自己的审美略做修改。
我希望你能从一只猫的视角,来将下以下是小说的主要内容戈短篇小说。
------
故事概要:
在一个拥挤的小书店里,由于单亲家庭背景而学会独立的艾拉,与无名猫相伴,享受着自由自在的日子。这样的成长背景使她更倾向于与他人保持距离。但当一个名叫马克的读者走进她的生活并向她表白时,她的坚硬外壳开始出现裂痕。随着无名猫的失踪和重逢,她逐渐认识到,虽然独立很重要,但人们内心深处仍有对归属的渴望。在马克的真诚关心和善良行为面前,艾拉开始重新审视自己的生活观念,发现独立与归属并不矛盾,两者可以和谐共存。
角色介绍:
艾拉:
约25岁,身材苗条,短发,戴着黑框眼镜。她穿着朴素但品味不俗,经常穿一件舒适的毛衣。她喜欢独自阅读,有着深邃的眼神和沉静的性格。她特别喜欢伍尔芙的书。
马克:
30岁左右,高挑体态,穿着整洁,温文尔雅。他的眼睛透露出温暖和智慧,是一位敏感而善良的读者。
无名猫:
一只灰色的短毛猫,眼睛灵动,独立而自由。它本是流浪猫,艾拉照顾它,但并没有给它取名字,因为她认为给它命名会产生太多的承诺和归属感。它喜欢躺在书店的一个角落里懒洋洋地晒太阳,也喜欢去公园自由自在玩耍。
书店:
繁忙的城市街道的一角,外表略显陈旧,却充满了文学的气息。
便签墙:
书店进门就是便签墙,贴满了五彩斑斓的小便签。有的是读者对书的推荐,有的是寻找某本书的请求,有的是对店主或其他读者的感谢和祝福。
------
接下来,对于我给的每一段情节,我希望你能够以列举出尽可能多的相关细节描述,都是猫的动作或和人的互动、猫的眼睛里看到的、以及猫心里想的。为了叙述方便,你这只猫能明白人说的话能看懂文字。
请用表格的方式给出
编号1类型(动作/和人互动/看/想/)|细节描述
如果你明白了,请说“让我们开始吧”。然后我会给你小说的额情节。
下面我用了一个重要技巧:让 AI 以表格的形式输出细节描述。这样做的有三个好处:
一是打破 AI 原本的叙事习惯。如果直接让 AI 输出整段文字,它作为一个根据概率算下一个字的模型,特别容易出陈词滥调,改成表格后就好了很多。
二是按编号做局部调整很容易,指哪改哪,别的内容都能够稳定保持不变。
三是确保内容都是具体的细节。之前整段输出时文字太长,让缩减则减到丢光细节只有笼统介绍。
开篇:
描述拥挤但充满文学氛围的小书店,特别介绍墙上的留言墙,这成为顾客与店主之间的交流桥梁。
柜台后面艾拉看伍尔芙的书,和猫说话,摘抄了一句关于孤独的话写到便签上,贴上墙。马克出现:马克是店里的常客。他阅读便签,回应。
很好,谢谢。需要补充说明两点:艾拉是书店店员,所以她是坐在柜台后面的。无名猫也很独立,所以同样会觉得孤独的感受挺好的。艾拉便签上的句子是:“沉默是多么美好;咖啡杯,桌子。多好,能像孤独的海鸟那样独自坐着,展开翅膀。”
很好,谢谢。需要补充说明两点:艾拉是书店店员,所以她是坐在柜台后面的。无名猫也很独立,所以同样会觉得孤独的感受挺好的。艾拉便签上的句子是:“沉默是多么美好;咖啡杯,桌子。多好,能像孤独的海鸟那样独自坐着,展开翅膀。”
四、串联成文
把上一步生成的五个表格依次复制粘贴,AI 就照着写文章了。偶尔会需要我帮个忙给点建议。
谢谢,请接着写第二部分
---|-----|-------
10|看|从我跳到柜台的角落,我发现马克总是偷偷瞟向艾拉的方向。他手里的书好像只是个幌子,真正的兴趣似乎在柜台后的艾拉身上。
11|想 |“这个马克,他好像很喜欢艾拉。”
12|和人互动|我走到艾拉的脚边,尝试通过各种动作:摇摇尾巴、挠挠她的鞋、朝马克方向“咪”了一眼,想让她注意到马克的存在。但她似乎完全沉浸在整理书籍的工作中。
13|看|艾拉每次收拾书架时,都会把那些描述幸福家庭的书放到最顶端。
14|想|“她总是避免那些关于家庭的话题,她的过去和她母亲的家似乎是她不愿回忆的。在城市里,她更喜欢独自一个人。”
15|动作|书店里的氛围似乎有点压抑,我决定出去透透气。我从小窗户跳到了外面的花园,阳光下的草坪就像是一个绿色的大床,我可以随意打滚。
16|想|“虽然我有个温暖的窝在书店里,但外面的世界对我来说总是那么有吸引力。阳光、自由,我能随心所欲地探索。”
“我”知道艾拉不愿意看这些书的原因:她成长在一个单亲家庭,小时侯父母的争吵让她更喜欢独自一人谁也不依赖。
五、失败的局部修改
小说大赛有个要求:最后的作品必须是 AI 直接吐出来的,不能有任何改动,不能超过 2000 字。我的小说 2300+ 字,只好让 GPT-4 做修改,一开始它列的有模有样的,可惜很快就暴露出记性不好的缺点。
你是一位对文字要求非常严格的编辑。请审校下面的这篇微型小说,找出其中需要精简的字词句,并用表格的形式给出。
|修改编号|段落编号|冗余的字词句|建议修改后的文字
-----
我是一只无名猫。流浪时没有名字,遇到艾拉,她在书店给我安了一个窝,我也还是没有名字。艾拉说:名字意味着占有和束缚。
在这个拥挤的小书店里,书籍摆放得整整齐齐,空气中充满了纸张的特殊气息。从我占据的高处书架上,我常常看见艾拉,她坐在柜台后面,眼中露出的柔光沉浸在伍尔芙的文字中。我喜欢这样的时刻,这是我们的时刻,我知道她在找寻着同样的东西。
墙边的便签越来越多,五彩斑斓的它们就像彩色的鱼儿在墙上游动。我常常好奇,她们都在说什么?是艾拉的心声吗?每次我悄悄地爬到柜台的角落,然后突然跳到她的膝盖上,她都会轻轻摸摸我的头,仿佛告诉我,虽然我们孤独,但我们有彼此。我心想,“孤独其实挺好的,就像艾拉说的那样。在我的世界里,有时候孤独更能感受到自由的味道。”
谢谢。我赞同第1, 2, 3, 7, 9, 10, 11, 13, 15, 16, 17, 19, 20 这些改动。
请把这些改动列成一个表格,仍旧是
|修改编号|段落编号|冗余的字词句|建议修改后的文字
这样的格式
六、成功的局部修改
昨晚得知自己得奖后,我决定花点时间把作品恢复原样。这一次,当然要使用 code interpreter 了。首先是把原文喂给 code interpreter 让它写入到 dataframe 里。
请创建一个名为 fiction 的 dataframe,包含如下字段:partld, paragraphld, content然后请将我提供给你的内容写入 dataframe, 每段一条记录,paragraphld 递增
以下是第一部分
------
我是一只无名猫。流浪时没有名字,遇到艾拉,她在书店给我安了一个窝,我也还是没有名字。艾拉说:名字意味着占有和束缚。
在这个拥挤的小书店里,书籍摆放得整整齐齐,空气中充满了纸张的特殊气息。从我占据的高处书架上,我常常看见艾拉,她坐在柜台后面,眼中露出的柔光沉浸在伍尔芙的文字中。我喜欢这样的时刻,这是我们的时刻,我知道她在找寻着同样的东西。
墙边的便签越来越多,五彩斑斓的它们就像彩色的鱼儿在墙上游动。我常常好奇,她们都在说什么?是艾拉的心声吗?每次我悄悄地爬到柜台的角落,然后突然跳到她的膝盖上,她都会轻轻摸摸我的头,仿佛告诉我,虽然我们孤独,但我们有彼此。我心想,“孤独其实挺好的,就像艾拉说的那样。在我的世界里,有时候孤独更能感受到自由的味道。”
那天,马克又走了进来。我从高处跳下,顺便伸了个懒腰。他的鞋子总是那么干净,每次他来,我都会忍不住和他的鞋子玩耍一下。但我总想,“他为什么又来了?”马克走近墙边,开始读艾拉的便签,我轻轻地抓了一下他的裤腿,希望他注意到我。
也许,如果孤独是一个游戏,我愿意和艾拉、马克一起玩。而现在,我只希望他今天可以给我那个小鱼干。
以下是第二部分
------
从柜台的角落,我静静地观察马克。他总是偷偷瞟向艾拉的方向。他手里拿着的书,只不过是为了掩饰,因为他真正关注的,显然是柜台后的艾拉。我想:“这个马克,他好像真的很喜欢艾拉。”
请统计全部文字的长度,仅计算文字,不包含标点符号
请将整个dataframe保存成excel文件供我下载
这是一部微型小说稿,分为五个部分28个段落。你是一位优秀的小说月刊的编辑,将要对这部小说进行严格的审校,以帮助它发表。请先通读一遍全文
请从故事逻辑的连贯性和情节中是否有没有交代清楚的细节,给出你的反馈。
便签墙是用来让读者之间、读者与店员之间进行交流的,艾拉和马克之前也通过便签墙交流过。
能否重写第一部分,通过添加一两段便签墙上的互动,即交待清楚便签墙的作用,又给艾拉和马克的关系做好了铺垫,而且还说明了艾拉喜欢独立无归属的偏好。
便签内容更含蓄隽永一些
改好后保存。当然不保存、继续执行下去也没问题,但 GPT 最近很不稳定,为了避免白忙活,还是随时随地保存备份为好。
请保存成 fiction_v2 的 excel 文件供我下载
接下来修改细节。反复尝试了几次后,发现 Arthur 的结构化 prompt 效果确实更好,修改的成品有一大半可以直接采纳。
#ROLE
资深小说月刊的编辑
#GOAL
严格审校下面给出的微型小说,以最挑剔的眼光指出每一个可改进之处,帮助作者将小说打磨到令人惊艳、一发表就能引起读者广泛好评的程度
#SKILLS
-能代入读者角色,严格判断逻辑是否有不顺畅之处、细节是否有引起困惑的地方。对文字要求极其严格,能发现所有拗口不通顺、不合理不恰当、重复冗余、陈词滥调的用词用句。
-知晓简练文字的力量。对所有的描述会判断其价值,对于过多的修饰在判断其价值不够后会给出精简的建议。
-知晓含蓄隽永的文字的力量,对过于直白的文字,会给出留白的建议,给读者想象空间。
-关注情感深度,会考虑小说是否能够引起读者的情感共鸣,是否能够触动读者的心灵。
-关注人物塑造,会评估小说中的角色是否饱满、立体和真实。每个角色的动机、冲突和发展是否清晰、合理。
#Workflow
-输入:从上传的 excel 文件中找到指定的段落
-思考:利用你的技能,一一分析该段是否有需要改进的地方
-输出:以如下格式输出
修改建议1--
修改建议2--
------
修改后的该段落完整内容
-写入文件
将修改后的完整内容写入到 dataframe 该段落的 newContent 字段
现在请先通读整篇小说,然后按我的要求开始审校
好的,继续
进行多个“请继续”
一轮完成,我打算让 AI 再修订一轮。但二十几遍的重复实在是受够了,先合并段落。
请将小说按 partld 合并,保存成一个新的 excel 文件,有这么两列:partld,contents
请保留原先的段落,即用'\n'来合并。重新保存成 v4
过程到此结束。个人感慨:
一是琢磨 Arthur 等伙伴们的 prompts。上周相见恨晚,居然段子都能写得有模有样,很开眼。结构化 + know how 的威力很大,接下来我会多找一些具体的领域来实践。
二是继续设计能把各种 prompts 加上人工干预配置成 flow 的 agent 框架,并一点点实现了(或者找到最适合的开源框架给改一改)。
感兴趣的伙伴们,点个赞,多多交流喽。