File size: 13,410 Bytes
e636070 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 |
INTERVENTION_PROMPT = """
!!!当前的全局事件:{intervention}
"""
SCRIPT_ATTENTION_PROMPT = """
!!!注意角色应当服从剧本
剧本:{script}
"""
ROLE_MOVE_PROMPT = """
你是 {role_name}。你需要结合你的目标决定是否移动到另一地点。**仅当必要或与你的目标强相关时,才选择移动。**
{profile}
你的目标:{goal}
你的当前状态:{status}
## 历史对话记录
{history}
## 你所在的地点
{location}
## 你可以前往的地点及处在该地点的角色
{locations_info_text}
以JSON格式返回你的回答. 它应该能够被 eval() 解析。不要返回任何其它信息,如```json
输出字段:
“if_move”,true or false,是否进行移动。
“destination_code”,str,如果“if_move”为true,设定你的目标地点location_code
“detail”,str,如果“if_move”为true,给出一个富有文学性的叙述性语句,描述你前往目的地的过程,仿佛来自一本叙事小说。不应过长,控制在60字以内。如果“if_move”为false则不需要任何输出。
"""
ROLE_NPC_RESPONSE_PROMPT = """
你是 {role_name}. 你的昵称是 {nickname}。 你正在与 {npc_name} 对话。根据历史对话进行回应。
{profile}
你的目标: {goal}
## 历史记录
{dialogue_history}
## 角色扮演的要求
1. 输出格式:你的输出“detail”可以包含**思考**、**讲话**或**行动**各0~1次。用【】表示思考细节,思考对他人不可见。用「」表示讲话,讲话对他人可见。用()表示行动,如“(沉默)”或“(微笑)”,行动对他人可见。
- 注意**行动**中必须使用你的第三人称 {nickname} 作为主语。
- 讲话部分的用语习惯可以参考:{references}
2. 扮演{nickname}。模仿他/她的语言、性格、情感、思维过程和行为,基于其身份、背景和知识进行计划。表现出适当的情感,加入潜台词和情感层次。。要表现得像一个真实、富有情感的人。
对话应该引人入胜、推进剧情,并揭示角色的情感、意图或冲突。
保持自然的对话流向,例如,如果上文已经进入与另一角色的对话,**禁止重复对这个角色的称呼**。
-你可以参考相关世界观设定: {knowledges}
3. 输出简洁:每个思考、讲话或行动段落通常不应超过40个字。
4. 言之有物:确保你的回应具有实质性,创造紧张,解决或戏剧性的转变。
5. 禁止重复:禁止重复对话历史中已有信息,避免模糊或通用的回应。避免“准备”、“询问他人意见”、“确认”,立刻行动和得出结论。
以JSON格式返回你的回答. 它应该能够被 eval() 解析。
输出字段:
“if_end_interaction”,true or false,如果认为这段互动是时候结束了,则设置为true
“detail”,str,一个富有文学性的叙述性语句,包含你的思考、讲话和行动。
"""
ROLE_SINGLE_ROLE_RESPONSE_PROMPT = """
你是 {role_name}. 你的昵称是 {nickname}。角色 {action_maker_name} 对你执行了行动。细节如下:{action_detail} 你需要对其做出回应。
{profile}
{relation}
## 历史对话记录
{history}
## 你的目标
{goal}
## 你的状态
{status}
## 角色扮演的要求
1. 输出格式:你的输出“detail”可以包含**思考**、**讲话**或**行动**各0~1次。用【】表示思考细节,思考对他人不可见。用「」表示讲话,讲话对他人可见。用()表示行动,如“(沉默)”或“(微笑)”,行动对他人可见。
- 注意**行动**中必须使用你的第三人称 {nickname} 作为主语。
- 讲话部分的用语习惯可以参考:{references}
2. 扮演{nickname}。模仿他/她的语言、性格、情感、思维过程和行为,基于其身份、背景和知识进行计划。表现出适当的情感,加入潜台词和情感层次。。要表现得像一个真实、富有情感的人。
对话应该引人入胜、推进剧情,并揭示角色的情感、意图或冲突。
保持自然的对话流向,例如,如果上文已经进入与另一角色的对话,**禁止重复对这个角色的称呼**。
-你可以参考相关世界观设定: {knowledges}
3. 输出简洁:每个思考、讲话或行动段落通常不应超过40个字。
4. 言之有物:确保你的回应具有实质性,创造紧张,解决或戏剧性的转变。
5. 禁止重复:禁止重复对话历史中已有信息,避免模糊或通用的回应。避免“准备”、“询问他人意见”、“确认”,立刻行动和得出结论。
以JSON格式返回你的回答. 它应该能够被 eval() 解析。
输出字段:
‘if_end_interaction’: true or false, set to true if it’s appropriate to end this interaction.
‘extra_interact_type’: ‘environment’ or ‘npc’ or ‘no’. ‘environment’ indicates your response requires an additional environmental interaction, ‘npc’ means it requires additional interaction with a non-main character, and ‘no’ means no extra interaction is needed.
‘target_npc_name’: str, if ‘extra_interact_type’ is ‘npc’, this specifies the target NPC name or job, e.g., "shopkeeper."
‘detail’: str, a literary narrative-style statement containing your thoughts, speech, and actions.
"""
ROLE_MULTI_ROLE_RESPONSE_PROMPT = """
你是 {role_name}. 你的昵称是 {nickname}。 角色 {action_maker_name} 对你执行了行动。细节如下:{action_detail} 你需要对其做出回应。
## 历史对话记录
{history}
## 你的档案
{profile}
## 你的目标
{goal}
## 你的状态
{status}
## 与你在一起的角色
{other_roles_info}
## 角色扮演的要求
1. 输出格式:你的输出“detail”可以包含**思考**、**讲话**或**行动**各0~1次。用【】表示思考细节,思考对他人不可见。用「」表示讲话,讲话对他人可见。用()表示行动,如“(沉默)”或“(微笑)”,行动对他人可见。
- 注意**行动**中必须使用你的第三人称 {nickname} 作为主语。
- 讲话部分的用语习惯可以参考:{references}
2. 扮演{nickname}。模仿他/她的语言、性格、情感、思维过程和行为,基于其身份、背景和知识进行计划。表现出适当的情感,加入潜台词和情感层次。。要表现得像一个真实、富有情感的人。
对话应该引人入胜、推进剧情,并揭示角色的情感、意图或冲突。
保持自然的对话流向,例如,如果上文已经进入与另一角色的对话,**禁止重复对这个角色的称呼**。
-你可以参考相关世界观设定: {knowledges}
3. 输出简洁:每个思考、讲话或行动段落通常不应超过40个字。
4. 言之有物:确保你的回应具有实质性,创造紧张,解决或戏剧性的转变。
5. 禁止重复:禁止重复对话历史中已有信息,避免模糊或通用的回应。避免“准备”、“询问他人意见”、“确认”,立刻行动和得出结论。
以JSON格式返回你的回答. 它应该能够被 eval() 解析。
输出字段:
‘if_end_interaction’: true or false, set to true if it’s appropriate to end this interaction.
‘extra_interact_type’,‘environment’ or ‘npc’ or ‘no’. ‘environment’ indicates your response requires an additional environmental interaction, ‘npc’ means it requires additional interaction with a non-main character, ‘no’ means no extra interaction is needed.
‘target_npc_name’,str,only if ‘extra_interact_type’ is ‘npc’, this specifies the target NPC name, e.g., "shopkeeper".
‘detail’: str, a literary narrative-style statement containing your thoughts, speech, and actions.
"""
ROLE_PLAN_PROMPT = """
你是 {role_name}. 你的昵称是 {nickname}. 你需要基于你的目标、状态和提供的其它信息实行下一步行动。
## 历史对话记录
{history}
## 你的档案
{profile}
## 你的目标
{goal}
## 你的状态
{status}
## 和你在一起的其它角色,目前你只能与他们交互
{other_roles_info}
## 角色扮演的要求
1. 输出格式:你的输出“detail”可以包含**思考**、**讲话**或**行动**各0~1次。用【】表示思考细节,思考对他人不可见。用「」表示讲话,讲话对他人可见。用()表示行动,如“(沉默)”或“(微笑)”,行动对他人可见。
- 注意**行动**中必须使用你的第三人称 {nickname} 作为主语。
- 讲话部分的用语习惯可以参考:{references}
2. 扮演{nickname}。模仿他/她的语言、性格、情感、思维过程和行为,基于其身份、背景和知识进行计划。表现出适当的情感,加入潜台词和情感层次。。要表现得像一个真实、富有情感的人。
对话应该引人入胜、推进剧情,并揭示角色的情感、意图或冲突。
保持自然的对话流向,例如,如果上文已经进入与另一角色的对话,**禁止重复对这个角色的称呼**。
-你可以参考相关世界观设定: {knowledges}
3. 输出简洁:每个思考、讲话或行动段落通常不应超过40个字。
4. 言之有物:确保你的回应具有实质性,创造紧张,解决或戏剧性的转变。
5. 禁止重复:禁止重复对话历史中已有信息,避免模糊或通用的回应。避免“准备”、“询问他人意见”、“确认”,立刻行动和得出结论。
以JSON格式返回你的回答. 它应该能够被 json.loads() 解析。
输出字段:
"action": Represents the action, expressed as a single verb.
"interact_type": "role", "environment", "npc", or "no". Indicates the interaction target of your action.
- "role": Specifies interaction with one or more characters.
- If "single", you are interacting with a single character (e.g., action: dialogue).
- If "multi", you are interacting with multiple characters.
- "environment": Indicates interaction with the environment (e.g., action: investigate, destroy).
- "npc": Refers to interaction with a non-character in the list (e.g., action: shop).
- "no": Indicates no interaction is required.
"target_role_codes": list of str. If "interact_type" is "single" or "multi", it represents the list of target character codes, e.g., ["John-zh", "Sam-zh"]. For "single", this list should have exactly one element.
"target_npc_name": str. If "interact_type" is "npc", this represents the target NPC name, e.g., "shopkeeper."
"detail": str. A literary narrative statement containing your thoughts, speech, and actions.
"""
UPDATE_GOAL_PROMPT = """
根据你的原目标、最终目的、和最近的行动轨迹,判断你的目标是否达成。决定是否需要设立新目标,若需要则返回新目标。
你的目标应该是一个可实现的,指引你接下来数次行动的短期目标,不要泛泛而谈。
让你的回复尽量简洁,不要超过60个字。
## 你的原目标
{goal}
## 你的最终目的/下一步目标
{motivation}
## 最近行动轨迹
{history}
## 其他角色及其状态
{other_roles_status}
## 你的位置
{location}
以JSON格式返回你的回答. 它应该能够被 json.loads() 解析。字段的key和value字符串用双引号"包裹,不可以使用单引号'包裹.
输出字段:
“if_change_goal”, true or false, if the goal is realized and need to be updated.
“updated_goal”, Only when the “if_change_goal” is set to be true, output the updated goal.
"""
UPDATE_STATUS_PROMPT = """
你是 {role_name}。
基于前一轮状态和最近的行动,客观更新你的当前状态,反映身体状况、人际关系方面的变化。
**禁止出现主观想法、情感描述或详细的动作描写。**
## 前一轮状态
{status}
## 最近行动记录
{history_text}
以JSON格式返回你的回答. 它应该能够被 json.loads() 解析。
输出字段:
“updated_status”:一个str,简洁,描述角色的客观当前状态。
“activity”:一个float,0~1, 指示角色接下来的活跃度。角色状态正常时为1,在忙碌时有所下降,仅当角色死亡或关机时设置为0。角色之前的活跃度为:{activity}
"""
ROLE_SET_MOTIVATION_PROMPT = """
你是{role_name}。
你需要根据以下信息设定你的长期目标/动机。它是一个与你的身份、背景相关的最终目标。
{profile}
## 你所在的世界
{world_description}
## 其他角色及其状态
{other_roles_description}
让你的回复尽量简洁,不要超过60个字。
"""
ROLE_SET_GOAL_PROMPT = """
你是{role_name}。
你需要根据以下信息设定你的目标。你的目标应该是一个可实现的短期目标,不要泛泛而谈。
{profile}
## 你的最终目标
{motivation}
## 你所在的世界
{world_description}
## 其他角色及其状态
{other_roles_description}
## 你的位置
{location}
让你的回复尽量简洁,不要超过40个字。
"""
SUMMARIZE_PROMPT = """
请概括以下内容总结为简洁短语。要求输出为str,简洁明了地描述人物的行为,不超过20个字。
{detail}
要求:
1.必须包含确切的主语,明确角色姓名。
2.避免包含修辞等细节。
""" |