Skip to content

SDK 组织与项目选择

一个 ServiceClient 创建或恢复一个 Session。Session 属于一个组织和一个项目,可以包含多个 Training Run;Checkpoint 属于具体的 Training Run。

范围发现和按名称选择需要 nex-weaver 1.10 或更高版本。如果该 SDK 版本尚未发布到你的 package index,请通过受支持的 server API 使用规范 organization_idproject_id,或安装经过明确审查的 SDK commit。

发现可用范围

CLI 会输出完整 ID,便于安全复制:

bash
weaver organizations list
weaver projects list --organization research
weaver scope resolve --organization research --project alignment

脚本中可以使用 --format json

bash
weaver organizations list --format json
weaver projects list --organization-id <organization-uuid> --format json

这些发现命令不会创建 Session。organizations list 只返回显式成员关系;projects list 只返回通过组织管理员、直接授权或团队授权可访问的项目。

按名称、slug 或 ID 选择

python
from weaver import ServiceClient

with ServiceClient(organization="research", project="alignment") as client:
    training_client = client.create_model(base_model="Qwen/Qwen3-30B-A3B-Base:262144")

organization 接受 UUID、全局唯一 slug 或全局唯一展示名称;project 接受 UUID、组织内 slug 或展示名称,项目名称在组织内唯一。解析顺序为 UUID、slug、展示名称。旧数据仍有歧义时,server 返回结构化的 409 ambiguous_scope_reference,SDK 不会猜测。

也可以直接使用规范 ID:

python
with ServiceClient(
    organization_id="<organization-uuid>",
    project_id="<project-uuid>",
) as client:
    ...

异步客户端接受相同参数。

环境变量与优先级

bash
export WEAVER_ORGANIZATION_ID=<organization-uuid>
export WEAVER_PROJECT_ID=<project-uuid>

# 或使用可读引用:
export WEAVER_ORGANIZATION=research
export WEAVER_PROJECT=alignment

优先级为:

  1. constructor 显式规范 ID;
  2. 规范 ID 环境变量;
  3. constructor 显式名称/slug;
  4. 名称/slug 环境变量;
  5. server fallback。

规范 ID 会跳过名称解析。CLI 中不要同时提供冲突的 ID 和名称选项。

空值与部分范围 fallback

缺失、空字符串或仅空白的范围值不会写入 Session 请求,SDK 不会把它们序列化成无效 ID。server 会使用稳定 fallback:

  • 组织和项目都未提供:调用者第一个可访问组织及其默认项目;
  • 只提供组织:该组织的默认项目;
  • 只提供项目:server 解析并校验项目所属组织。

fallback 不会选择不可访问的组织或项目。选中的项目必须属于选中的组织,且不能已归档。为避免自动化依赖成员列表顺序,建议使用规范 ID 或全局唯一 slug,不要依赖默认值。

Quota 方法使用组织范围

额度余额和申请属于当前用户在组织内的账户。SDK 1.10+ 默认使用 client 的组织,也允许方法级显式传入 organization ID。项目选择影响计费视图和用量归属,但额度审批会把余额 grant 给该用户在组织内的账户。

准入和错误行为见用量、计费与额度

Weaver API 中文文档