工作区和数据集管理#

本指南解释了如何通过 Python 客户端在 Argilla 中设置和管理工作区。

注意

用于工作区管理的 Workspace 类已包含在 Argilla 1.11.0 版本中,并且在以前的版本中不可用。但是您将能够在较旧的 Argilla 实例(从 1.6.0 开始)中使用它,唯一的区别是主要角色现在是 owner 而不是 admin

工作区模型#

工作区是 Argilla 实例内的“空间”,授权用户可以在其中协作。它可以通过 UI 和 Python 客户端访问。

如果您是所有者,则可以在创建新用户时或使用 Workspace 类中的 add_user 方法将用户分配到工作区。

owner 拥有对工作区的完全访问权限,并且可以将其他用户分配到该工作区,而 admin 角色只能访问工作区但不能将其他用户分配到该工作区,annotator 角色只能访问他们所属工作区中分配给他们的数据集,并通过 UI 对其进行注释。

Argilla 工作区由以下属性组成

属性

类型

描述

id

UUID

工作区的唯一标识符。

name

str

工作区的名称。

inserted_at

datetime

工作区创建的日期和时间。

updated_at

datetime

工作区上次更新的日期和时间。

Python 客户端#

Python 客户端中的 Workspace 类为具有 owner 角色的开发者提供了在 Argilla 中创建和管理工作区以及属于它们的用户的能力。查看 工作区 - Python 参考 以查看 Workspace 类的属性、参数和方法。

Argilla 中的 Workspace 类由以下属性组成

属性

类型

描述

id

UUID

工作区的唯一标识符。

name

str

工作区的名称。

users

List[User]

属于工作区的用户列表。

inserted_at

datetime

工作区创建的日期和时间。

updated_at

datetime

工作区上次更新的日期和时间。

如何使用工作区#

创建一个新的 Workspace#

您可以使用 workspaces 组中的 create 命令在 Argilla 中创建一个新的工作区。

argilla workspaces create my-new-workspace

现在在 Argilla 中创建工作区就像调用 Workspace 类中的 create 方法一样容易。它将返回一个 Workspace 实例。

import argilla as rg

rg.init(api_url="<ARGILLA_API_URL>", api_key="<ARGILLA_API_KEY>")

workspace = rg.Workspace.create("new-workspace")

列出 Workspaces#

具有 owner 角色的用户可以列出 Argilla 中的所有现有工作区,而具有 admin 角色或 annotator 角色的用户只能列出他们所属的工作区。

您可以使用 workspaces 组中的 list 命令列出 Argilla 中的工作区。

argilla workspaces list

您还可以使用 list 方法列出 Argilla 中的工作区。它将返回 Workspace 实例的列表。

import argilla as rg

rg.init(api_url="<ARGILLA_API_URL>", api_key="<ARGILLA_API_KEY>")

workspaces = rg.Workspace.list()
for workspace in workspaces:
   ...

按名称获取 Workspace#

Python 客户端#

您可以使用 from_name 方法按名称获取工作区。它必须预先存在于 Argilla 中,否则将引发异常。

import argilla as rg

rg.init(api_url="<ARGILLA_API_URL>", api_key="<ARGILLA_API_KEY>")

workspace = rg.Workspace.from_name("new-workspace")

按 id 获取 Workspace#

Python 客户端#

此外,如果您知道工作区的 id,则可以使用 from_id 方法直接获取它。它必须预先存在于 Argilla 中,否则将引发异常。

注意

工作区的 id 是 UUID,它在您创建新工作区时自动生成。

import argilla as rg

rg.init(api_url="<ARGILLA_API_URL>", api_key="<ARGILLA_API_KEY>")

workspace = rg.Workspace.from_id("00000000-0000-0000-0000-000000000000")

Workspace 添加、列出或删除用户#

您可以使用 workspaces 组中的 add-userdelete-user 命令从工作区添加或删除用户。

argilla workspaces --name my-workspace add-user bob
argilla workspaces --name my-workspace delete-user bob

此外,您可以使用 users 组中的 list 命令和 --workspace 选项列出工作区的用户。

argilla users list --workspace my-workspace

从 Argilla 中的工作区实例化 Workspace 实例后,您可以从中添加、列出或删除用户。但请注意,只有 owner 具有执行这些操作的足够权限。

import argilla as rg

rg.init(api_url="<ARGILLA_API_URL>", api_key="<ARGILLA_API_KEY>")

workspace = rg.Workspace.from_name("new-workspace")

users = workspace.users
for user in users:
   ...
workspace.add_user(user.id)
workspace.delete_user(user.id)

删除 Workspace#

Python 客户端#

您还可以使用 Python 客户端删除工作区。

注意

要删除工作区,不能有数据集链接到它。如果工作区包含任何数据集,则删除将失败。

注意

您可以参考下面的 删除数据集 部分,在删除工作区之前清除工作区。

import argilla as rg

rg.init(api_url="<ARGILLA_API_URL>", api_key="<ARGILLA_API_KEY>")

workspace = rg.Workspace.from_name("new-workspace")

workspace.delete()

数据集模型#

数据集是 Argilla 实例“记录”的容器。它提供了存储和管理数据的所有要求。您可以在 此处 找到有关数据集的概念和结构的更多信息。

在 Argilla UI 上,您可以看到您创建的所有数据集。数据集在工作区内创建,并且只能通过此特定工作区访问。根据项目,当您授予 owneradminannotator 访问权限时,您还可以指定哪些角色可以访问每个数据集。

数据集的属性如下

属性

类型

描述

id

UUID

数据集的唯一标识符。

name

str

数据集的名称。

url

str

数据集的唯一 URL。

fields

list

数据集包含的 TextFields。

questions

list

数据集包含的问题。

guidelines

str

数据集具有的指南。

如何使用数据集#

您可以参考 CLI 页面 以获取有关如何在 CLI 上使用数据集的指导。

注意

要在 Python 上使用数据集,您需要使用 rg.init() 登录到 Argilla。

列出 Datasets#

Python 客户端#

您可以使用 list() 方法列出特定工作区中的数据集,如下所示。要指定工作区,您可以使用 workspace 参数。否则,它将列出所有工作区中的所有数据集。

import argilla as rg

rg.init(api_url="<ARGILLA_API_URL>", api_key="<ARGILLA_API_KEY>")

dataset_list = rg.FeedbackDataset.list(workspace="admin")

for dataset in dataset_list:
   print(dataset.name)

由于 list() 方法创建 RemoteFeedbackDataset 对象的列表,您可以直接处理列表中的每个项目。

删除 Datasets#

Python 客户端#

您可以通过从服务器拉取数据集 from_argilla() 并调用 delete() 方法来删除任何数据集。

rg.FeedbackDataset.from_argilla("my_dataset", workspace="admin").delete()