fix:1.修复自定义系统模板提示词的多出问题
This commit is contained in:
@@ -2709,7 +2709,9 @@ async def regenerate_chapter_stream(
|
|||||||
analysis=analysis,
|
analysis=analysis,
|
||||||
regenerate_request=regenerate_request,
|
regenerate_request=regenerate_request,
|
||||||
project_context=project_context,
|
project_context=project_context,
|
||||||
style_content=style_content
|
style_content=style_content,
|
||||||
|
user_id=user_id,
|
||||||
|
db=db_session
|
||||||
):
|
):
|
||||||
# 处理不同类型的事件
|
# 处理不同类型的事件
|
||||||
if event['type'] == 'chunk':
|
if event['type'] == 'chunk':
|
||||||
|
|||||||
@@ -177,11 +177,9 @@ class ChapterRegenerator:
|
|||||||
db: AsyncSession = None
|
db: AsyncSession = None
|
||||||
) -> str:
|
) -> str:
|
||||||
"""构建完整的重新生成提示词"""
|
"""构建完整的重新生成提示词"""
|
||||||
# 获取自定义提示词模板
|
# 使用PromptService的get_chapter_regeneration_prompt方法
|
||||||
template = await PromptService.get_template("CHAPTER_REGENERATION_SYSTEM", user_id, db)
|
# 该方法会处理自定义模板加载和完整提示词构建
|
||||||
# 格式化提示词
|
return await PromptService.get_chapter_regeneration_prompt(
|
||||||
return PromptService.format_prompt(
|
|
||||||
template,
|
|
||||||
chapter_number=chapter.chapter_number,
|
chapter_number=chapter.chapter_number,
|
||||||
title=chapter.title,
|
title=chapter.title,
|
||||||
word_count=chapter.word_count,
|
word_count=chapter.word_count,
|
||||||
@@ -189,7 +187,9 @@ class ChapterRegenerator:
|
|||||||
modification_instructions=modification_instructions,
|
modification_instructions=modification_instructions,
|
||||||
project_context=project_context,
|
project_context=project_context,
|
||||||
style_content=style_content,
|
style_content=style_content,
|
||||||
target_word_count=regenerate_request.target_word_count
|
target_word_count=regenerate_request.target_word_count,
|
||||||
|
user_id=user_id,
|
||||||
|
db=db
|
||||||
)
|
)
|
||||||
|
|
||||||
def calculate_content_diff(
|
def calculate_content_diff(
|
||||||
|
|||||||
@@ -53,7 +53,12 @@ class PlotAnalyzer:
|
|||||||
analysis_content = content[:8000] if len(content) > 8000 else content
|
analysis_content = content[:8000] if len(content) > 8000 else content
|
||||||
|
|
||||||
# 获取自定义提示词模板
|
# 获取自定义提示词模板
|
||||||
|
if user_id and db:
|
||||||
template = await PromptService.get_template("PLOT_ANALYSIS", user_id, db)
|
template = await PromptService.get_template("PLOT_ANALYSIS", user_id, db)
|
||||||
|
else:
|
||||||
|
# 降级到系统默认模板
|
||||||
|
template = PromptService.PLOT_ANALYSIS
|
||||||
|
|
||||||
# 格式化提示词
|
# 格式化提示词
|
||||||
prompt = PromptService.format_prompt(
|
prompt = PromptService.format_prompt(
|
||||||
template,
|
template,
|
||||||
|
|||||||
@@ -1901,11 +1901,35 @@ class PromptService:
|
|||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_chapter_regeneration_prompt(cls, chapter_number: int, title: str, word_count: int, content: str,
|
async def get_chapter_regeneration_prompt(cls, chapter_number: int, title: str, word_count: int, content: str,
|
||||||
modification_instructions: str, project_context: Dict[str, Any],
|
modification_instructions: str, project_context: Dict[str, Any],
|
||||||
style_content: str, target_word_count: int) -> str:
|
style_content: str, target_word_count: int,
|
||||||
"""获取章节重写提示词"""
|
user_id: str = None, db = None) -> str:
|
||||||
prompt_parts = [cls.CHAPTER_REGENERATION_SYSTEM]
|
"""
|
||||||
|
获取章节重写提示词(支持用户自定义)
|
||||||
|
|
||||||
|
Args:
|
||||||
|
chapter_number: 章节序号
|
||||||
|
title: 章节标题
|
||||||
|
word_count: 原始字数
|
||||||
|
content: 原始内容
|
||||||
|
modification_instructions: 修改指令
|
||||||
|
project_context: 项目上下文
|
||||||
|
style_content: 写作风格
|
||||||
|
target_word_count: 目标字数
|
||||||
|
user_id: 用户ID(可选,用于获取自定义模板)
|
||||||
|
db: 数据库会话(可选,用于查询自定义模板)
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
完整的章节重写提示词
|
||||||
|
"""
|
||||||
|
# 获取系统提示词模板(支持用户自定义)
|
||||||
|
if user_id and db:
|
||||||
|
system_template = await cls.get_template("CHAPTER_REGENERATION_SYSTEM", user_id, db)
|
||||||
|
else:
|
||||||
|
system_template = cls.CHAPTER_REGENERATION_SYSTEM
|
||||||
|
|
||||||
|
prompt_parts = [system_template]
|
||||||
|
|
||||||
# 原始章节信息
|
# 原始章节信息
|
||||||
prompt_parts.append(f"""## 📖 原始章节信息
|
prompt_parts.append(f"""## 📖 原始章节信息
|
||||||
|
|||||||
Reference in New Issue
Block a user