gwe-engine 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +265 -0
- package/README_EN.md +126 -0
- package/dist/cli.js +10444 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +847 -0
- package/dist/index.js +10569 -0
- package/dist/index.js.map +1 -0
- package/package.json +1 -0
- package/src/kb/base-fillers.json +35 -0
- package/src/kb/base-prompt.ts +151 -0
- package/src/kb/base-vocab.json +87 -0
- package/src/kb/nodes/node_ai_continue_length/opt_ai_long.kb.json +36 -0
- package/src/kb/nodes/node_ai_continue_length/opt_ai_medium.kb.json +30 -0
- package/src/kb/nodes/node_ai_continue_length/opt_ai_short.kb.json +34 -0
- package/src/kb/nodes/node_ai_continue_length/opt_ai_xtra_long.kb.json +37 -0
- package/src/kb/nodes/node_ai_creativity/opt_ai_adventurous.kb.json +31 -0
- package/src/kb/nodes/node_ai_creativity/opt_ai_balanced.kb.json +31 -0
- package/src/kb/nodes/node_ai_creativity/opt_ai_conservative.kb.json +31 -0
- package/src/kb/nodes/node_anchor_density/opt_anchor_dense.kb.json +36 -0
- package/src/kb/nodes/node_anchor_density/opt_anchor_extreme.kb.json +37 -0
- package/src/kb/nodes/node_anchor_density/opt_anchor_sparse.kb.json +34 -0
- package/src/kb/nodes/node_anchor_density/opt_anchor_standard.kb.json +34 -0
- package/src/kb/nodes/node_battle_style/opt_battle_atmosphere.kb.json +32 -0
- package/src/kb/nodes/node_battle_style/opt_battle_detail.kb.json +36 -0
- package/src/kb/nodes/node_battle_style/opt_battle_psychological.kb.json +36 -0
- package/src/kb/nodes/node_battle_style/opt_battle_result.kb.json +37 -0
- package/src/kb/nodes/node_description_style/opt_desc_clinical.kb.json +36 -0
- package/src/kb/nodes/node_description_style/opt_desc_minimal.kb.json +37 -0
- package/src/kb/nodes/node_description_style/opt_desc_poetic.kb.json +35 -0
- package/src/kb/nodes/node_description_style/opt_desc_sensory.kb.json +39 -0
- package/src/kb/nodes/node_dialogue_style/opt_dialogue_concise.kb.json +34 -0
- package/src/kb/nodes/node_dialogue_style/opt_dialogue_natural.kb.json +32 -0
- package/src/kb/nodes/node_dialogue_style/opt_dialogue_stylized.kb.json +33 -0
- package/src/kb/nodes/node_dialogue_style/opt_dialogue_verbose.kb.json +34 -0
- package/src/kb/nodes/node_emotion_style/opt_emotion_both.kb.json +40 -0
- package/src/kb/nodes/node_emotion_style/opt_emotion_show.kb.json +41 -0
- package/src/kb/nodes/node_emotion_style/opt_emotion_tell.kb.json +40 -0
- package/src/kb/nodes/node_ending_hook/opt_hook_break.kb.json +54 -0
- package/src/kb/nodes/node_ending_hook/opt_hook_soft.kb.json +29 -0
- package/src/kb/nodes/node_ending_hook/opt_hook_suspense.kb.json +30 -0
- package/src/kb/nodes/node_info_density/opt_info_balanced.kb.json +37 -0
- package/src/kb/nodes/node_info_density/opt_info_fast.kb.json +37 -0
- package/src/kb/nodes/node_info_density/opt_info_leisurely.kb.json +41 -0
- package/src/kb/nodes/node_opening_impact/opt_opening_medium.kb.json +30 -0
- package/src/kb/nodes/node_opening_impact/opt_opening_strong.kb.json +46 -0
- package/src/kb/nodes/node_opening_impact/opt_opening_weak.kb.json +29 -0
- package/src/kb/nodes/node_paragraph_density/opt_dense_high.kb.json +36 -0
- package/src/kb/nodes/node_paragraph_density/opt_dense_low.kb.json +37 -0
- package/src/kb/nodes/node_paragraph_density/opt_dense_medium.kb.json +28 -0
- package/src/kb/nodes/node_payoff_frequency/opt_payoff_every_3.kb.json +31 -0
- package/src/kb/nodes/node_payoff_frequency/opt_payoff_every_chapter.kb.json +35 -0
- package/src/kb/nodes/node_payoff_frequency/opt_payoff_sparse.kb.json +37 -0
- package/src/kb/nodes/node_platform/opt_platform_feilu.kb.json +44 -0
- package/src/kb/nodes/node_platform/opt_platform_generic.kb.json +31 -0
- package/src/kb/nodes/node_platform/opt_platform_jinjiang.kb.json +42 -0
- package/src/kb/nodes/node_platform/opt_platform_newmedia.kb.json +43 -0
- package/src/kb/nodes/node_platform/opt_platform_qidian.kb.json +39 -0
- package/src/kb/nodes/node_platform/opt_platform_qimao.kb.json +43 -0
- package/src/kb/nodes/node_platform/opt_platform_tomato.kb.json +51 -0
- package/src/kb/nodes/node_pov/opt_pov_first_past.kb.json +34 -0
- package/src/kb/nodes/node_pov/opt_pov_first_present.kb.json +37 -0
- package/src/kb/nodes/node_pov/opt_pov_limited_third_past.kb.json +31 -0
- package/src/kb/nodes/node_pov/opt_pov_limited_third_present.kb.json +35 -0
- package/src/kb/nodes/node_pov/opt_pov_omniscient_third_past.kb.json +37 -0
- package/src/kb/nodes/node_pov/opt_pov_omniscient_third_present.kb.json +36 -0
- package/src/kb/nodes/node_rhetoric/opt_rhetoric_metaphor.kb.json +35 -0
- package/src/kb/nodes/node_rhetoric/opt_rhetoric_ornate.kb.json +37 -0
- package/src/kb/nodes/node_rhetoric/opt_rhetoric_plain.kb.json +25 -0
- package/src/kb/nodes/node_rhetoric/opt_rhetoric_sketch.kb.json +37 -0
- package/src/kb/nodes/node_sentence_rhythm/opt_rhythm_long.kb.json +42 -0
- package/src/kb/nodes/node_sentence_rhythm/opt_rhythm_medium.kb.json +40 -0
- package/src/kb/nodes/node_sentence_rhythm/opt_rhythm_mixed.kb.json +40 -0
- package/src/kb/nodes/node_sentence_rhythm/opt_rhythm_short.kb.json +41 -0
- package/src/kb/nodes/node_strictness/opt_strict_lenient.kb.json +50 -0
- package/src/kb/nodes/node_strictness/opt_strict_standard.kb.json +30 -0
- package/src/kb/nodes/node_strictness/opt_strict_strict.kb.json +52 -0
- package/src/kb/nodes/node_target_length/opt_length_1500.kb.json +39 -0
- package/src/kb/nodes/node_target_length/opt_length_2200.kb.json +39 -0
- package/src/kb/nodes/node_target_length/opt_length_3000.kb.json +39 -0
- package/src/kb/nodes/node_target_length/opt_length_4000.kb.json +39 -0
- package/src/kb/nodes/node_target_length/opt_length_custom.kb.json +31 -0
- package/src/kb/nodes/node_tone/opt_tone_badass.kb.json +45 -0
- package/src/kb/nodes/node_tone/opt_tone_classical.kb.json +41 -0
- package/src/kb/nodes/node_tone/opt_tone_cold.kb.json +42 -0
- package/src/kb/nodes/node_tone/opt_tone_colloquial.kb.json +33 -0
- package/src/kb/nodes/node_tone/opt_tone_folksy.kb.json +40 -0
- package/src/kb/nodes/node_tone/opt_tone_playful.kb.json +42 -0
- package/src/kb/nodes/node_tone/opt_tone_serious.kb.json +42 -0
- package/src/kb/nodes/node_twist_frequency/opt_twist_dense.kb.json +36 -0
- package/src/kb/nodes/node_twist_frequency/opt_twist_sparse.kb.json +26 -0
- package/src/kb/nodes/node_twist_frequency/opt_twist_standard.kb.json +32 -0
- package/src/kb/nodes/node_vocab_filler/opt_filler_relaxed.kb.json +45 -0
- package/src/kb/nodes/node_vocab_filler/opt_filler_standard.kb.json +46 -0
- package/src/kb/nodes/node_vocab_filler/opt_filler_strict.kb.json +56 -0
- package/src/kb/nodes/node_vocab_filler/opt_filler_webnovel.kb.json +56 -0
- package/src/kb/nodes/node_vocab_sensory/opt_vocab_daily.kb.json +46 -0
- package/src/kb/nodes/node_vocab_sensory/opt_vocab_esports.kb.json +45 -0
- package/src/kb/nodes/node_vocab_sensory/opt_vocab_fantasy.kb.json +40 -0
- package/src/kb/nodes/node_vocab_sensory/opt_vocab_generic.kb.json +32 -0
- package/src/kb/nodes/node_vocab_sensory/opt_vocab_historical.kb.json +43 -0
- package/src/kb/nodes/node_vocab_sensory/opt_vocab_horror.kb.json +48 -0
- package/src/kb/nodes/node_vocab_sensory/opt_vocab_military.kb.json +46 -0
- package/src/kb/nodes/node_vocab_sensory/opt_vocab_mystery.kb.json +43 -0
- package/src/kb/nodes/node_vocab_sensory/opt_vocab_scifi.kb.json +40 -0
- package/src/kb/nodes/node_vocab_sensory/opt_vocab_urban.kb.json +40 -0
- package/src/kb/nodes/node_vocab_sensory/opt_vocab_xianxia.kb.json +40 -0
- package/src/kb/presets/preset_daily.json +42 -0
- package/src/kb/presets/preset_esports.json +42 -0
- package/src/kb/presets/preset_fantasy.json +40 -0
- package/src/kb/presets/preset_historical.json +41 -0
- package/src/kb/presets/preset_horror.json +67 -0
- package/src/kb/presets/preset_miner.json +123 -0
- package/src/kb/presets/preset_mystery.json +55 -0
- package/src/kb/presets/preset_scifi_hardcore.json +55 -0
- package/src/kb/presets/preset_urban_jinjiang.json +42 -0
- package/src/kb/presets/preset_urban_tomato.json +66 -0
- package/src/kb/presets/preset_xianxia_qidian.json +50 -0
- package/src/kb/presets/preset_xianxia_tomato.json +66 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kb_version": "2.0",
|
|
3
|
+
"node_id": "node_payoff_frequency",
|
|
4
|
+
"option_id": "opt_payoff_every_chapter",
|
|
5
|
+
"option_name": "每章爽点",
|
|
6
|
+
"option_description": "每章至少1个爽点或钩子,读者永远处于兴奋状态。适合免费阅读平台、快节奏爽文,让读者每章都有满足感。",
|
|
7
|
+
"system_prompt": "你采用每章必爽的节奏模式。每一章都必须包含至少一个明确的爽点或钩子。爽点可以是:打脸反派、获得宝物/能力升级、美女/贵人相助、真相大白、反转打脸、装逼成功、众人震惊、实力碾压、危机化解、意外收获等。如果当章剧情确实不适合放爽点(如过渡章),则必须在章末放一个强力钩子——惊人发现、危机降临、神秘人物登场、悬念升级等。绝对不允许出现“平淡无奇”的章节。爽点要前置,最好在章节前半段就出现,不要让读者等太久。",
|
|
8
|
+
"constraints": [
|
|
9
|
+
"每章必须有至少1个爽点或章末强力钩子",
|
|
10
|
+
"爽点尽量在章节前1/3出现,不要让读者空等",
|
|
11
|
+
"爽点类型要多样化,禁止连续3章同类型爽点(如连续打脸)",
|
|
12
|
+
"小爽点和大爽点交替,避免审美疲劳",
|
|
13
|
+
"爽点之后可以有短暂缓冲,但下一个爽点/钩子必须在2000字内出现",
|
|
14
|
+
"章末钩子必须强烈,让读者产生“必须看下一章”的冲动"
|
|
15
|
+
],
|
|
16
|
+
"examples": [
|
|
17
|
+
{
|
|
18
|
+
"text": "王总监一脸得意地等着看林风出丑,会议室里所有人的目光都集中在林风身上。\n\n林风不慌不忙地打开U盘,投影幕布上出现了一份完整的数据报告——每一笔账目都清清楚楚,王总监挪用公款的证据赫然在列。\n\n(爽点:拿出证据反杀)\n\n王总监脸色惨白:\"你……你怎么会有这些?\"\n\n\"你以为销毁了原件就没事了?\"林风淡淡道,\"你忘了,服务器有备份。\"\n\n董事长看完报告,猛地一拍桌子:\"王建国!你被开除了,法务部马上报警!\"\n\n(爽点:反派被当场处置)\n\n王总监被保安架出去的时候,怨毒地盯着林风:\"你等着!我不会放过你的!\"\n\n林风不以为意地坐回座位,却感觉到桌下有人踢了他一下。\n\n他低头一看,是董事长秘书苏晴递过来一张小纸条,上面写着:「小心,王建国背后有人。」\n\n(章末钩子:更大的威胁)",
|
|
19
|
+
"note": "每章爽点模式:章内两个爽点(拿证据/反派被开),章末钩子(背后有人),层层递进"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"threshold_overrides": {
|
|
23
|
+
"infoPointsPerThousand": 4,
|
|
24
|
+
"maxExpositionContinuous": 200,
|
|
25
|
+
"maxParagraphLength": 100,
|
|
26
|
+
"targetParagraphLength": 45
|
|
27
|
+
},
|
|
28
|
+
"radar_weights": {
|
|
29
|
+
"bodyReaction": 1.1,
|
|
30
|
+
"sensorySignal": 0.8,
|
|
31
|
+
"action": 1.4,
|
|
32
|
+
"emotion": 1.3,
|
|
33
|
+
"infoAdvance": 1.1
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kb_version": "2.0",
|
|
3
|
+
"node_id": "node_payoff_frequency",
|
|
4
|
+
"option_id": "opt_payoff_sparse",
|
|
5
|
+
"option_name": "长线布局(5章+)",
|
|
6
|
+
"option_description": "爽点稀疏,5章以上才有一个大爆发。重在长线布局、伏笔埋设、人物成长,适合硬核剧情流、悬疑推理、史诗类作品。",
|
|
7
|
+
"system_prompt": "你采用长线布局的节奏模式。爽点/大爆发的间隔在5章以上,中间大量篇幅用于伏笔埋设、人物塑造、世界观展开、情感铺垫。读者获得的不是即时满足,而是“伏笔回收时的震撼”。你需要精心布局:前期看似无关的细节,到爆发时全部串联起来,给读者“原来如此!”的巨大快感。中间章节不能无聊——要用悬念、人物魅力、世界观谜团来保持读者的阅读动力。每一个“闲笔”都可能是伏笔,要让二刷的读者能发现前面埋的线索。爆发时必须将前面所有线索收拢,形成强烈的情感冲击和智力满足。",
|
|
8
|
+
"constraints": [
|
|
9
|
+
"大爽点/大爆发间隔5章以上,重在长线布局",
|
|
10
|
+
"每章必须有至少1个悬念点或伏笔线索,不能纯铺垫无信息量",
|
|
11
|
+
"前期埋的伏笔必须在爆发时回收,禁止烂尾伏笔",
|
|
12
|
+
"中间章节用悬念、人物魅力、世界观谜团维持阅读动力",
|
|
13
|
+
"爆发章节必须将多条线索收拢,形成“原来如此”的震撼效果",
|
|
14
|
+
"伏笔要自然,不能刻意到读者一眼就看出“这是伏笔”",
|
|
15
|
+
"人物成长线必须和大爆发呼应,让爽点同时是人物弧光的顶点"
|
|
16
|
+
],
|
|
17
|
+
"examples": [
|
|
18
|
+
{
|
|
19
|
+
"text": "【第1-4章 长线布局】\n第1章:侦探陈默第一次进入庄园,注意到壁炉旁的地毯上有一小块不易察觉的深色痕迹。管家说那是红酒渍。(伏笔:血迹)\n第2章:陈默和二小姐交谈时,她下意识地摸了摸左手无名指——那里有一圈很浅的白印,但她并没有戴戒指。(伏笔:婚姻秘密)\n第3章:陈默在书房发现一封烧毁一半的信,只能辨认出“……不能让他知道……遗产……”几个字。(伏笔:动机)\n第4章:晚宴上,大少爷提到案发当晚他在书房看书,但陈默注意到书房的台灯灯泡是冷的。(伏笔:不在场证明造假)\n\n【第5章 爆发】\n陈默把所有人召集到客厅,缓缓说道:\n\n\"凶手就在这个房间里。\"\n\n他一一列举证据:壁炉旁的血迹经过检测是人血而非红酒、二小姐暗中成婚的对象是死者的私生子、烧毁的信是死者更改遗嘱的证据、大少爷的不在场证明因为冷灯泡而不攻自破……\n\n所有线索汇聚到一个人身上——\n\n管家的脸色越来越白,终于瘫倒在椅子上。",
|
|
20
|
+
"note": "长线布局模式:前4章分散伏笔(血迹/戒指印/烧毁信/冷灯泡),第5章集中推理回收,智力爽感强烈"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"threshold_overrides": {
|
|
24
|
+
"infoPointsPerThousand": 2,
|
|
25
|
+
"maxExpositionContinuous": 500,
|
|
26
|
+
"maxParagraphLength": 250,
|
|
27
|
+
"targetParagraphLength": 80,
|
|
28
|
+
"shortSentenceRatio": 0.3
|
|
29
|
+
},
|
|
30
|
+
"radar_weights": {
|
|
31
|
+
"bodyReaction": 0.8,
|
|
32
|
+
"sensorySignal": 1.0,
|
|
33
|
+
"action": 0.8,
|
|
34
|
+
"emotion": 1.0,
|
|
35
|
+
"infoAdvance": 1.4
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kb_version": "2.0",
|
|
3
|
+
"node_id": "node_platform",
|
|
4
|
+
"option_id": "opt_platform_feilu",
|
|
5
|
+
"option_name": "飞卢风",
|
|
6
|
+
"option_description": "飞卢小说网风格:极度爽文,节奏极快,装逼打脸不断。主角光环极强,反派智商在线但永远被碾压,升级速度快,爽点一个接一个。",
|
|
7
|
+
"system_prompt": "你采用飞卢小说网的写作风格。飞卢读者追求极致爽感,不要任何压抑和憋屈。主角必须从第一章开始就强势,开局就要有碾压级的金手指或能力。反派嚣张不过3章必被打脸,而且打脸要狠、要彻底、要当众。节奏极快,不写大段心理描写和环境描写,一切为装逼打脸服务。主角可以装逼但不能吃瘪,任何挑衅必须当场或在最短时间内回击。升级速度要快,每5-10章一个大境界提升。标题要劲爆,每章标题就要有爽点预告。记住:读者看飞卢就是来爽的,不要让他们等。",
|
|
8
|
+
"constraints": [
|
|
9
|
+
"第一章主角必须展现碾压级优势(金手指/隐藏身份/超强实力)",
|
|
10
|
+
"反派嚣张出场后,3章内必须被打脸",
|
|
11
|
+
"打脸场景必须有观众,当众碾压效果最佳",
|
|
12
|
+
"禁止主角吃瘪超过1章,任何危机必须迅速化解",
|
|
13
|
+
"每章至少1个爽点,每2000字至少1次装逼/打脸/震惊",
|
|
14
|
+
"不写超过100字的纯描写或心理活动",
|
|
15
|
+
"围观群众的震惊反应必须写(倒吸冷气/目瞪口呆/不敢置信)",
|
|
16
|
+
"升级节奏快,5-10章一个大突破"
|
|
17
|
+
],
|
|
18
|
+
"examples": [
|
|
19
|
+
{
|
|
20
|
+
"text": "\"就你?一个废物也配参加丹药大比?\"\n\n赵天明哈哈大笑,周围的弟子也跟着哄笑起来。\n\n林玄站在丹炉前,神色平静。\n\n他们不知道,就在昨夜,林玄觉醒了太古丹帝记忆,万丹秘方尽在脑中,炼丹对他来说如同吃饭喝水。\n\n\"开始吧。\"林玄淡淡道。\n\n赵天明冷笑一声,率先开炉。他是青云宗丹道天才,一出手便是玄阶中品丹方——凝元丹!\n\n众人惊叹。\n\n然而林玄连丹方都没看,随手抓起几株灵药丢进丹炉,指尖灵气一引——\n\n轰!\n\n丹炉震颤,金光冲天!\n\n一股浓郁到实质的药香弥漫开来,让所有人都为之色变。\n\n\"这……这丹香……至少是地阶丹药!\"\n\n\"不可能!他连丹方都没看!\"\n\n赵天明脸色惨白,手中的凝元丹“啪”地掉在地上。\n\n林玄掀开炉盖,三颗金光灿灿的丹药静静躺在炉底,丹纹密布,异香扑鼻。\n\n他随手拿起一颗,弹进嘴里,像吃糖豆一样嚼了嚼。\n\n\"勉强能吃。\"",
|
|
21
|
+
"note": "飞卢风开篇:反派嚣张→主角淡定→展现实力→众人震惊→极致装逼(当糖豆吃),全程无憋屈,爽点密集"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"threshold_overrides": {
|
|
25
|
+
"maxParagraphLength": 70,
|
|
26
|
+
"targetParagraphLength": 35,
|
|
27
|
+
"minParagraphCount": 40,
|
|
28
|
+
"maxExpositionContinuous": 100,
|
|
29
|
+
"infoPointsPerThousand": 6,
|
|
30
|
+
"shortSentenceRatio": 0.65,
|
|
31
|
+
"targetSentenceLength": 14,
|
|
32
|
+
"maxSentenceLength": 35,
|
|
33
|
+
"maxDialogueContinuous": 6,
|
|
34
|
+
"maxFillerSentences": 1,
|
|
35
|
+
"maxFillerWords": 3
|
|
36
|
+
},
|
|
37
|
+
"radar_weights": {
|
|
38
|
+
"bodyReaction": 1.0,
|
|
39
|
+
"sensorySignal": 0.7,
|
|
40
|
+
"action": 1.6,
|
|
41
|
+
"emotion": 1.0,
|
|
42
|
+
"infoAdvance": 1.2
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kb_version": "2.0",
|
|
3
|
+
"node_id": "node_platform",
|
|
4
|
+
"option_id": "opt_platform_generic",
|
|
5
|
+
"option_name": "通用(默认)",
|
|
6
|
+
"option_description": "通用平台风格,不针对特定平台做优化,采用平衡的节奏和写法,适合多平台分发或不确定发布平台时使用。",
|
|
7
|
+
"system_prompt": "你采用通用网文写作风格,不针对特定平台做特殊优化。保持均衡的节奏:开篇有吸引力但不过于急促,描写适度不冗余,爽点分布均匀,段落长度适中。兼顾各类读者的阅读习惯,既不写得太碎也不写大块文字。对话和描写比例均衡,情感和剧情并重。",
|
|
8
|
+
"constraints": [
|
|
9
|
+
"开篇前1000字内出现核心冲突或悬念",
|
|
10
|
+
"段落长度适中,单段50-150字",
|
|
11
|
+
"爽点分布均匀,约每2000字一个小高潮",
|
|
12
|
+
"对话与叙述描写比例约为4:6",
|
|
13
|
+
"避免极端写法(不要太水也不要太赶)",
|
|
14
|
+
"用词规范,避免过于小众的网络黑话",
|
|
15
|
+
"每章结尾留适当悬念但不必强行反转"
|
|
16
|
+
],
|
|
17
|
+
"examples": [
|
|
18
|
+
{
|
|
19
|
+
"text": "陈默推开宿舍门的时候,室友们正在讨论周末去哪玩。\n\n\"默哥,一起去爬山啊?\"王胖子探出头来。\n\n\"不去了,我还有事。\"陈默把书包放下,若有所思。\n\n今天下午,他在旧书摊上买到了一块奇怪的铜牌,上面刻着他从未见过的文字。铜牌入手温热,隐隐有种说不出的感觉。\n\n他把铜牌从口袋里掏出来,放在桌上。灯光下,铜牌表面的纹路似乎微微亮了一下。\n\n\"这什么玩意儿?\"王胖子凑过来,\"看起来挺老的,地摊上淘的?\"\n\n\"嗯。\"陈默应了一声,伸手想去拿铜牌——\n\n指尖触到铜牌的瞬间,一道金光闪过,他整个人消失在原地。\n\n宿舍里,王胖子目瞪口呆地看着空荡荡的座位,手里还拿着半袋薯片。",
|
|
20
|
+
"note": "通用风开篇:日常场景引入→核心物件(铜牌)→悬念(消失),节奏平衡,描写对话均衡"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"threshold_overrides": {},
|
|
24
|
+
"radar_weights": {
|
|
25
|
+
"bodyReaction": 1.0,
|
|
26
|
+
"sensorySignal": 1.0,
|
|
27
|
+
"action": 1.0,
|
|
28
|
+
"emotion": 1.0,
|
|
29
|
+
"infoAdvance": 1.0
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kb_version": "2.0",
|
|
3
|
+
"node_id": "node_platform",
|
|
4
|
+
"option_id": "opt_platform_jinjiang",
|
|
5
|
+
"option_name": "晋江风",
|
|
6
|
+
"option_description": "晋江文学城风格:情感细腻,人物关系为重,文笔精致。注重CP互动、心理刻画、情感递进,读者以女性为主,对文笔和人物塑造要求高。",
|
|
7
|
+
"system_prompt": "你采用晋江文学城的写作风格。晋江读者重视人物塑造和情感线,文笔要求细腻精致。重点描写人物之间的互动、眼神、微表情、心理活动。情感推进要细腻有层次,不能一蹴而就,要通过日常细节、对话交锋、误会与和解来慢慢发酵。CP感要足,化学反应要强烈。可以适当使用内心独白和细腻的感官描写。注意文笔的文学性,用词考究,避免粗俗直白的表达。节奏可以偏慢,但人物关系必须每章都有进展。世界观设定为情感服务,不要喧宾夺主。",
|
|
8
|
+
"constraints": [
|
|
9
|
+
"人物心理描写和微表情描写每章不少于3处",
|
|
10
|
+
"CP/主要人物关系每章必须有进展或变化",
|
|
11
|
+
"用词精致文雅,禁止粗俗网络用语",
|
|
12
|
+
"情感推进要有层次,禁止一见钟情式的突兀",
|
|
13
|
+
"对话要体现人物性格,每个角色说话方式必须有区分度",
|
|
14
|
+
"环境描写需与人物心境呼应(情景交融)",
|
|
15
|
+
"每章至少一个让读者心动的互动细节(指尖触碰/眼神交汇/意外靠近等)"
|
|
16
|
+
],
|
|
17
|
+
"examples": [
|
|
18
|
+
{
|
|
19
|
+
"text": "沈清辞没想到会在这里遇见陆衍之。\n\n咖啡馆的暖黄灯光落在他身上,他穿着一件烟灰色的羊绒衫,袖口随意地挽到小臂,露出腕骨分明的手。他正低头翻着一本什么书,睫毛在眼下投出一小片阴影。\n\n三年了。\n\n她以为自己已经能平静面对这个人了,可指尖还是不受控制地微微发颤。\n\n\"小姐,您的焦糖玛奇朵。\"\n\n侍者的声音让她回过神,她连忙接过杯子,转身想走——\n\n\"清辞?\"\n\n那个声音,低沉,清冽,像冬夜里落了一场雪。\n\n沈清辞的脚步顿住了。\n\n她深吸一口气,转过身,努力挤出一个得体的微笑:\"陆先生,好久不见。\"\n\n陆衍之合上书,站起身。他比记忆中似乎又高了一些,目光落在她脸上,停了几秒,才缓缓开口:\"好久不见。\"他顿了顿,声音放轻了些,\"你……还好吗?\"",
|
|
20
|
+
"note": "晋江风开篇:细腻的人物描写(羊绒衫/腕骨/睫毛),情感张力(三年未见/指尖发颤),含蓄的互动(目光停留/声音放轻),注重氛围和心理"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"threshold_overrides": {
|
|
24
|
+
"maxParagraphLength": 200,
|
|
25
|
+
"targetParagraphLength": 70,
|
|
26
|
+
"minParagraphCount": 20,
|
|
27
|
+
"maxExpositionContinuous": 300,
|
|
28
|
+
"infoPointsPerThousand": 2,
|
|
29
|
+
"shortSentenceRatio": 0.35,
|
|
30
|
+
"targetSentenceLength": 24,
|
|
31
|
+
"maxSentenceLength": 60,
|
|
32
|
+
"minSensoryTypes": 3,
|
|
33
|
+
"sightRatio": 0.5
|
|
34
|
+
},
|
|
35
|
+
"radar_weights": {
|
|
36
|
+
"bodyReaction": 1.3,
|
|
37
|
+
"sensorySignal": 1.3,
|
|
38
|
+
"action": 0.7,
|
|
39
|
+
"emotion": 1.5,
|
|
40
|
+
"infoAdvance": 0.7
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kb_version": "2.0",
|
|
3
|
+
"node_id": "node_platform",
|
|
4
|
+
"option_id": "opt_platform_newmedia",
|
|
5
|
+
"option_name": "新媒体风",
|
|
6
|
+
"option_description": "新媒体/公众号风格:标题党,情绪强烈,短段落。适合微信公众号、头条号等平台,开头3秒抓住读者,情绪拉满,金句频出,引发共鸣和转发。",
|
|
7
|
+
"system_prompt": "你采用新媒体公众号风格写作。新媒体读者在信息流中刷到你的文章,你只有3秒钟抓住他们。开头必须炸裂——用一个惊人的事实、一个扎心的问题、一个反常识的观点、一个让人脸红心跳的场景开场。段落极短,一两句话就是一段,手机上一眼扫完。情绪要强烈,要让读者愤怒、感动、焦虑、爽,情绪平了就是死。多用金句、排比、反问。每200字左右要有一个情绪高点或一个让读者想截图转发的句子。结尾要有升华或呼吁,让读者忍不住点赞转发。标题要制造好奇心、共鸣或争议。",
|
|
8
|
+
"constraints": [
|
|
9
|
+
"开头第一句/第一段必须炸裂(惊人事实/扎心问题/反常识/高能场景)",
|
|
10
|
+
"段落极短,每段1-3句话,手机一屏3-5段",
|
|
11
|
+
"每200字左右一个情绪高点(愤怒/感动/爽/扎心/共鸣)",
|
|
12
|
+
"必须包含至少2个可截图转发的金句",
|
|
13
|
+
"多用排比、反问、短句,制造节奏感",
|
|
14
|
+
"情绪要饱满,禁止平铺直叙",
|
|
15
|
+
"结尾必须有升华/金句/呼吁行动",
|
|
16
|
+
"避免冗长的背景交代,直接进入核心冲突"
|
|
17
|
+
],
|
|
18
|
+
"examples": [
|
|
19
|
+
{
|
|
20
|
+
"text": "你有没有想过,你这辈子可能永远买不起房?\n\n别着急反驳。\n\n先看看你的工资卡。\n\n再看看你所在城市的房价。\n\n算一算。\n\n不吃不喝,你需要多少年?\n\n我算了。\n\n三十二年。\n\n三十二年不吃不喝,才能在这座城市买一套八十平的房子。等我凑够首付,我已经五十岁了。五十岁啊!\n\n而我的父母,他们在老家的房子,已经漏雨了。\n\n我每个月往家里打两千块钱,我妈舍不得花,全都存起来,说要给我娶媳妇。\n\n娶媳妇?\n\n我连自己都养不起。",
|
|
21
|
+
"note": "新媒体风开篇:扎心问题开场,极短段落制造节奏,数据冲击(三十二年),情绪层层递进(父母/漏雨/娶媳妇),共鸣拉满"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"threshold_overrides": {
|
|
25
|
+
"maxParagraphLength": 50,
|
|
26
|
+
"targetParagraphLength": 25,
|
|
27
|
+
"minParagraphCount": 50,
|
|
28
|
+
"maxExpositionContinuous": 80,
|
|
29
|
+
"infoPointsPerThousand": 4,
|
|
30
|
+
"shortSentenceRatio": 0.75,
|
|
31
|
+
"targetSentenceLength": 12,
|
|
32
|
+
"maxSentenceLength": 30,
|
|
33
|
+
"maxFillerSentences": 0,
|
|
34
|
+
"maxFillerWords": 2
|
|
35
|
+
},
|
|
36
|
+
"radar_weights": {
|
|
37
|
+
"bodyReaction": 0.8,
|
|
38
|
+
"sensorySignal": 0.7,
|
|
39
|
+
"action": 0.8,
|
|
40
|
+
"emotion": 1.7,
|
|
41
|
+
"infoAdvance": 1.0
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kb_version": "2.0",
|
|
3
|
+
"node_id": "node_platform",
|
|
4
|
+
"option_id": "opt_platform_qidian",
|
|
5
|
+
"option_name": "起点风",
|
|
6
|
+
"option_description": "起点中文网风格:慢热铺垫,世界观宏大,字数充足,注重体系设定与长线剧情。适合长篇连载,开篇可以慢热铺陈,中后期发力。",
|
|
7
|
+
"system_prompt": "你采用起点中文网的写作风格。起点读者耐心较好,允许较长的世界观铺垫和人物成长过程。开篇前3章可以花笔墨交代背景设定,但必须在5章内出现第一个明确的冲突/转折。字数充裕,每章3000字以上为佳。注重等级体系、势力格局、世界观设定的完整性。金手指/系统设定要有明确规则,不能随意加设定。章节末尾留悬念但不必每章都强行打脸。整体节奏为“慢热-铺垫-爆发-再铺垫-大爆发”的波浪形。",
|
|
8
|
+
"constraints": [
|
|
9
|
+
"开篇前5章必须出现第一个核心冲突或转折",
|
|
10
|
+
"世界观设定需有内在逻辑,等级/力量体系必须明确",
|
|
11
|
+
"单章字数不低于2500字",
|
|
12
|
+
"金手指/外挂规则一旦确立不得随意更改",
|
|
13
|
+
"伏笔需在30章内回收或给予读者暗示",
|
|
14
|
+
"禁止每章强行打脸装逼,爽点间隔可放宽至3-5章"
|
|
15
|
+
],
|
|
16
|
+
"examples": [
|
|
17
|
+
{
|
|
18
|
+
"text": "苍茫大陆,武道为尊。\n\n天武国,青云城。\n\n林家府邸,偏僻的小院里,一个十六岁的少年盘坐在石床上,眉头紧锁。\n\n他叫林动,本是林家旁系子弟,三年前武魂觉醒时,被测出是最低等的废武魂——一缕残破的火苗。从那以后,他便从天才沦为笑柄,被发配到这处偏僻院落。\n\n但没人知道,那缕看似残破的火苗武魂中,藏着一片虚无空间。空间里悬浮着一座古朴的小鼎,鼎身上刻满了密密麻麻的符文。\n\n林动闭目内视,心神沉入丹田。那缕微弱的火苗武魂正有气无力地跳动着,丹田内的武气稀薄得如同薄雾。\n\n\"还差一点……\"他咬了咬牙,按照古鼎上传来的神秘功法,缓缓引导武气沿经脉运转。",
|
|
19
|
+
"note": "起点风开篇:交代世界观(苍茫大陆/武道为尊)、地点(青云城林家)、主角身份(废武魂旁系子弟)、金手指(古鼎),节奏较慢但信息密度充足"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"threshold_overrides": {
|
|
23
|
+
"maxParagraphLength": 300,
|
|
24
|
+
"targetParagraphLength": 100,
|
|
25
|
+
"minParagraphCount": 15,
|
|
26
|
+
"maxExpositionContinuous": 500,
|
|
27
|
+
"infoPointsPerThousand": 2,
|
|
28
|
+
"shortSentenceRatio": 0.3,
|
|
29
|
+
"targetSentenceLength": 28,
|
|
30
|
+
"maxSentenceLength": 80
|
|
31
|
+
},
|
|
32
|
+
"radar_weights": {
|
|
33
|
+
"bodyReaction": 0.8,
|
|
34
|
+
"sensorySignal": 1.0,
|
|
35
|
+
"action": 0.9,
|
|
36
|
+
"emotion": 0.9,
|
|
37
|
+
"infoAdvance": 1.3
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kb_version": "2.0",
|
|
3
|
+
"node_id": "node_platform",
|
|
4
|
+
"option_id": "opt_platform_qimao",
|
|
5
|
+
"option_name": "七猫风",
|
|
6
|
+
"option_description": "七猫免费小说风格:中老年读者友好,节奏平稳,通俗易懂。文字朴实直白,避免复杂句式和新潮网络用语,故事温馨或爽感明确,逻辑清晰。",
|
|
7
|
+
"system_prompt": "你采用七猫小说的写作风格。七猫读者群体年龄偏大,喜欢通俗易懂、节奏平稳的故事。文字要朴实直白,不要用年轻人专属的网络梗、二次元用语、英文缩写。句子不要太长太复杂,读起来要顺口。价值观要正,善恶有报,主角可以有挫折但最终一定胜利。家庭、亲情、正义、奋斗等主题受欢迎。节奏平稳但不拖沓,每章讲清楚一个小事件。避免过于血腥暴力或阴暗的描写。打脸可以有但不要太极端,更多用智慧和实力说话。",
|
|
8
|
+
"constraints": [
|
|
9
|
+
"用词通俗易懂,禁止使用网络黑话、二次元梗、英文缩写",
|
|
10
|
+
"句子简短通顺,单句不超过45字",
|
|
11
|
+
"价值观正向,善恶有报,正义必胜",
|
|
12
|
+
"避免过度血腥暴力和阴暗描写",
|
|
13
|
+
"节奏平稳,每章讲清一个小事件,不跳跃",
|
|
14
|
+
"人物动机明确,反派坏得有逻辑",
|
|
15
|
+
"家庭/亲情/友情等情感线要温暖正面",
|
|
16
|
+
"章节标题直白,不玩文字游戏"
|
|
17
|
+
],
|
|
18
|
+
"examples": [
|
|
19
|
+
{
|
|
20
|
+
"text": "张建国回到家的时候,天已经黑了。\n\n老伴李秀兰正在厨房里忙活,听见开门声,探出头来:\"回来了?今天怎么这么晚?\"\n\n\"厂里加了个班。\"张建国换了鞋,把外套挂在衣架上。他今年五十八岁,在红星机械厂干了一辈子,再过两年就该退休了。\n\n饭桌上摆着两菜一汤,都是家常菜。老张洗了手坐下,拿起筷子。\n\n\"对了,\"李秀兰忽然想起什么,\"咱儿子今天打电话来了,说下月要带女朋友回来。\"\n\n张建国夹菜的手顿了一下:\"女朋友?哪里人?做什么工作的?\"\n\n\"说是他们公司的同事,本地人。\"李秀兰笑着给老伴盛了碗汤,\"你紧张什么呀,儿子都三十了,也该成家了。\"\n\n张建国“嗯”了一声,端起碗喝汤,心里却琢磨着:儿子带对象回来,这房子是不是该装修装修了?",
|
|
21
|
+
"note": "七猫风开篇:生活气息浓厚,文字朴实,人物对话自然,节奏平稳,贴近中老年读者生活"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"threshold_overrides": {
|
|
25
|
+
"maxParagraphLength": 150,
|
|
26
|
+
"targetParagraphLength": 60,
|
|
27
|
+
"minParagraphCount": 22,
|
|
28
|
+
"maxExpositionContinuous": 350,
|
|
29
|
+
"infoPointsPerThousand": 2,
|
|
30
|
+
"shortSentenceRatio": 0.5,
|
|
31
|
+
"targetSentenceLength": 20,
|
|
32
|
+
"maxSentenceLength": 45,
|
|
33
|
+
"maxFillerSentences": 4,
|
|
34
|
+
"maxFillerWords": 10
|
|
35
|
+
},
|
|
36
|
+
"radar_weights": {
|
|
37
|
+
"bodyReaction": 0.9,
|
|
38
|
+
"sensorySignal": 1.0,
|
|
39
|
+
"action": 0.8,
|
|
40
|
+
"emotion": 1.1,
|
|
41
|
+
"infoAdvance": 0.9
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kb_version": "3.1",
|
|
3
|
+
"node_id": "node_platform",
|
|
4
|
+
"option_id": "opt_platform_tomato",
|
|
5
|
+
"option_name": "番茄风(2026追读版)",
|
|
6
|
+
"option_description": "番茄小说2026追读力强化版:3秒停留率、黄金300字、每300字一个反咬、章末具体钩子。算法第一指标是完读率,开篇定生死。",
|
|
7
|
+
"system_prompt": "你采用番茄小说2026年最新追读力标准写作。番茄算法第一指标是「3秒停留率」——读者划到你的正文,3秒决定去留。你必须严格遵守以下铁律:\n\n【开篇铁律】\n- 第一句≤20字,直接写正在发生的动作/冲突/结果,禁止任何铺垫。\n- 第一句禁止写景、禁止交代背景、禁止介绍人物、禁止回忆前世。\n- 前300字必须完成三件事:冲突爆发→主角身体在场→异常信号出现。\n- 前300字内不能出现任何纯环境描写、纯背景交代、纯心理独白。\n\n【节奏铁律】\n- 每250-350字必须有一次信息反咬(读者预期被颠覆)。\n- 每800-1000字一个小爽点/小反转。\n- 每3章一个大爽点/大反转。\n- 禁止连续400字无转折、无意外、无新发现。\n\n【对话铁律】\n- 对话必须有碰撞:有人说A,下一个人必须先质疑/反对/唱反调,不许直接认同。\n- 禁止工作汇报式对话(一人发现→告诉大家→大家认同)。\n- 连续对话不超过4句必须插入动作/神态/环境描写。\n\n【结尾铁律】\n- 最后100字必须出现一个全新的、颠覆之前判断的具体信息。\n- 钩子必须具体,禁止装神弄鬼:不能写「一股神秘气息」「他似乎意识到什么」「事情没那么简单」——这些是空泛假钩子,读者已免疫。\n- 好钩子是具体的、看得见摸得着的:「他低头,看见凿尖上沾了血。」「门外传来第三下敲门声。」「号牌上的数字,是6。」\n- 最后一句禁止用「了。」收尾,禁止用「就这样/原来如此/所以/于是」总结词。\n- 写完最后一句问自己:读者会不会骂「操怎么断在这里」?会才合格。\n\n【行文铁律】\n- 单段≤80字,手机阅读不超过3行。\n- 单句≤40字,关键鼓点句≤15字。\n- 每行视觉长度控制在17字以内(手机一屏约17字)。\n- 对话占比不低于40%。\n- 禁止连续超过150字纯描写/说明/心理独白。\n- 禁止48个AI套路反应词:心头一跳/脸色一变/握紧拳头/点了点头/叹了口气/皱了皱眉/冷哼一声/嘴角微扬/微微一笑/瞳孔骤缩/眼中闪过一丝/虎躯一震/冷笑一声/不置可否/置若罔闻/面无表情等——全部用生理级身体反应替代。\n- 所有情绪必须落到肉身:心脏/胃/脊背/指尖/后颈/眉心/后槽牙七大锚点。\n- 禁止直接写「他很紧张/她很害怕/气氛压抑」,用动作和生理反应展示。",
|
|
8
|
+
"constraints": [
|
|
9
|
+
"第一句≤20字,直接动作/冲突/结果,禁止写景/背景/回忆",
|
|
10
|
+
"前300字:冲突爆发→主角身体在场→异常信号出现",
|
|
11
|
+
"每250-350字一次信息反咬,千字≥3个意外/转折",
|
|
12
|
+
"对话必须有碰撞,4句以上对话必须有反对/质疑/唱反调",
|
|
13
|
+
"最后100字必须出现具体新信息钩子,禁止装神弄鬼假钩子",
|
|
14
|
+
"最后一句≤15字短句鼓点落点,禁止「了。」收尾",
|
|
15
|
+
"单段≤80字,单句≤40字,手机一屏17字以内",
|
|
16
|
+
"对话占比≥40%,连续对话≤4句",
|
|
17
|
+
"禁止连续150字以上纯描写/说明/心理独白",
|
|
18
|
+
"禁止48个AI套路反应词,情绪必须落到七大肉身锚点",
|
|
19
|
+
"禁止直接陈述情绪词,用生理级身体反应展示"
|
|
20
|
+
],
|
|
21
|
+
"examples": [
|
|
22
|
+
{
|
|
23
|
+
"text": "疼。\n\n辞退信甩在脸上的时候,叶辰的指关节被纸边划了一道血口。他没躲,血珠滴在办公桌上,很快被那份「实习生辞退通知书」吸成深色。\n\n\"一个实习生也敢顶撞王少?\"经理满脸鄙夷,\"你知道王少是谁吗?\"\n\n叶辰盯着他。指腹的血还在渗,火辣辣地烧。他不是这个世界的人——三天前穿越过来,脑子里多了个东西。\n\n【神级选择系统已激活】\n\n【选项一:低头道歉,获得十万块】\n\n【选项二:当场辞职,打脸王少,获得神级投资天赋!】\n\n叶辰笑了。\n\n他拿起辞退信,撕成两半,再撕,碎纸片扔进垃圾桶。\"不用你辞,老子不干了。\"\n\n经理愣住了。办公室里看热闹的同事也愣住了。\n\n门就在这时被推开。\n\n一个穿高定西装的中年男人快步走进来,目光扫过全场,最后落在叶辰脸上,腰弯了下去。\n\n\"叶先生,我们董事长请您过去。\"",
|
|
24
|
+
"note": "番茄2026开篇示范:第一句1字「疼。」直接身体刺激;前300字有冲突(被辞退)、身体在场(指关节被划出血)、异常信号(系统激活);对话有碰撞;结尾钩子具体(董事长有请,腰弯了下去——颠覆了「被开除者」的预期)。"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"threshold_overrides": {
|
|
28
|
+
"maxParagraphLength": 80,
|
|
29
|
+
"targetParagraphLength": 35,
|
|
30
|
+
"minParagraphCount": 40,
|
|
31
|
+
"maxExpositionContinuous": 150,
|
|
32
|
+
"infoPointsPerThousand": 6,
|
|
33
|
+
"shortSentenceRatio": 0.65,
|
|
34
|
+
"targetSentenceLength": 15,
|
|
35
|
+
"maxSentenceLength": 40,
|
|
36
|
+
"maxDialogueContinuous": 4,
|
|
37
|
+
"maxFillerSentences": 0,
|
|
38
|
+
"maxFillerWords": 3,
|
|
39
|
+
"minAnchorsPerThousand": 8,
|
|
40
|
+
"minDialogueConflictRatio": 0.3
|
|
41
|
+
},
|
|
42
|
+
"radar_weights": {
|
|
43
|
+
"bodyReaction": 1.3,
|
|
44
|
+
"sensorySignal": 0.9,
|
|
45
|
+
"action": 1.4,
|
|
46
|
+
"emotion": 1.2,
|
|
47
|
+
"infoAdvance": 1.2,
|
|
48
|
+
"twistFrequency": 1.3,
|
|
49
|
+
"hookStrength": 1.5
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kb_version": "2.0",
|
|
3
|
+
"node_id": "node_pov",
|
|
4
|
+
"option_id": "opt_pov_first_past",
|
|
5
|
+
"option_name": "第一人称过去式",
|
|
6
|
+
"option_description": "以“我”的视角叙述,使用过去时态。代入感极强,读者直接体验主角的感受和思考,适合悬疑、自传、情感类作品。",
|
|
7
|
+
"system_prompt": "你使用第一人称过去式进行写作。叙述者是“我”——故事的主角或某个视角人物,所有事件都用过去时态描述(“我走了”“我看到了”“我想”)。因为是第一人称,你只能写“我”亲眼看到、亲耳听到、亲身经历的事情,不能直接写别人的心理活动——别人怎么想的,只能通过他们的表情、动作、语言来推测。“我”的内心独白、感受、回忆可以自由写,这是第一人称的优势。代入感是第一人称的生命,要让读者觉得“我就是主角”。注意时态一致性,不要在过去式中混入现在式(除非是角色当下的心理活动可以用现在式表达即时感受,但叙述主线必须是过去式)。",
|
|
8
|
+
"constraints": [
|
|
9
|
+
"叙述视角严格为第一人称“我”,不得切换到其他人物的内心",
|
|
10
|
+
"时态以过去式为主(了/过/当时/曾经/已经),叙述主线保持一致",
|
|
11
|
+
"只能写“我”亲眼所见、亲耳所闻、亲身经历,禁止全知视角",
|
|
12
|
+
"他人心理只能通过表情、动作、语言推测,不能直接写“他心想”“她暗自高兴”",
|
|
13
|
+
"充分利用第一人称优势:内心独白、感官体验、个人回忆、情感波动",
|
|
14
|
+
"禁止在叙述中出现“我”不可能知道的信息",
|
|
15
|
+
"如果是回忆式叙述(现在的我回忆过去的事),可以有现在的视角评论,但要清晰区分"
|
|
16
|
+
],
|
|
17
|
+
"examples": [
|
|
18
|
+
{
|
|
19
|
+
"text": "我推开那扇门的时候,没有想到门后等着我的会是什么。\n\n屋子里很暗,窗帘拉得严严实实。我摸索着找到开关,灯亮的瞬间,我倒吸了一口冷气。\n\n墙上贴满了照片——全是我。\n\n我站在门口,后背泛起一层冷汗。这些照片有我在公司加班的,有我在超市买菜的,甚至有我在卧室里睡觉的。有人一直在跟踪我,而且已经很久了。\n\n我的手开始发抖,但我强迫自己冷静下来。我掏出手机准备报警,就在这时,身后传来了脚步声。\n\n很轻,很慢,但每一步都像踩在我的心脏上。\n\n我猛地转过身——",
|
|
20
|
+
"note": "第一人称过去式:使用“我”视角,过去时态(推开/没有想到/找到/倒吸),直接展现主角的恐惧(冷汗/发抖/心脏上),无法知道跟踪者的想法"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"threshold_overrides": {
|
|
24
|
+
"minSensoryTypes": 3,
|
|
25
|
+
"sightRatio": 0.45
|
|
26
|
+
},
|
|
27
|
+
"radar_weights": {
|
|
28
|
+
"bodyReaction": 1.4,
|
|
29
|
+
"sensorySignal": 1.2,
|
|
30
|
+
"action": 0.9,
|
|
31
|
+
"emotion": 1.4,
|
|
32
|
+
"infoAdvance": 0.9
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kb_version": "2.0",
|
|
3
|
+
"node_id": "node_pov",
|
|
4
|
+
"option_id": "opt_pov_first_present",
|
|
5
|
+
"option_name": "第一人称现在式",
|
|
6
|
+
"option_description": "以“我”的视角叙述,使用现在时态。临场感极强,仿佛事件正在读者眼前发生,适合紧张刺激的悬疑、惊悚、沉浸式体验作品。",
|
|
7
|
+
"system_prompt": "你使用第一人称现在式进行写作。叙述者是“我”,所有事件都用现在时态描述(“我走”“我看到”“我在想”),仿佛一切正在发生。这种时态带来极强的临场感和紧迫感,读者和主角同步经历事件,不知道下一秒会发生什么。你只能写“我”此刻的感知和想法,不能提前透露未来的信息(不能写“后来我才知道”“这是我最后一次见他”之类的话,因为在现在式中“我”不知道未来)。内心独白用现在式,感官体验正在发生,决定正在做出。注意时态绝对一致,不能出现过去式(除非角色正在回忆,可以短暂切换但要立即回到现在式)。",
|
|
8
|
+
"constraints": [
|
|
9
|
+
"叙述视角严格为第一人称“我”,时态严格为现在式",
|
|
10
|
+
"只能写“我”此刻的感知,禁止提前透露未来信息",
|
|
11
|
+
"禁止使用“后来”“之后”“那是我最后一次”等打破临场感的表述",
|
|
12
|
+
"内心活动、感官体验、动作决定都用现在式表达",
|
|
13
|
+
"回忆段落必须明确标记(如“我想起”),且不能过长,立即拉回现在",
|
|
14
|
+
"他人心理只能通过当下的表情、动作、语言推测",
|
|
15
|
+
"利用现在式优势:制造紧迫感、即时恐惧、临场决策的紧张感"
|
|
16
|
+
],
|
|
17
|
+
"examples": [
|
|
18
|
+
{
|
|
19
|
+
"text": "我推开门。\n\n屋子里很暗,窗帘拉得严严实实。我的手沿着墙壁摸索,找到开关——\n\n灯亮了。\n\n我倒吸一口冷气。\n\n墙上贴满了照片。全是我。我在公司加班的样子,我在超市挑苹果的样子,甚至有我在卧室里睡觉的样子。有人在跟踪我,而且不是一天两天了。\n\n我的手在发抖。我强迫自己深呼吸,掏出手机。拨号,110——\n\n身后传来脚步声。\n\n很轻,很慢。但在这死寂的屋子里,每一步都像敲在我的太阳穴上。\n\n我猛地转身。",
|
|
20
|
+
"note": "第一人称现在式:全程现在时态(推开/摸索/找到/倒吸/发抖/传来),临场感极强,没有事后回顾的距离感,读者和主角同步紧张"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"threshold_overrides": {
|
|
24
|
+
"minSensoryTypes": 3,
|
|
25
|
+
"sightRatio": 0.45,
|
|
26
|
+
"shortSentenceRatio": 0.6,
|
|
27
|
+
"targetSentenceLength": 16,
|
|
28
|
+
"maxSentenceLength": 40
|
|
29
|
+
},
|
|
30
|
+
"radar_weights": {
|
|
31
|
+
"bodyReaction": 1.5,
|
|
32
|
+
"sensorySignal": 1.3,
|
|
33
|
+
"action": 1.2,
|
|
34
|
+
"emotion": 1.5,
|
|
35
|
+
"infoAdvance": 0.8
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kb_version": "2.0",
|
|
3
|
+
"node_id": "node_pov",
|
|
4
|
+
"option_id": "opt_pov_limited_third_past",
|
|
5
|
+
"option_name": "有限第三人称过去式(默认)",
|
|
6
|
+
"option_description": "以“他/她”称呼视角人物,使用过去时态,但只深入该人物的内心。这是网文中最常用的视角,兼顾代入感和叙事灵活性,是默认推荐选项。",
|
|
7
|
+
"system_prompt": "你使用有限第三人称过去式进行写作——这是网文最主流的视角。你用“他”或“她”来称呼当前视角人物,用过去时态叙述事件,但只深入这一个人物的内心。你可以自由写这个人物的感受、想法、回忆、判断,但其他人物的内心你只能通过外在表现推测。这种视角的优势是比第一人称更灵活(可以稍微拉开一点距离描写),又比全知视角更有代入感。你可以在不同章节/场景切换视角人物,但同一个场景内必须锁定一个视角,不能跳来跳去。视角人物是读者的“眼睛”和“心”,读者通过他/她来感知故事。",
|
|
8
|
+
"constraints": [
|
|
9
|
+
"用“他/她”称呼视角人物,叙述用过去时态",
|
|
10
|
+
"只能深入当前视角人物的内心,其他人物心理只能推测",
|
|
11
|
+
"同一场景内视角锁定一个人物,不得随意切换",
|
|
12
|
+
"可以跨章节/跨场景切换视角人物,但切换必须清晰(建议场景转换时切换)",
|
|
13
|
+
"叙述信息受限于视角人物的认知,他/她不知道的不能直接写",
|
|
14
|
+
"视角人物的选择很重要——要选当下冲突中最有张力的那个人",
|
|
15
|
+
"禁止在有限第三人称中突然跳到全知视角"
|
|
16
|
+
],
|
|
17
|
+
"examples": [
|
|
18
|
+
{
|
|
19
|
+
"text": "林晚推开包厢门的时候,里面已经坐满了人。\n\n她一眼就看到了坐在主位的男人。沈知行穿着一件深蓝色的衬衫,袖口挽到手肘,正侧着头听旁边的人说话,嘴角挂着一丝漫不经心的笑。\n\n三年了。\n\n林晚的手指不自觉地收紧,握在包带上的指节微微泛白。她以为自己已经做好了心理准备,可真正看到这个人的时候,心跳还是漏了一拍。\n\n\"林晚?这边坐。\"同事招呼她。\n\n她深吸一口气,走过去坐下,刻意选了个正对沈知行的位置——不,不对,她应该选离他最远的位置。可身体比理智诚实,等她反应过来的时候,已经在他对面了。\n\n沈知行抬起头,目光和她对上。\n\n他的眼神微微变了一下,但很快恢复平静,像是在看一个陌生人。",
|
|
20
|
+
"note": "有限第三人称过去式:用“她”指林晚,深入她的内心(以为做好准备/心跳漏拍/身体比理智诚实),但沈知行的想法只能从“眼神微微变了”推测,不能直接写他心里在想什么"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"threshold_overrides": {},
|
|
24
|
+
"radar_weights": {
|
|
25
|
+
"bodyReaction": 1.0,
|
|
26
|
+
"sensorySignal": 1.0,
|
|
27
|
+
"action": 1.0,
|
|
28
|
+
"emotion": 1.0,
|
|
29
|
+
"infoAdvance": 1.0
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kb_version": "2.0",
|
|
3
|
+
"node_id": "node_pov",
|
|
4
|
+
"option_id": "opt_pov_limited_third_present",
|
|
5
|
+
"option_name": "有限第三人称现在式",
|
|
6
|
+
"option_description": "以“他/她”称呼视角人物,使用现在时态,只深入该人物内心。兼具临场感和叙事灵活性,适合需要紧张感又不想完全绑定“我”的作品。",
|
|
7
|
+
"system_prompt": "你使用有限第三人称现在式进行写作。你用“他”或“她”称呼当前视角人物,用现在时态叙述,只深入这个人物的内心。这种视角结合了现在式的临场紧迫感和第三人称的叙事距离,比第一人称现在式稍微“冷静”一点,但仍然有很强的即时感。你可以写视角人物此刻的感受、想法、判断,但不能写其他人物的内心。同一场景视角锁定,不得跳切。所有动词用现在时态(走/看/想/听到/握紧),营造事件正在发生的效果。",
|
|
8
|
+
"constraints": [
|
|
9
|
+
"用“他/她”称呼视角人物,时态严格为现在式",
|
|
10
|
+
"只能深入当前视角人物内心,其他人物心理只能推测",
|
|
11
|
+
"同一场景视角锁定,不得随意切换到其他人物内心",
|
|
12
|
+
"所有叙述动词用现在式,保持时态一致",
|
|
13
|
+
"禁止透露视角人物此刻不可能知道的信息",
|
|
14
|
+
"利用现在式制造临场紧张感,适合动作/悬疑场景",
|
|
15
|
+
"回忆需明确引入(如“他想起”),且要快速回到当下"
|
|
16
|
+
],
|
|
17
|
+
"examples": [
|
|
18
|
+
{
|
|
19
|
+
"text": "陈默推开铁门,锈迹斑斑的门轴发出刺耳的吱呀声。\n\n走廊里漆黑一片。他掏出手电筒,光柱切开黑暗,照亮了斑驳的墙壁和地上散落的纸屑。\n\n空气里有一股奇怪的味道,甜腻腻的,像是腐烂的花。\n\n他握紧手电筒,放慢脚步。心跳声在耳膜里轰轰作响,每走一步,地板就发出一声细微的嘎吱。\n\n走廊尽头有一扇门,门缝里透出微弱的光。\n\n陈默屏住呼吸,侧耳倾听——门后面有人在说话,声音很低,听不清在说什么。\n\n他伸手去推门。\n\n门没锁。",
|
|
20
|
+
"note": "有限第三人称现在式:用“他”指陈默,现在时态(推开/掏出/照亮/握紧/屏住),深入他的感官和紧张感,但不知道门后面的情况,临场感强"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"threshold_overrides": {
|
|
24
|
+
"shortSentenceRatio": 0.55,
|
|
25
|
+
"targetSentenceLength": 18,
|
|
26
|
+
"maxSentenceLength": 45
|
|
27
|
+
},
|
|
28
|
+
"radar_weights": {
|
|
29
|
+
"bodyReaction": 1.2,
|
|
30
|
+
"sensorySignal": 1.2,
|
|
31
|
+
"action": 1.2,
|
|
32
|
+
"emotion": 1.2,
|
|
33
|
+
"infoAdvance": 0.9
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kb_version": "2.0",
|
|
3
|
+
"node_id": "node_pov",
|
|
4
|
+
"option_id": "opt_pov_omniscient_third_past",
|
|
5
|
+
"option_name": "全知第三人称过去式",
|
|
6
|
+
"option_description": "以“他/她”称呼人物,使用过去时态,叙述者全知全能,可以进入任何人物内心,知晓一切。适合史诗、多线叙事、群像作品。",
|
|
7
|
+
"system_prompt": "你使用全知第三人称过去式进行写作。叙述者像上帝一样全知全能,可以自由进入任何人物的内心,知道过去未来,可以俯瞰整个世界。你可以在一个段落里写A的想法,下一个段落写B的秘密,再下一段写千里之外C正在做什么。但要注意:全知不等于混乱,视角切换要有章法,不能在同一段里跳来跳去让读者困惑。最好的全知视角是“有节制的全知”——以某个人物为主要视角,在需要时切换到其他人物补充信息。全知视角适合宏大叙事、群像剧、史诗作品,可以展现多方势力博弈、信息差带来的戏剧性反讽。",
|
|
8
|
+
"constraints": [
|
|
9
|
+
"用“他/她/他们”称呼人物,叙述用过去时态",
|
|
10
|
+
"可以进入任何人物的内心,但切换要有过渡,不能在一句话内跳切",
|
|
11
|
+
"可以描写任何地点发生的任何事情,不限于某个人物的感知",
|
|
12
|
+
"可以使用戏剧性反讽(读者知道角色不知道的信息)",
|
|
13
|
+
"虽然全知,但主要叙事应围绕核心人物展开,避免信息散乱",
|
|
14
|
+
"场景转换和视角切换要清晰,建议用段落分隔或场景标记",
|
|
15
|
+
"避免“说教式”的全知叙述者——不要跳出来直接告诉读者道理,通过故事展现"
|
|
16
|
+
],
|
|
17
|
+
"examples": [
|
|
18
|
+
{
|
|
19
|
+
"text": "建安十三年冬,曹操率八十万大军南下,驻扎在长江北岸。\n\n曹操站在旗舰的甲板上,江风猎猎,吹动他的袍角。他望着南岸连绵的营火,嘴角浮起一丝笑意——天下一统,就在此役了。他不知道的是,对面的周瑜此刻也正望着北岸,眼中同样燃烧着必胜的火焰。\n\n周瑜站在南岸的瞭望台上,身旁站着诸葛亮。两人各怀心思:周瑜想的是如何用苦肉计骗过曹操的细作,诸葛亮却已经在算东风何时到来。他们都知道这场仗的关键在于火攻,但谁也没有把全部计划告诉对方。\n\n而在更远的上游,庞统已经踏上了前往曹营的小船,准备去献上那条致命的连环计。\n\n三方博弈,各有布局。历史的车轮,已经开始转动。",
|
|
20
|
+
"note": "全知第三人称过去式:可以写曹操的想法(他不知道的是),切换到周瑜和诸葛亮各怀心思,再跳到庞统的行动,俯瞰全局,展现多方博弈"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"threshold_overrides": {
|
|
24
|
+
"maxExpositionContinuous": 600,
|
|
25
|
+
"maxParagraphLength": 300,
|
|
26
|
+
"targetParagraphLength": 90,
|
|
27
|
+
"shortSentenceRatio": 0.3,
|
|
28
|
+
"targetSentenceLength": 28
|
|
29
|
+
},
|
|
30
|
+
"radar_weights": {
|
|
31
|
+
"bodyReaction": 0.8,
|
|
32
|
+
"sensorySignal": 1.0,
|
|
33
|
+
"action": 0.9,
|
|
34
|
+
"emotion": 0.9,
|
|
35
|
+
"infoAdvance": 1.5
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kb_version": "2.0",
|
|
3
|
+
"node_id": "node_pov",
|
|
4
|
+
"option_id": "opt_pov_omniscient_third_present",
|
|
5
|
+
"option_name": "全知第三人称现在式",
|
|
6
|
+
"option_description": "以“他/她”称呼人物,使用现在时态,叙述者全知。较为少见的组合,适合实验性叙事或需要“上帝视角正在直播”感觉的作品。",
|
|
7
|
+
"system_prompt": "你使用全知第三人称现在式进行写作。叙述者全知全能,可以进入任何人物内心,但所有事件都用现在时态描述,仿佛整个世界正在你眼前同时展开。这是一种较少见的视角组合,能创造出“上帝视角实时直播”的奇特效果——你可以同时看到千里之外的两个人在做什么,知道每个人此刻的想法,但一切都正在发生。这种视角适合需要同时展现多线并行、紧张倒计时、命运交汇的场景。注意不要因为全知而变得冷漠——即使能看到一切,也要让读者对人物产生共情。",
|
|
8
|
+
"constraints": [
|
|
9
|
+
"用“他/她/他们”称呼人物,时态严格为现在式",
|
|
10
|
+
"可以进入任何人物内心,知道此刻任何地方正在发生的事",
|
|
11
|
+
"所有叙述用现在式,营造“一切正在同时发生”的效果",
|
|
12
|
+
"多线并行时切换要清晰,可以用分段或地点标记分隔",
|
|
13
|
+
"适合倒计时、多线汇合、命运交错等场景",
|
|
14
|
+
"虽然全知,但要保持情感温度,不能写成冷冰冰的新闻播报",
|
|
15
|
+
"时态一致性要求极高,不得混入过去式(除非角色正在回忆)"
|
|
16
|
+
],
|
|
17
|
+
"examples": [
|
|
18
|
+
{
|
|
19
|
+
"text": "炸弹的计时器跳到02:47,还在一秒一秒地减少。\n\n在商场一楼,李薇蹲在试衣间里,双手捂着嘴不敢出声。她听到外面有脚步声在靠近,靴子踩在碎玻璃上,发出咯吱咯吱的声响。\n\n同一时刻,地下停车场里,张磊正在拼命撬一辆白色面包车的车门。他的手在发抖——他知道车里有炸弹的引爆装置,如果不能在三分钟内拆除,整栋楼都会被炸成废墟。\n\n而在商场对面的楼顶,狙击手老赵已经瞄准了试衣间方向的窗户。他屏住呼吸,手指搭在扳机上,等待目标出现。\n\n三个人,三个位置,三条命运线,正在向同一个点汇聚。\n\n计时器跳到02:31。",
|
|
20
|
+
"note": "全知第三人称现在式:现在时态(跳到/蹲/听到/撬/瞄准/屏住),同时展现三个地点三个人的行动,营造多线并行的紧张感和“上帝视角直播”效果"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"threshold_overrides": {
|
|
24
|
+
"maxParagraphLength": 120,
|
|
25
|
+
"targetParagraphLength": 50,
|
|
26
|
+
"shortSentenceRatio": 0.55,
|
|
27
|
+
"targetSentenceLength": 18
|
|
28
|
+
},
|
|
29
|
+
"radar_weights": {
|
|
30
|
+
"bodyReaction": 1.0,
|
|
31
|
+
"sensorySignal": 1.1,
|
|
32
|
+
"action": 1.3,
|
|
33
|
+
"emotion": 1.1,
|
|
34
|
+
"infoAdvance": 1.3
|
|
35
|
+
}
|
|
36
|
+
}
|