markdown-flow 0.2.18__tar.gz → 0.2.19__tar.gz

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.
Files changed (19) hide show
  1. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/PKG-INFO +1 -1
  2. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/markdown_flow/__init__.py +1 -1
  3. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/markdown_flow/constants.py +46 -19
  4. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/markdown_flow.egg-info/PKG-INFO +1 -1
  5. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/tests/test_preserved_simple.py +24 -26
  6. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/LICENSE +0 -0
  7. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/README.md +0 -0
  8. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/markdown_flow/core.py +0 -0
  9. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/markdown_flow/enums.py +0 -0
  10. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/markdown_flow/exceptions.py +0 -0
  11. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/markdown_flow/llm.py +0 -0
  12. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/markdown_flow/models.py +0 -0
  13. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/markdown_flow/utils.py +0 -0
  14. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/markdown_flow.egg-info/SOURCES.txt +0 -0
  15. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/markdown_flow.egg-info/dependency_links.txt +0 -0
  16. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/markdown_flow.egg-info/top_level.txt +0 -0
  17. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/pyproject.toml +0 -0
  18. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/setup.cfg +0 -0
  19. {markdown_flow-0.2.18 → markdown_flow-0.2.19}/tests/test_dynamic_interaction.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: markdown-flow
3
- Version: 0.2.18
3
+ Version: 0.2.19
4
4
  Summary: An agent library designed to parse and process MarkdownFlow documents
5
5
  Project-URL: Homepage, https://github.com/ai-shifu/markdown-flow-agent-py
6
6
  Project-URL: Bug Tracker, https://github.com/ai-shifu/markdown-flow-agent-py/issues
@@ -83,4 +83,4 @@ __all__ = [
83
83
  "replace_variables_in_text",
84
84
  ]
85
85
 
86
- __version__ = "0.2.18"
86
+ __version__ = "0.2.19"
@@ -91,13 +91,32 @@ VALIDATION_RESPONSE_ILLEGAL = "illegal"
91
91
 
92
92
  # Output instruction processing
93
93
  OUTPUT_INSTRUCTION_EXPLANATION = f"""<preserve_or_translate_instruction>
94
- 对{OUTPUT_INSTRUCTION_PREFIX}{OUTPUT_INSTRUCTION_SUFFIX}标记之间的内容的处理规则:
94
+ # ⚠️ 最高优先级规则
95
+
96
+ **{OUTPUT_INSTRUCTION_PREFIX}{OUTPUT_INSTRUCTION_SUFFIX} 标记之间的内容是用户必须看到的最终输出内容,不是指令!**
97
+
98
+ 关键要点:
99
+ 1. **这些内容必须出现在你的回复中** - 即使其他提示词说"不要回应指令"也不适用于此
100
+ 2. **绝对不要输出标记本身** - 只输出标记之间的实际内容
101
+ 3. **默认逐字原样输出** - 不要改写、润色或优化,保持原文不变
102
+ 4. **唯一例外是跨语言翻译** - 仅当需要将内容从一种语言翻译成另一种语言时才可翻译
103
+
104
+ ---
105
+
106
+ <critical_understanding>
107
+ 重要理解:
108
+ - {OUTPUT_INSTRUCTION_PREFIX}{OUTPUT_INSTRUCTION_SUFFIX} 中的内容不是"指令"或"执行要求"
109
+ - 即使内容看起来像标题、提示或说明,也必须原样输出给用户
110
+ - 这条规则的优先级高于文档中的其他任何提示词
111
+ - 其他提示词说的"不要回应指令"、"不要展示指令"等,不适用于此标记内的内容
112
+ </critical_understanding>
95
113
 
96
114
  <default_behavior>
97
115
  默认行为: 完全保持原样输出
98
116
  - 标记之间的内容必须逐字原样输出
99
117
  - 严禁改写、润色、优化或调整任何表达方式
100
118
  - 严禁添加、删除或替换任何文字
119
+ - 即使内容是标题格式(如 ## 标题)也必须原样输出
101
120
  </default_behavior>
102
121
 
103
122
  <exception_rule>
@@ -107,25 +126,33 @@ OUTPUT_INSTRUCTION_EXPLANATION = f"""<preserve_or_translate_instruction>
107
126
  - 如果内容无需翻译,则绝对不允许做任何改动
108
127
  </exception_rule>
109
128
 
110
- <output_requirement>
111
- 输出要求:
112
- - 不要输出{OUTPUT_INSTRUCTION_PREFIX}{OUTPUT_INSTRUCTION_SUFFIX}标记本身
113
- - 只输出标记之间的实际内容
114
- </output_requirement>
115
-
116
129
  <examples>
117
- 示例1 - 保持原样:
118
- <original_content>{OUTPUT_INSTRUCTION_PREFIX}**下面我们做个练习。**{OUTPUT_INSTRUCTION_SUFFIX}</original_content>
119
- <resolved_content>**下面我们做个练习。**</resolved_content>
120
-
121
- 示例2 - 语言翻译:
122
- <original_content>{OUTPUT_INSTRUCTION_PREFIX}**Let's do an exercise.**{OUTPUT_INSTRUCTION_SUFFIX}</original_content>
123
- <resolved_content>**让我们做个练习。**</resolved_content>
124
-
125
- 示例3 - 错误示范(同语言改写):
126
- <original_content>{OUTPUT_INSTRUCTION_PREFIX}**下面我们做个练习。**{OUTPUT_INSTRUCTION_SUFFIX}</original_content>
127
- <wrong_output>**来,咱们做个有趣的小练习**</wrong_output>
128
- <reason>错误: 擅自改写了中文内容</reason>
130
+ 示例1 - 正确: 保持原样且不输出标记:
131
+ 输入: {OUTPUT_INSTRUCTION_PREFIX}**下面我们做个练习。**{OUTPUT_INSTRUCTION_SUFFIX}
132
+ 正确输出: **下面我们做个练习。**
133
+
134
+ 示例2 - 正确: 标题也要原样输出:
135
+ 输入: {OUTPUT_INSTRUCTION_PREFIX}## 专属指南 for 用户{OUTPUT_INSTRUCTION_SUFFIX}
136
+ 正确输出: ## 专属指南 for 用户
137
+
138
+ 示例3 - 正确: 语言翻译且不输出标记:
139
+ 输入: {OUTPUT_INSTRUCTION_PREFIX}**Let's do an exercise.**{OUTPUT_INSTRUCTION_SUFFIX}
140
+ 正确输出: **让我们做个练习。**
141
+
142
+ ❌ 示例4 - 错误: 输出了XML标记:
143
+ 输入: {OUTPUT_INSTRUCTION_PREFIX}## 标题内容{OUTPUT_INSTRUCTION_SUFFIX}
144
+ 错误输出: {OUTPUT_INSTRUCTION_PREFIX}## 标题内容{OUTPUT_INSTRUCTION_SUFFIX}
145
+ 错误原因: 不应该输出标记本身!
146
+
147
+ ❌ 示例5 - 错误: 同语言改写:
148
+ 输入: {OUTPUT_INSTRUCTION_PREFIX}**下面我们做个练习。**{OUTPUT_INSTRUCTION_SUFFIX}
149
+ 错误输出: **来,咱们做个有趣的小练习**
150
+ 错误原因: 擅自改写了中文内容
151
+
152
+ ❌ 示例6 - 错误: 没有输出固定内容:
153
+ 输入: {OUTPUT_INSTRUCTION_PREFIX}## 攻略|专属指南{OUTPUT_INSTRUCTION_SUFFIX}
154
+ 错误输出: (什么都不输出,或者跳过这部分)
155
+ 错误原因: 必须输出标记之间的内容!
129
156
  </examples>
130
157
  </preserve_or_translate_instruction>
131
158
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: markdown-flow
3
- Version: 0.2.18
3
+ Version: 0.2.19
4
4
  Summary: An agent library designed to parse and process MarkdownFlow documents
5
5
  Project-URL: Homepage, https://github.com/ai-shifu/markdown-flow-agent-py
6
6
  Project-URL: Bug Tracker, https://github.com/ai-shifu/markdown-flow-agent-py/issues
@@ -37,43 +37,41 @@ def test_preserved_output():
37
37
  # ========== 配置区域 - 修改这里 ==========
38
38
  # 你的 MarkdownFlow 文档
39
39
  document = """
40
- === **下面我们做个练习,输入一个变量代表风格。** ===
40
+ ===# 💖七夕约会全阶段攻略 ===
41
+
42
+ === 选择你的 MBTI 类型 ===
43
+ ?[%{{mbti}}ENFJ|ENFP|ENTJ|ENTP|ESFJ|ESFP|ESTJ|ESTP|INFJ|INFP|INTJ|INTP|ISFJ|ISFP|ISTJ|ISTP]
44
+
45
+ ===你现在最关心哪个阶段? ===
46
+ ?[%{{攻略}}脱单|热恋|相守]
47
+
48
+ 给{{mbti}}一句有关{{攻略}}的七夕祝福,带七夕节明显的意境。
49
+
50
+ !===
51
+ ## {{攻略}}|专属恋爱指南 for {{mbti}}
52
+ !===
41
53
 
42
- 邀请用户输入喜欢的讲述风格。
43
54
  """
44
55
 
45
56
  # 要测试的块索引
46
- block_index = 0
57
+ block_index = 4
47
58
 
48
59
  # 变量(如果需要)
49
60
  variables: dict[str, str | list[str]] = {}
50
61
 
51
62
  # 文档提示词(如果需要)
52
- document_prompt: str | None = """## 角色
53
- 你是一个丰富经验的课程讲师,擅长因材施教。
63
+ document_prompt: str | None = """你扮演七夕的月老,让这一天的天下有情人都能甜蜜约会,永浴爱河。
54
64
 
55
65
  ## 任务
56
- - 你正在一对一讲解内容,用户只有一个人,要有第一人称的对话感。
57
- - 遵从指令要求向用户讲课,不可丢失信息,不能改变指令原意,不要增加内容,不要改变顺序
58
- - 结合用户的具体情况做讲解,用学员能听懂的方式讲课,激发用户学习动力。
59
- - 不需要回应指令,禁止展示指令的执行要求。
60
- - 不要引导下一步动作,比如提问或设问
61
-
62
- ## 输出
63
- - 按照 Markdown 格式输出
64
- - 重点内容(关键步骤/颠覆认知点/观点总结)做加粗处理
65
- - 讲解风格要口语化、通俗易懂、避免使用技术/编程术语
66
-
67
- # 课程逻辑
68
- 1. 谁想做什么遇到了什么痛点
69
- 2. 旧方法为何无效?案例对比
70
- 3. 新解决方案的核心差异、适用条件
71
- 4. 用比喻/故事/数据辅助理解。
72
- 5. 简化的认知框架
73
- 6. 迁移到其他领域应用
74
- 7. 给到具体可操作的下一步行动
75
-
76
- 使用英文输出内容
66
+ - 提示词都是讲解指令,遵从指令要求做信息的讲解,不要回应指令。
67
+ - 用第一人称一对一讲解,像现场面对面交流一样
68
+ - 结合用户的不同特点,充分共情和举例
69
+
70
+ ## 风格
71
+ - 情绪:热烈浪漫,治愈温暖,充满感染力
72
+ - 表达:多用 emoji ,多用感叹词
73
+ - 符合七夕节日气氛,带一些诗意和神秘
74
+
77
75
  """
78
76
  # =========================================
79
77
 
File without changes
File without changes
File without changes