jihuaqiang 1 месяц назад
Родитель
Сommit
fc73386744

+ 2 - 2
examples/content_finder/content_finder.md

@@ -45,7 +45,7 @@ $system$
 
 
 | 技能 | 用途 |
 | 技能 | 用途 |
 |------|------|
 |------|------|
-| `demand_analysis` | 特征归类、策略选择(case出发/特征出发)、热点补充规则、需求阶段 JSON 结构 |
+| `demand_analysis` | 前期信息收集(高赞选题点/热点话题/特征词/特征词说明),最后统一决策搜索策略(case出发/特征出发)与搜索词、输出需求阶段 JSON 结构 |
 | `content_finding_strategy` | 搜索词来源、分页与条数、`metadata` 读取、作者扩展 |
 | `content_finding_strategy` | 搜索词来源、分页与条数、`metadata` 读取、作者扩展 |
 | `content_filtering_strategy` | 分阶段筛选、`batch_fetch_portraits` 批量画像与 `try_account_fallback` |
 | `content_filtering_strategy` | 分阶段筛选、`batch_fetch_portraits` 批量画像与 `try_account_fallback` |
 | `output_schema` | `output.json` 完整结构与易错字段 |
 | `output_schema` | `output.json` 完整结构与易错字段 |
@@ -54,7 +54,7 @@ $system$
 
 
 **红线(与技能一致,不可突破)**:
 **红线(与技能一致,不可突破)**:
 需求分析阶段的高赞case是需要调用工具找的,不是传入的;**获取高赞case的主要目的**是参考其选题点进行搜索词的完善和搜索结果的筛选。严格按照`demand_analysis`的步骤进行,输出 JSON 结构。
 需求分析阶段的高赞case是需要调用工具找的,不是传入的;**获取高赞case的主要目的**是参考其选题点进行搜索词的完善和搜索结果的筛选。严格按照`demand_analysis`的步骤进行,输出 JSON 结构。
-寻找阶段**仅**使用需求阶段产出的「高赞 case 出发搜索词」与「特征出发搜索词」,不得自行扩展其他搜索词,且每个搜索词最多 2 页,总次数用尽即停止;
+寻找阶段**仅**使用需求阶段产出的「高赞 case 出发搜索词」与「特征出发搜索词」,禁止自行扩展其他搜索词,且每个搜索词最多 2 页,总次数用尽即停止;
 筛选阶段须为每条内容填写 `decision_basis`,画像以批量接口及 `metadata.results` 为准(搜索类条目对账号兜底见技能)。
 筛选阶段须为每条内容填写 `decision_basis`,画像以批量接口及 `metadata.results` 为准(搜索类条目对账号兜底见技能)。
 
 
 ## 流程自检
 ## 流程自检

+ 3 - 3
examples/content_finder/core.py

@@ -95,9 +95,9 @@ from tools import (
 logger = logging.getLogger(__name__)
 logger = logging.getLogger(__name__)
 
 
 # 默认搜索词
 # 默认搜索词
-DEFAULT_QUERY = "养生干预手段"
-DEFAULT_SUGGESTION = "用户想学习具体的养生保健方法"
-DEFAULT_DEMAND_ID = 22655
+DEFAULT_QUERY = "探讨议题,核心领袖"
+DEFAULT_SUGGESTION = "用户想了解核心领袖人物相关的议题和评价"
+DEFAULT_DEMAND_ID = 1
 
 
 
 
 def extract_assistant_text(message: Message) -> str:
 def extract_assistant_text(message: Message) -> str:

+ 23 - 14
examples/content_finder/skills/demand_analysis.md

@@ -20,27 +20,36 @@ description: 需求分析
 - **下层特征**:具体、可直接拿去搜的实质词。  
 - **下层特征**:具体、可直接拿去搜的实质词。  
 - 约束:`上层特征 ∪ 下层特征 = 实质特征`;**形式特征不参与**本步拆分。形式特征只进入后续筛选规则(如结构、可分享性)。
 - 约束:`上层特征 ∪ 下层特征 = 实质特征`;**形式特征不参与**本步拆分。形式特征只进入后续筛选规则(如结构、可分享性)。
 
 
-## 二、策略选择
+## 二、信息收集(先收集,不做最终策略结论)
 
 
-- **`下层特征` 非空**:必须走 **case 出发**,调用**查询高赞选题点**工具。  
-- **`上层特征` 或 `下层特征` 非空**:必须走 **特征出发**(用特征原词填搜索词,不改写)。  
-- 两者都非空:**两条都做**,结果合并去重。  
-- 信息严重不足时:承认不确定,不要编造高赞选题点。
+- 本阶段前半程仅做信息收集,不提前下“只走 case 出发 / 只走特征出发”的最终结论。  
+- 必收集的信息:高赞选题点、热点话题、特征词、特征词说明。  
+- 信息严重不足时:承认不确定,不要编造高赞选题点或热点结论。
 
 
-### A、case 出发(`下层特征` 非空时必选,**高赞case不能最终输出,而是用做寻找和筛选的信息参考**)
+### A、高赞 case 信息收集(`下层特征` 非空时必做,**高赞case不能最终输出,而是用做寻找和筛选的信息参考**)
 
 
 1. 将 `下层特征` 拼成逗号分隔字符串 `features`,调用 **查询高赞选题点**工具`get_goodcase_topic_point`。  
 1. 将 `下层特征` 拼成逗号分隔字符串 `features`,调用 **查询高赞选题点**工具`get_goodcase_topic_point`。  
-2. 仅用返回的 `metadata.videos` 中的数据填充:`高赞case_灵感点`、`高赞case_目的点`、`高赞case_关键点`;用其中**灵感点**填 `高赞case出发搜索词`(不得与原始 `features` 字符串相同);用目的点/关键点分别充实 `筛选方案.目的点对齐规则`、`筛选方案.关键点打分说明`。
+2. 仅用返回的 `metadata.videos` 中的数据填充:`高赞case_灵感点`、`高赞case_目的点`、`高赞case_关键点`;并用目的点/关键点分别充实 `筛选方案.目的点对齐规则`、`筛选方案.关键点打分说明`。  
+3. 此处只做收集,不在本小节内提前定稿 `高赞case出发搜索词`。
 
 
-### B、特征出发
+### B、特征信息收集
 
 
-用全部 `上层特征` 与 `下层特征` 原样填入 `特征出发搜索词`,不得改写
+收集可用于特征出发的候选词:全部 `上层特征` 与 `下层特征` 原词(不改写),并结合`特征词说明`沉淀补充约束(用于后续统一决策)
 
 
-## 三、热门话题补充
+## 三、热门话题收集
 
 
-调用 `hot_topic_search` 时传入**实质特征**的分词列表(如「打工人的一天」→ `["打工人","一天"]`)。仅采用与**任一分词包含匹配**的热点话题来调整或补充搜索词;禁止凭大类联想乱扩词。此步骤调整或补充的搜索词**优先级最高**
+调用 `hot_topic_search` 时传入**实质特征**的分词列表(如「打工人的一天」→ `["打工人","一天"]`)。仅保留与**任一分词包含匹配**的热点话题作为候选;禁止凭大类联想乱扩词
 
 
-## 四、需求分析阶段输出模板
+## 四、统一决策(最后一步)
+
+- 在完成上述收集后,再统一决策是否采用 `case出发`、`特征出发`,或两者并行。  
+- 决策输入必须覆盖:`高赞case_灵感点`、热点候选词、`上层特征/下层特征`、`特征词说明`。  
+- 产出并落盘:  
+  - `高赞case出发搜索词`:来自高赞 case 灵感点及其可检索表达,不得与原始 `features` 字符串完全相同。  
+  - `特征出发搜索词`:以 `上层特征`、`下层特征` 原词为主,必要时依据`特征词说明`做少量具象化补充。  
+- 若两路都可行,默认两路并行并在下一阶段合并去重。
+
+## 五、需求分析阶段输出模板
 
 
 ```json
 ```json
 {
 {
@@ -67,9 +76,9 @@ description: 需求分析
 }
 }
 ```
 ```
 
 
-## 、本阶段结束条件
+## 、本阶段结束条件
 
 
 - 是否完成实质/形式与上/下层两层标注。  
 - 是否完成实质/形式与上/下层两层标注。  
 - `下层特征` 非空时是否已调 `get_goodcase_topic_point`。  
 - `下层特征` 非空时是否已调 `get_goodcase_topic_point`。  
-- case 出发与特征出发是否按规则覆盖
+- 是否已在最后一步完成统一决策,并给出搜索策略与搜索词
 - `特征归类`,`起点策略`,`筛选方案`均已填充
 - `特征归类`,`起点策略`,`筛选方案`均已填充