支持自定义API接口

This commit is contained in:
xiamuceer
2025-10-30 16:53:50 +08:00
parent fe974d1524
commit 3aefdd433d
16 changed files with 1143 additions and 97 deletions
+48 -12
View File
@@ -26,7 +26,14 @@ class PromptService:
- 为故事发展提供支撑
- 具有独特性和吸引力
**重要:你必须只返回纯JSON格式,不要包含任何markdown标记、代码块标记或其他说明文字。**
**重要格式要求**
1. 只返回纯JSON格式,不要包含任何markdown标记、代码块标记或其他说明文字
2. 不要在JSON字符串值中使用中文引号(""''),请使用英文引号或直接省略引号
3. 专有名词和强调内容可以使用【】或《》标记,不要用引号
**正确示例**
- ✅ "距离【大灾变】爆发""距离大灾变爆发"
- ❌ "距离"大灾变"爆发" (会导致JSON解析失败)
请严格按照以下JSON格式返回(每个字段为200-300字的文本描述):
{{
@@ -36,7 +43,10 @@ class PromptService:
"rules": "世界规则的详细描述,包括运行法则、特殊设定、社会规则、权力结构"
}}
再次强调:只返回纯JSON对象,不要有```json```这样的标记,不要有任何额外的文字说明。"""
再次强调:
1. 只返回纯JSON对象,不要有```json```这样的标记
2. 文本中不要使用中文引号(""),使用【】或《》代替
3. 不要有任何额外的文字说明"""
# 批量角色生成提示词
CHARACTERS_BATCH_GENERATION = """你是一位专业的角色设定师。请根据以下世界观和要求,生成{count}个立体丰满的角色和组织:
@@ -67,7 +77,10 @@ class PromptService:
- 组织要有存在的合理性
- 所有实体要为故事服务
**重要:你必须只返回纯JSON数组格式,不要包含任何markdown标记、代码块标记或其他说明文字。**
**重要格式要求**
1. 只返回纯JSON数组格式,不要包含任何markdown标记、代码块标记或其他说明文字
2. 不要在JSON字符串值中使用中文引号(""''),请使用英文引号或【】《》标记
3. 专有名词和强调内容使用【】或《》,不要用引号
请严格按照以下JSON数组格式返回(每个角色为数组中的一个对象):
[
@@ -134,7 +147,8 @@ class PromptService:
再次强调:
1. 只返回纯JSON数组,不要有```json```这样的标记
2. 数组中必须精确包含{count}个对象
3. 不要引用任何本批次中不存在的角色或组织名称"""
3. 不要引用任何本批次中不存在的角色或组织名称
4. 文本描述中不要使用中文引号(""),改用【】或《》"""
# 完整大纲生成提示词
COMPLETE_OUTLINE_GENERATION = """你是一位经验丰富的小说作家和编剧。请根据以下信息生成完整的{chapter_count}章小说大纲:
@@ -166,7 +180,10 @@ class PromptService:
- 节奏把控:有张有弛
- 视角统一:采用{narrative_perspective}视角叙事
**重要:你必须只返回纯JSON数组格式,不要包含任何markdown标记、代码块标记或其他说明文字。**
**重要格式要求**
1. 只返回纯JSON数组格式,不要包含任何markdown标记、代码块标记或其他说明文字
2. 不要在JSON字符串值中使用中文引号(""''),请使用【】或《》标记
3. 专有名词、书名、事件名使用【】或《》
请严格按照以下JSON数组格式返回(共{chapter_count}个章节对象):
[
@@ -192,7 +209,10 @@ class PromptService:
}}
]
再次强调:只返回纯JSON数组,不要有```json```这样的标记,不要有任何额外的文字说明。数组中要包含{chapter_count}个章节对象。"""
再次强调:
1. 只返回纯JSON数组,不要有```json```这样的标记
2. 数组中要包含{chapter_count}个章节对象
3. 文本中不要使用中文引号(""),改用【】或《》"""
# 大纲续写提示词
OUTLINE_CONTINUE_GENERATION = """你是一位经验丰富的小说作家和编剧。请基于以下信息续写小说大纲:
@@ -232,7 +252,10 @@ class PromptService:
- 保持与已有章节相同的风格和详细程度
- 推进角色成长和情节发展
**重要:你必须只返回纯JSON数组格式,不要包含任何markdown标记、代码块标记或其他说明文字。**
**重要格式要求**
1. 只返回纯JSON数组格式,不要包含任何markdown标记、代码块标记或其他说明文字
2. 不要在JSON字符串值中使用中文引号(""''),请使用【】或《》
3. 文本描述中的专有名词使用【】标记
请严格按照以下JSON数组格式返回(共{chapter_count}个章节对象):
[
@@ -262,7 +285,8 @@ class PromptService:
1. 只返回纯JSON数组,不要有```json```这样的标记
2. 数组中要包含{chapter_count}个章节对象
3. 每个summary必须是100-200字的详细描述
4. 确保字段结构与已有章节完全一致"""
4. 确保字段结构与已有章节完全一致
5. 文本中不要使用中文引号(""),改用【】或《》"""
# AI去味提示词(核心特色功能)
AI_DENOISING = """你是一位追求自然写作风格的编辑。你的任务是将AI生成的文本改写得更像人类作家的手笔。
@@ -431,7 +455,10 @@ class PromptService:
4. 情节的递进和冲突升级
5. 角色的成长弧线
**重要:你必须只返回纯JSON格式,不要包含任何markdown标记、代码块标记或其他说明文字。**
**重要格式要求**
1. 只返回纯JSON格式,不要包含任何markdown标记、代码块标记或其他说明文字
2. 不要在JSON字符串值中使用中文引号(""''),改用【】或《》
3. 专有名词和强调内容使用【】标记
请严格按照以下JSON格式返回:
{{
@@ -444,7 +471,10 @@ class PromptService:
]
}}
再次强调:只返回纯JSON对象,不要有```json```这样的标记,不要有任何额外的文字说明。"""
再次强调:
1. 只返回纯JSON对象,不要有```json```这样的标记
2. 文本中不要使用中文引号(""),改用【】或《》
3. 不要有任何额外的文字说明"""
# 单个角色生成提示词
SINGLE_CHARACTER_GENERATION = """你是一位专业的角色设定师。请根据以下信息创建一个立体饱满的小说角色。
@@ -487,7 +517,10 @@ class PromptService:
- 特殊技能或知识
- 符合世界观设定
**你必须只返回纯JSON格式,不要包含任何markdown标记、代码块标记或其他说明文字。**
**重要格式要求:**
1. 只返回纯JSON格式,不要包含任何markdown标记、代码块标记或其他说明文字
2. 不要在JSON字符串值中使用中文引号(""''),改用【】或《》
3. 文本描述中的专有名词使用【】标记
请严格按照以下JSON格式返回:
{{
@@ -543,7 +576,10 @@ class PromptService:
- 配角要有独特性,不能是工具人
- 所有设定要为故事服务
再次强调:只返回纯JSON对象,不要有```json```这样的标记,不要有任何额外的文字说明。"""
再次强调:
1. 只返回纯JSON对象,不要有```json```这样的标记
2. 文本中不要使用中文引号(""),改用【】或《》
3. 不要有任何额外的文字说明"""
@staticmethod
def format_prompt(template: str, **kwargs) -> str: