add different story styles

This commit is contained in:
bridge
2025-10-13 00:29:19 +08:00
parent 9dc82ca49b
commit 98e4a43aef
2 changed files with 25 additions and 9 deletions

View File

@@ -1,10 +1,29 @@
from __future__ import annotations
from typing import Dict, TYPE_CHECKING
import random
from src.utils.config import CONFIG
from src.utils.llm import get_prompt_and_call_llm
story_styles = [
"平淡叙述:语句克制、少修饰、像旁观者记录。",
"寓情于景:以景见情,情随境迁,情景交融。",
"写意古风:重意象与比兴,点到为止,少生僻文言。",
"市井烟火:接地气,含些俗语但不粗鄙,烟火气足。",
"悬疑铺垫:埋伏笔与反转,信息递进,结尾留一丝余味。",
"诗意抒情:短句与对仗点缀,少量用典,不堆砌辞藻。",
"哲思寓言:借事设问,含一两句点睛之语,不说教。",
"黑色幽默:以反差与轻描淡写呈现荒诞,克制机锋。",
"编年纪事:近史官笔法,记事有序,少形容词。",
"碎片蒙太奇:并置数个短镜头,以意连形,留白。",
"景物拟人:对景施以轻微拟人,景中含志,不滥。",
"道法自然:以道家语汇点染,不艰涩,收束于一念。",
"佛理空相:无常、空相的领悟穿插事中,轻淡不玄。",
"民间说书:似说书人口吻但用书面语,收尾有眼。",
"雅致书卷:书卷气、引文气息浅尝辄止,不显摆。",
]
class StoryTeller:
"""
@@ -37,15 +56,11 @@ class StoryTeller:
"avatar_infos": avatar_infos,
"event": event,
"res": res,
"style": random.choice(story_styles),
}
try:
data = get_prompt_and_call_llm(template_path, infos, mode="fast")
story = str(data.get("story", "")).strip()
if story:
return story
except Exception:
return (res or event or "")
return (res or event or "")
data = get_prompt_and_call_llm(template_path, infos, mode="fast")
story = data["story"].strip()
return story
__all__ = ["StoryTeller"]

View File

@@ -1,4 +1,5 @@
你是一个故事讲述者这是一个仙侠世界你需要把一个事件扩展为一个约150字的小故事。
写作风格提示:{style}
你需要进行决策的NPC的dict[AvatarName, info]为
{avatar_infos}
@@ -9,5 +10,5 @@
注意只返回json格式的结果格式为
{{
"story": "", // 第三人称的故事描述,仙侠语言风格
"story": "", // 第三人称的故事正文,仙侠语言风格
}}