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

如何在嵌套方法/函数中通过WandB API获取项目全部标签

获取WandB项目所有标签的可复用函数实现

下面是可以直接嵌入到你的代码(包括嵌套方法/函数)中的封装实现,做了鲁棒性优化:

import tqdm
import wandb

def get_all_project_tags(entity: str, project: str, api=None) -> list[str]:
    # 初始化WandB API(若未传入已实例化的api)
    if api is None:
        api = wandb.Api()
    
    # 基础参数校验
    if not entity or not project:
        raise ValueError("entity和project参数不能为空")
    
    all_tags = []
    try:
        # 获取指定项目下的所有运行实例
        runs = api.runs(path=f"{entity}/{project}")
        # 遍历运行实例收集标签,跳过无标签项
        for run in tqdm.tqdm(runs, desc="收集运行标签"):
            if run.tags:
                all_tags.extend(run.tags)
        # 去重后返回有序列表(sorted可选,用于保持结果一致性)
        return sorted(list(set(all_tags)))
    except Exception as e:
        print(f"获取标签失败: {str(e)}")
        return []

嵌套调用示例

你可以在任意业务函数或方法中直接调用这个工具函数:

def your_business_workflow():
    # 业务逻辑代码...
    target_entity = "your-entity-id"
    target_project = "your-project-name"
    
    # 嵌套调用标签获取函数
    project_tags = get_all_project_tags(target_entity, target_project)
    
    if project_tags:
        print("项目关联标签:", project_tags)
    else:
        print("未获取到有效标签或执行出错")

# 执行主业务流程
your_business_workflow()

核心优化说明

  • 支持传入已初始化的api实例,避免重复初始化开销
  • 加入参数校验和异常捕获,避免因非法输入或API调用失败导致程序崩溃
  • 跳过无标签的运行实例,减少无效数据处理
  • 返回有序去重列表,结果更整洁易读
  • 保留tqdm进度提示,方便跟踪大项目的处理进度

内容的提问来源于stack exchange,提问作者羅文斌

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 06:08:14