小说创作-人机协作的艺术
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 框架,并一点点实现了(或者找到最适合的开源框架给改一改)。
感兴趣的伙伴们,点个赞,多多交流喽。