Browse Source

增加要求

xueyiming 1 week ago
parent
commit
e5a5e62f78

+ 1 - 1
agents/demand_belong_category_agent/agent.py

@@ -27,7 +27,7 @@ def create_demand_belong_category_agent(
         name="demand_belong_category_agent",
         name="demand_belong_category_agent",
         model=model,
         model=model,
         system_prompt=DEMAND_BELONG_CATEGORY_AGENT_SYSTEM_PROMPT,
         system_prompt=DEMAND_BELONG_CATEGORY_AGENT_SYSTEM_PROMPT,
-        max_iterations=30,
+        max_iterations=50,
     )
     )
 
 
     # 本 Agent 专属工具
     # 本 Agent 专属工具

+ 3 - 10
agents/demand_belong_category_agent/prompt/system_prompt.md

@@ -4,24 +4,17 @@
 - 领域背景: 面向视频内容词语
 - 领域背景: 面向视频内容词语
 
 
 ## 角色与任务
 ## 角色与任务
-你是一个"词语 → 分类树节点"挂载专家。给定一个词语或短语,你需要借助工具在已有分类树中逐层查看候选类目,最终把该词语挂载到树上最合适的一个或多个节点上。
+你是一个"词语 → 分类树节点"挂载专家。给定一批词语或短语,你需要借助工具在已有分类树中逐层查看候选类目,最终把每一个词语挂载到树上最合适的一个或多个节点上。
 
 
 你必须严格基于分类树中真实存在的节点做判断,禁止编造或猜测树中不存在的类目名称、ID 或路径。
 你必须严格基于分类树中真实存在的节点做判断,禁止编造或猜测树中不存在的类目名称、ID 或路径。
-必须在25轮内完成插入操作
 
 
 ## 可用工具
 ## 可用工具
 - `query_global_tree_category(id, level)`: 获取指定节点的指定层级的子节点(id 为空时返回整颗树, level为空的时候返回指定节点到叶子节点的内容),每个子节点包含 id、名称、是否叶子节点。
 - `query_global_tree_category(id, level)`: 获取指定节点的指定层级的子节点(id 为空时返回整颗树, level为空的时候返回指定节点到叶子节点的内容),每个子节点包含 id、名称、是否叶子节点。
 - `batch_insert_demand_belong_category(items)`: 批量插入节点到目标表
 - `batch_insert_demand_belong_category(items)`: 批量插入节点到目标表
 
 
 ## 工作流程
 ## 工作流程
-1. 调用 `query_global_tree_category` 获取顶级类目,结合词语语义判断最相关的 1~2 个分支。
-2. 下钻进入相关性最高的节点,再次调用 `query_global_tree_category` 查看子类目,继续判断。
-3. 重复上述过程,直到到达叶子节点,或当前层级所有子节点相关度都达不到"有把握"的程度——此时停在上一层已确认的节点,不要为了到达叶子而勉强选择。
-4. 若某个分支下钻后发现子节点都不合适,回退到上一层,重新评估其他兄弟节点,而不是硬选一个。
-5. 若顶级类目层面就找不到相关分支,直接判定为无法归类,不要勉强挂载。
-6. 若词语同时与两个及以上互斥分支都高度相关(一词多义、跨领域词等),记录全部高置信候选,标记为存在歧义。
-7. 每次下钻前用一两句话写明判断依据,再决定是否调用工具;推理要言之有据,避免空泛。
-8. 单个词语的下钻步数建议不超过 8 次工具调用;仍无法收敛时,停在当前最有把握的节点并说明原因,不要无限下钻。
+1. 调用 `query_global_tree_category` 获取全部类目,结合词语语义判断最相关的 1~2 个分支。
+2. 直接判断应该属于哪个分类,然后把词语归属到该分类下,使用`batch_insert_demand_belong_category(items)`工具插入到目标表。
 
 
 ## 分类判断原则
 ## 分类判断原则
 - **确定性优先于深度**:能到叶子节点最好,但深入一层后判断不明确时,宁可停在上一层泛化节点。
 - **确定性优先于深度**:能到叶子节点最好,但深入一层后判断不明确时,宁可停在上一层泛化节点。

+ 1 - 1
supply_infra/scheduler/jobs/sync_multi_demand_pool_odps_to_mysql.py

@@ -43,7 +43,7 @@ from supply_infra.scheduler.jobs.sync_multi_demand_videos import sync_multi_dema
 
 
 logger = logging.getLogger(__name__)
 logger = logging.getLogger(__name__)
 
 
-_WORD_BATCH_SIZE = 100
+_WORD_BATCH_SIZE = 50
 _STATS_UPSERT_BATCH = 200
 _STATS_UPSERT_BATCH = 200
 _REAL_METRIC_LIMIT = 1000
 _REAL_METRIC_LIMIT = 1000
 _REAL_METRIC_LOOKBACK_DAYS = 7
 _REAL_METRIC_LOOKBACK_DAYS = 7