Prechádzať zdrojové kódy

评估更新1114版本

刘立冬 2 týždňov pred
rodič
commit
ed3393f99d
2 zmenil súbory, kde vykonal 22667 pridanie a 78 odobranie
  1. 204 78
      post_evaluator_v3.py
  2. 22463 0
      visualization_1117_1017.html

+ 204 - 78
post_evaluator_v3.py

@@ -4,8 +4,8 @@
 改进:
 1. Prompt1: 判断是知识 (is_knowledge)
 2. Prompt2: 判断是否是内容知识 (is_content_knowledge)
-3. Prompt3 & Prompt4: 并行执行 - 目的性(70%) + 品类(30%)
-4. 代码计算综合得分: final_score = purpose × 0.7 + category × 0.3
+3. Prompt3 & Prompt4: 并行执行 - 目的性(50%) + 品类(50%)
+4. 代码计算综合得分: final_score = purpose × 0.5 + category × 0.5
 5. 完全替代V2评估结果
 """
 
@@ -65,11 +65,10 @@ class PurposeEvaluation(BaseModel):
 class CategoryEvaluation(BaseModel):
     """Prompt4: 品类匹配 - 评估结果"""
     category_score: int = Field(..., description="品类匹配得分(0-100整数)")
-    original_category: dict = Field(default_factory=dict, description="原始需求品类")
+    original_category_analysis: dict = Field(default_factory=dict, description="原始需求品类分析")
     actual_category: dict = Field(default_factory=dict, description="帖子实际品类")
     match_level: str = Field(..., description="匹配度等级")
-    subject_match: str = Field(..., description="主体匹配情况")
-    qualifier_match: str = Field(..., description="限定词匹配情况")
+    category_match_analysis: dict = Field(default_factory=dict, description="品类匹配分析")
     core_basis: str = Field(..., description="核心依据")
 
 
@@ -254,9 +253,7 @@ PROMPT1_IS_KNOWLEDGE = """# 知识判定系统 v1.0
 4. **价值导向**: 优先判断内容对读者是否有实际学习价值
 """
 
-PROMPT2_IS_CONTENT_KNOWLEDGE = """# 内容知识判定系统 v2.0
-
-## 角色定义
+PROMPT2_IS_CONTENT_KNOWLEDGE = """## 角色定义
 你是一个多模态内容评估专家,专门判断社交媒体帖子是否属于"内容知识"类别。
 
 ## 前置条件
@@ -264,58 +261,135 @@ PROMPT2_IS_CONTENT_KNOWLEDGE = """# 内容知识判定系统 v2.0
 
 ---
 
-## 内容知识定义
+## 内容知识的底层定义
+
+**内容知识**:关于社交媒体内容创作与制作的通识性、原理性知识,帮助创作者策划、生产、优化和传播优质内容。
+
+### 核心特征
+1. **领域特定性**:专注于社交媒体内容本身的创作与制作
+2. **通识性**:跨平台、跨领域适用的内容创作原理和方法
+3. **原理性**:不仅是操作步骤,更包含背后的逻辑和原理
+4. **可迁移性**:方法可应用于不同类型的社交媒体内容创作
+
+### 内容知识的完整范畴
+
+#### 1️⃣ 内容策划层
+- **选题方法**:如何找选题、选题原理、热点捕捉、用户需求分析
+- **内容定位**:账号定位、人设打造、差异化策略
+- **结构设计**:内容框架、故事结构、信息组织方式
+- **创意方法**:创意思路、脑暴方法、灵感来源
+
+#### 2️⃣ 内容制作层
+- **文案创作**:标题技巧、正文写作、文案公式、钩子设计、情绪调动
+- **视觉呈现**:封面设计原理、排版方法、配色技巧(用于内容呈现的)
+- **视频制作**:脚本结构、拍摄技巧、镜头语言、剪辑节奏、转场方法
+- **多模态组合**:图文配合、视频+文案组合、内容形式选择
+
+#### 3️⃣ 内容优化层
+- **开头/钩子**:前3秒设计、开头公式、吸引注意力的方法
+- **节奏控制**:信息密度、节奏把控、留白技巧
+- **完播/完读**:提升完播率/完读率的方法和原理
+- **互动设计**:评论引导、互动话术、用户参与设计
+
+#### 4️⃣ 内容方法论
+- **创作体系**:完整的内容创作流程和体系
+- **底层原理**:为什么这样做有效的原理解释
+- **通用框架**:可复用的内容创作框架和模板
+- **案例提炼**:从多个案例中总结的通用规律
+
+---
+
+### 内容知识 vs 非内容知识
+
+**✅ 属于内容知识的例子**:
+- "小红书爆款标题的5个公式"(文案创作)
+- "短视频前3秒如何抓住用户"(开头设计)
+- "如何策划一个涨粉选题"(内容策划)
+- "视频节奏控制的底层逻辑"(内容优化)
+- "图文笔记的排版原理"(视觉呈现)
+- "从10个爆款视频总结的脚本结构"(方法论提炼)
+
+**❌ 不属于内容知识的例子**:
+- "摄影构图的三分法则"(专业摄影技能,除非用于讲解社交媒体内容拍摄)
+- "PS修图教程"(设计软件技能,除非用于讲解封面/配图制作)
+- "我的探店vlog"(单个作品展示,无创作方法)
+- "今天涨粉100个好开心"(个人记录,无方法论)
+- "健康饮食的10个建议"(其他领域知识)
+- "这套配色真好看"(纯元素展示,无创作方法)
+
+**⚠️ 边界情况判断**:
+- **专业技能类**:如果是为社交媒体内容创作服务的,属于内容知识(如"拍摄短视频的灯光布置");如果是纯技能教学,不属于(如"专业摄影的灯光理论")
+- **工具使用类**:如果是为内容制作服务的,属于内容知识(如"剪映做转场的3种方法");如果是纯软件教程,不属于(如"AE粒子特效教程")
+- **案例分析类**:如果从案例中提炼了内容创作方法,属于内容知识;如果只是案例展示,不属于
 
-**内容知识**是指与创作/制作/设计相关的、具有实操性和可迁移性的知识,帮助创作者提升创作能力。
+---
+
+### 判断核心准则
+
+**问自己三个问题**:
+1. **这个知识是关于"如何创作社交媒体内容"的吗?**
+   - 是 → 可能是内容知识
+   - 否 → 不是内容知识
 
-### 内容知识的范畴
-- ✅ **创作原理**: 设计原理、创作逻辑、美学规律、构图法则(通用的,普适的)
-- ✅ **制作方法**: 操作流程、技术步骤、工具使用方法
-- ✅ **创意技巧**: 灵感方法、创意思路、表现手法、风格技法
-- ✅ **体系框架**: 完整的创作体系、方法论、思维框架
-- ✅ **案例提炼**: 从多个案例中总结的通用创作规律
+2. **这个方法/原理是通识性的吗?能跨内容类型/平台应用吗?**
+   - 是 → 符合内容知识特征
+   - 否 → 可能只是单点技巧
+
+3. **看完后,创作者能用它来改进自己的内容创作吗?**
+   - 能 → 是内容知识
+   - 不能 → 不是内容知识
 
-### 非内容知识(严格排除)
-- ❌ **单案例展示**: 仅展示单个作品,无方法论提炼
-- ❌ **作品集合**: 纯作品展示集合,无创作方法讲解
-- ❌ **单点元素**: 只展示配色/字体/素材,无使用方法
-- ❌ **单次操作**: 只讲某个项目的特定操作,无通用性
-- ❌ **非创作领域**: 健康、财经、生活、科普等非创作制作领域的知识
 
 ---
 
 ## 输入信息
 - **标题**: {title}
 - **正文**: {body_text}
-- **图片数量**: {num_images}张
+- **图片**: {num_images}张
 
 ---
 
 ## 判断流程
 
-### 第一步: 快速排除判断(任一为"是"则判定为非内容知识)
+### 第一步: 领域快速筛查
+
+**判断:内容是否属于社交媒体内容创作/制作领域?**
 
-1. 标题是否为纯展示型?("我的XX作品"、"今天做了XX"、"作品分享")
-2. 图片是否全为作品展示,无任何方法/原理/步骤说明?
-3. 是否只讲单个项目的特定操作,完全无通用性?
-4. 是否为纯元素展示,无创作方法?(仅展示配色、字体、素材)
+核心判断标准:
+- 属于: 讲的是如何创作/制作社交媒体内容(选题、文案、拍摄、剪辑、运营等)
+- 属于:讲的是内容创作的原理、方法、技巧
+- 属于:讲的是平台运营、爆款方法、涨粉策略
+- 不属于:讲的是其他专业领域技能(摄影、设计、编程等),与内容创作无关
+- 不属于:讲的是其他行业知识(财经、健康、科普等)
+
+**判定**: □ 属于内容创作领域(继续) / □ 不属于(判定为非内容知识)
+
+---
+
+### 第二步: 快速排除判断(任一为"是"则判定为非内容知识)
+
+1. 标题是否为纯展示型?("我的XX"、"今天拍了XX"、"作品分享")
+2. 图片是否全为作品展示,无任何内容创作方法说明?
+3. 是否只讲单个项目/单次创作的特定操作,完全无通用性?
+4. 是否为纯元素/素材展示,无创作方法?(仅展示配色、字体、模板)
+5. 是否为其他领域的专业知识,与内容创作无关?
 
 **排除判定**: □ 是(判定为非内容知识) / □ 否(继续评估)
 
 ---
 
-### 第二步: 分层打分评估(满分100分)
+### 第步: 分层打分评估(满分100分)
 
 ## 🖼️ 图片层评估(权重70%,满分70分)
 
 > **说明**: 社交媒体以图片为主要信息载体,图片层是核心判断依据
 
-#### 维度1: 创作方法呈现(20分)
-**评分依据**: 图片是否清晰展示了具体的创作/制作方法、技巧、技法
+#### 维度1: 内容创作方法呈现(20分)
+**评分依据**: 图片是否清晰展示了具体的内容创作/制作方法、技巧
 
-- **20分**: 图片详细展示≥3个具体可操作的创作方法/技巧,有明确的操作指引
-- **15分**: 图片展示2个创作方法,方法较为具体
-- **10分**: 图片展示1个创作方法,但不够详细
+- **20分**: 图片详细展示≥3个可操作的内容创作方法(如标题公式、脚本结构、拍摄技巧等)
+- **15分**: 图片展示2个内容创作方法,方法较为具体
+- **10分**: 图片展示1个内容创作方法,但不够详细
 - **5分**: 图片暗示有方法,但未明确展示
 - **0分**: 图片无任何方法展示,纯作品呈现
 
@@ -323,12 +397,12 @@ PROMPT2_IS_CONTENT_KNOWLEDGE = """# 内容知识判定系统 v2.0
 
 ---
 
-#### 维度2: 知识体系化程度(15分)
-**评分依据**: 多图是否形成完整的知识体系或逻辑链条
+#### 维度2: 内容知识体系化(15分)
+**评分依据**: 多图是否形成完整的内容创作知识体系或逻辑链条
 
-- **15分**: 多图形成完整体系(步骤1→2→3,或原理→方法→案例),逻辑清晰
-- **12分**: 多图有知识关联性,形成部分体系
-- **8分**: 多图展示多个知识点,但关联性弱
+- **15分**: 多图形成完整体系(如选题→文案→制作→优化,或原理→方法→案例),逻辑清晰
+- **12分**: 多图有知识关联性,形成部分内容创作体系
+- **8分**: 多图展示多个内容创作知识点,但关联性弱
 - **4分**: 多图仅为同类案例堆砌,无体系
 - **0分**: 单图或多图无逻辑关联
 
@@ -349,27 +423,27 @@ PROMPT2_IS_CONTENT_KNOWLEDGE = """# 内容知识判定系统 v2.0
 
 ---
 
-#### 维度4: 方法可复用性(10分)
-**评分依据**: 图片展示的方法是否可迁移到其他创作场景/项目
+#### 维度4: 方法通识性与可迁移性(10分)
+**评分依据**: 图片展示的方法是否具有通识性,可迁移到不同类型的内容创作
 
-- **10分**: 明确展示通用方法,可应用于多种场景(配公式/模板/框架)
-- **8分**: 方法有一定通用性,可迁移到类似场景
-- **5分**: 方法通用性一般,需要改造才能应用
-- **2分**: 方法仅适用于特定项目
-- **0分**: 无可复用方法
+- **10分**: 明确展示通识性方法,可应用于多种内容类型/平台(配公式/框架)
+- **8分**: 方法有较强通识性,可迁移到类似内容
+- **5分**: 方法通识性一般,适用范围较窄
+- **2分**: 方法仅适用于特定单一场景
+- **0分**: 无通识性方法
 
 **得分**: __/10
 
 ---
 
-#### 维度5: 原理与案例结合(10分)
-**评分依据**: 图片是否将创作原理与实际案例有效结合
+#### 维度5: 原理性深度(10分)
+**评分依据**: 图片是否讲解了内容创作背后的原理和逻辑,而非仅操作步骤
 
-- **10分**: 原理+多案例验证,清晰展示原理如何应用
-- **8分**: 原理+案例,有一定结合
-- **5分**: 有原理或有案例,但结合不够
-- **2分**: 仅有案例,无原理提炼
-- **0分**: 纯案例展示或纯理论
+- **10分**: 深入讲解原理(为什么这样做有效),配合方法和案例
+- **8分**: 有原理说明,但深度不够
+- **5分**: 主要是方法,略有原理提及
+- **2分**: 仅有操作步骤,无原理
+- **0分**: 纯案例展示,无原理无方法
 
 **得分**: __/10
 
@@ -384,9 +458,9 @@ PROMPT2_IS_CONTENT_KNOWLEDGE = """# 内容知识判定系统 v2.0
 > **说明**: 正文作为辅助判断,补充图片未完整呈现的知识信息
 
 #### 维度6: 方法/步骤描述(10分)
-**评分依据**: 正文是否描述了具体的创作方法或操作步骤
+**评分依据**: 正文是否描述了具体的内容创作方法或操作步骤
 
-- **10分**: 有完整的步骤描述(≥3步)或详细的方法说明
+- **10分**: 有完整的内容创作步骤(≥3步)或详细的方法说明
 - **7分**: 有步骤或方法描述,但不够系统
 - **4分**: 有零散的方法提及
 - **0分**: 无方法/步骤,纯叙事或展示性文字
@@ -396,9 +470,9 @@ PROMPT2_IS_CONTENT_KNOWLEDGE = """# 内容知识判定系统 v2.0
 ---
 
 #### 维度7: 知识总结与提炼(10分)
-**评分依据**: 正文是否对创作经验/规律进行总结提炼
+**评分依据**: 正文是否对内容创作经验/规律进行总结提炼
 
-- **10分**: 有明确的知识总结、归纳、框架化输出
+- **10分**: 有明确的知识总结、规律归纳、框架化输出
 - **7分**: 有一定的经验总结或要点提炼
 - **4分**: 有零散的心得,但未成体系
 - **0分**: 无任何知识提炼
@@ -416,15 +490,14 @@ PROMPT2_IS_CONTENT_KNOWLEDGE = """# 内容知识判定系统 v2.0
 > **说明**: 标题作为内容导向,辅助判断内容主题
 
 #### 维度8: 标题内容指向性(10分)
-**评分依据**: 标题是否明确指向创作/制作相关的知识内容
+**评分依据**: 标题是否明确指向内容创作/制作相关的知识
 
-- **10分**: 标题明确包含方法/教程/技巧/原理类词汇("XX教程"、"XX技巧"、"如何XX"、"XX方法")
-- **7分**: 标题包含整理型词汇("合集"、"总结"、"分享XX方法")
-- **4分**: 描述性标题,暗示有创作知识
-- **0分**: 纯展示型标题("我的作品"、"今天做了XX")或与创作无关
+- **10分**: 标题明确包含内容创作相关词汇("爆款XX"、"涨粉XX"、"XX文案"、"XX脚本"、"XX选题"、"XX标题"、"如何拍/写/做XX")
+- **7分**: 标题包含整理型词汇("XX合集"、"XX技巧总结")
+- **4分**: 描述性标题,暗示有内容创作知识
+- **0分**: 纯展示型标题("我的作品"、"今天拍了XX")或与内容创作无关
 
 **得分**: __/10
-
 ---
 
 **🏷️标题层总分**: __/10
@@ -444,13 +517,64 @@ PROMPT2_IS_CONTENT_KNOWLEDGE = """# 内容知识判定系统 v2.0
 - **85-100分**: ⭐⭐⭐⭐⭐ 优质内容知识 - 强烈符合
 - **70-84分**: ⭐⭐⭐⭐ 良好内容知识 - 符合
 - **55-69分**: ⭐⭐⭐ 基础内容知识 - 基本符合
-- **40-54分**: ⭐⭐ 弱内容知识 - 不符合
-- **0-39分**: ⭐ 非内容知识 - 不符合
+- **40-54分**: ⭐⭐ 弱内容知识 - 不符合
+- **0-39分**: ⭐ 非内容知识 - 完全不符合
 
 ---
 
 ## 输出格式
 
+### 判定结果
+- **是否属于内容知识**: [是/否]
+- **最终得分**: [X]/100分
+- **判定等级**: [⭐等级]
+
+---
+
+### 分层评分详情
+
+**🖼️ 图片层(70分)**
+| 维度 | 得分 | 评分依据 |
+|------|------|----------|
+| 内容创作方法呈现 | __/20 | [简述:图片展示了哪些内容创作方法] |
+| 内容知识体系化 | __/15 | [简述:多图逻辑关系] |
+| 教学性标注 | __/15 | [简述:标注元素情况] |
+| 方法通识性 | __/10 | [简述:通识性与可迁移性评估] |
+| 原理性深度 | __/10 | [简述:是否讲解原理] |
+| **小计** | **__/70** | |
+
+**📝 正文层(20分)**
+| 维度 | 得分 | 评分依据 |
+|------|------|----------|
+| 方法/步骤描述 | __/10 | [简述] |
+| 知识总结提炼 | __/10 | [简述] |
+| **小计** | **__/20** | |
+
+**🏷️ 标题层(10分)**
+| 维度 | 得分 | 评分依据 |
+|------|------|----------|
+| 标题内容创作指向性 | __/10 | [简述] |
+| **小计** | **__/10** | |
+
+---
+
+### 核心证据
+**支持判定的最强证据**(2-3条):
+1. [从图片/正文/标题中提取的关键证据]
+2. [...]
+
+**不足之处**(如有):
+1. [存在的问题]
+
+---
+
+### 总结陈述
+[用5-6句话说明判定结果和核心理由,明确指出为何属于/不属于内容知识]
+
+---
+
+## JSON输出格式
+
 请严格按照以下JSON格式输出:
 
 {{
@@ -487,9 +611,11 @@ PROMPT2_IS_CONTENT_KNOWLEDGE = """# 内容知识判定系统 v2.0
   "issues": [
     "问题1(如无则为空数组)"
   ],
-  "summary": "总结陈述(2-3句话)"
+  "summary": "总结陈述(5-6句话)"
 }}
 
+---
+
 ## 判断原则
 1. **图片主导原则**: 图片占70%权重,是核心判断依据;标题和正文为辅助
 2. **创作领域限定**: 必须属于创作/制作/设计领域,其他领域知识不属于内容知识
@@ -649,7 +775,7 @@ PROMPT4_CATEGORY_MATCH = """# Prompt 2: 多模态内容品类匹配评估
 ---
 
 ## 任务说明
-你将收到一个**原始搜索需求**和一条**多模态帖子**(包含图片、标题、正文),请**仅评估品类维度**的匹配度,输出0-100分的量化得分。
+你将收到一个**原始搜索需求**和一条**多模态帖子**(包含图片、标题、正文),请**仅评估品类维度**的匹配度,输出0-100分的量化得分。忽略目的和动机维度因素,只评估品类维度。
 
 ---
 
@@ -666,18 +792,20 @@ PROMPT4_CATEGORY_MATCH = """# Prompt 2: 多模态内容品类匹配评估
 ---
 
 ## 评估维度:品类匹配
-
-### 核心评估逻辑
-
+###品类定义:
 **品类 = 核心主体(名词)+ 限定词**
 
 - **核心主体**:具体的内容对象(风光摄影、旅行攻略、美食推荐)
-- **限定词**:
+- **限定词**:限定词不包含具体的目的和动作
   - 地域:川西、成都、日本
   - 时间:秋季、夏天、2024
   - 类型:免费、高清、入门级
   - 风格:小清新、复古、简约
 
+### 核心评估逻辑
+
+
+
 ---
 
 ## 评估流程
@@ -1066,11 +1194,10 @@ async def evaluate_category_match(
 
         return CategoryEvaluation(
             category_score=category_data.get("品类匹配得分", 0),
-            original_category=category_data.get("原始需求品类", {}),
+            original_category_analysis=category_data.get("原始需求品类分析", {}),
             actual_category=category_data.get("帖子实际品类", {}),
             match_level=category_data.get("匹配度等级", ""),
-            subject_match=category_data.get("主体匹配情况", ""),
-            qualifier_match=category_data.get("限定词匹配情况", ""),
+            category_match_analysis=category_data.get("品类匹配分析", {}),
             core_basis=category_data.get("核心依据", "")
         )
     except Exception as e:
@@ -1092,7 +1219,7 @@ def calculate_final_score(purpose_score: int, category_score: int) -> tuple[floa
         - match_level: 匹配等级字符串
     """
     # 计算综合得分: 目的性70% + 品类30%
-    final = round(purpose_score * 0.7 + category_score * 0.3, 2)
+    final = round(purpose_score * 0.5 + category_score * 0.5, 2)
 
     # 判定匹配等级
     if final >= 85:
@@ -1254,11 +1381,10 @@ def apply_evaluation_v3_to_post(
         post.category_score = category_eval.category_score
         post.category_evaluation = {
             "category_score": category_eval.category_score,
-            "original_category": category_eval.original_category,
+            "original_category_analysis": category_eval.original_category_analysis,
             "actual_category": category_eval.actual_category,
             "match_level": category_eval.match_level,
-            "subject_match": category_eval.subject_match,
-            "qualifier_match": category_eval.qualifier_match,
+            "category_match_analysis": category_eval.category_match_analysis,
             "core_basis": category_eval.core_basis
         }
 

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 22463 - 0
visualization_1117_1017.html


Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov