You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Forsta Beacon Decipher配额选择:分组互斥选项需求及代码问题

Forsta Beacon Decipher 分组互斥配额选择解决方案

需求说明:在配额选择中,需从10个符合资格的Concept里选取2个,但只能选择前5个Concept(Concept1-Concept5)或后5个Concept(Concept6-Concept10),禁止跨组同时选中。

原代码仅能阻止特定两个Concept同时选中,无法实现分组互斥的要求,以下是修改后的解决方案:

# 定义两组Concept的路径标识
GROUP1_RANGE = range(1, 6)
GROUP2_RANGE = range(6, 11)
QUOTA_SHEET = 'Concept Quota'
CONCEPT_PATH_PREFIX = '/Concept Quota/Concept'

def quota_hook(sheet, table, cells):
    if sheet == QUOTA_SHEET:
        group1_selected = []
        group2_selected = []
        
        # 遍历选中项,按组分类
        for cell in cells:
            concept_path = cell[2]
            # 提取Concept编号
            try:
                concept_num = int(concept_path.split('Concept')[-1])
            except ValueError:
                continue
            
            if concept_num in GROUP1_RANGE:
                group1_selected.append(cell)
            elif concept_num in GROUP2_RANGE:
                group2_selected.append(cell)
        
        # 处理跨组选中的情况
        if group1_selected and group2_selected:
            # 保留数量多的组;若数量相等(各1个),默认保留前5个组,可按需调整
            if len(group1_selected) >= len(group2_selected):
                return group1_selected[:2]
            else:
                return group2_selected[:2]
        else:
            # 仅单组选中,返回最多2个选项
            return (group1_selected + group2_selected)[:2]
    return cells

代码逻辑说明:

  • 通过提取Concept编号,将选中项自动划分为前5组和后5组
  • 检测到跨组选中时,自动保留数量较多的一组;若两组各选1个,默认保留前5组的选项(可修改返回逻辑切换为保留后5组)
  • 最终确保返回的选中项不超过2个,且全部来自同一组

内容的提问来源于stack exchange,提问作者Marc Russo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 17:07:40