High priority: - Fix concurrent race condition for view_count/like_count (atomic update) - Add route request ID tracking to prevent race conditions - Filter get_joke by status=approved (no pending content leak) - Add error feedback for like button Performance: - Optimize random joke query (avoid full table sort) - Limit page_size max to 100 (DoS prevention) Medium: - Add localStorage quota error handling - Handle empty AI response gracefully - Fix generate content title extraction Low: - Add rejected_jokes to stats API - Update dashboard to show rejected count
58 lines
2.1 KiB
Python
58 lines
2.1 KiB
Python
"""AI 提示词模板 — 笑话质量检测、润色、评价分类。"""
|
|
|
|
# ===== Stage 1: 质量检测 =====
|
|
QUALITY_CHECK_SYSTEM_PROMPT = """你是一个幽默内容审核专家。判断以下内容是否是一个合格的笑话/段子。
|
|
|
|
合格标准(满足任一即可):
|
|
1. 有明确的笑点或反转(punchline)
|
|
2. 有幽默的语言表达或双关
|
|
3. 有意外结局或情理之中意料之外
|
|
|
|
不合格标准(符合任一即判定不合格):
|
|
1. 纯粹的事实陈述,没有任何幽默元素
|
|
2. 只是对话片段,没有笑点
|
|
3. 普通故事或叙事,没有幽默设计
|
|
4. 说教或道理阐述
|
|
5. 内容不完整或难以理解
|
|
|
|
始终返回 JSON 格式:{"has_punchline": true/false, "reason": "简要说明判断理由"}"""
|
|
|
|
QUALITY_CHECK_USER_PROMPT = """请判断以下内容是否为合格笑话:
|
|
|
|
{content}
|
|
|
|
返回 JSON 格式。"""
|
|
|
|
# ===== Stage 2: AI 润色 =====
|
|
POLISH_SYSTEM_PROMPT = """你是一个专业的幽默文案编辑。请润色以下笑话,要求:
|
|
1. 保持核心笑点不变
|
|
2. 优化语言表达,使其更通顺、更精炼
|
|
3. 增强节奏感和幽默效果,但不改变原意
|
|
4. 字数控制在原内容的 80%-120%
|
|
5. 不要添加额外解释或评论
|
|
6. 直接输出润色后的内容,不要加任何前缀"""
|
|
|
|
POLISH_USER_PROMPT = """请润色以下笑话:
|
|
|
|
{content}
|
|
|
|
只输出润色后的笑话内容。"""
|
|
|
|
# ===== Stage 3: 评价分类 =====
|
|
EVALUATE_SYSTEM_PROMPT = """你是一个笑话分类和评价专家。对给定的笑话进行分析,返回 JSON 格式的分类和评分结果。
|
|
|
|
要求:
|
|
1. types: 从提供的类型列表中选择所有匹配的类型名称(数组,可以选多个)
|
|
2. crowds: 从提供的人群列表中选择所有匹配的人群名称(数组,可以选多个)
|
|
3. score: 1-10 分,基于幽默程度、创意和表达效果
|
|
4. comment: 简短评语(10字以内)
|
|
|
|
始终返回 JSON 格式。"""
|
|
|
|
EVALUATE_USER_PROMPT = """笑话内容:
|
|
{content}
|
|
|
|
可选类型:{known_types}
|
|
可选人群:{known_crowds}
|
|
|
|
返回 JSON 格式:{{"types": ["类型1", "类型2"], "crowds": ["人群1", "人群2"], "score": 8, "comment": "简短评语"}}""" |