跳到内容

用户管理

本指南概述了用户角色和凭据,解释了如何在 Argilla 中设置和管理用户。

Argilla 中的用户是被授权的人员,根据其角色,可以使用 Python SDK 并访问正在运行的 Argilla 实例中的 UI。我们根据用户的角色、权限和需求,区分三种类型的用户:owneradminannotator

所有者 管理员 标注者
数量 无限制 无限制 无限制
创建和删除工作空间
将用户分配到工作空间
创建、配置、更新和删除数据集 仅在分配的工作空间内
创建、更新和删除用户
使用 Argilla UI 提供反馈

owner 指的是创建 Argilla 实例的根用户。在 Argilla 中使用工作空间对于高效组织任务非常有利。因此,所有者拥有对所有工作空间及其功能的完全访问权限

  • 工作空间管理:可以创建、读取和删除工作空间。
  • 用户管理:可以创建新用户,将其分配到工作空间并删除。还可以列出它们并搜索特定的用户。
  • 数据集管理:可以创建、配置、检索、更新和删除数据集。
  • 标注:可以在 Argilla UI 中标注数据集。
  • 反馈:可以使用 Argilla UI 提供反馈。

admin 用户只能访问已分配给它的工作空间,并且不能将其他用户分配给它。管理员用户拥有以下权限

  • 数据集管理:只能在分配的工作空间上创建、配置、检索、更新和删除数据集。
  • 标注:可以通过 Argilla UI 在分配的工作空间中标注数据集。
  • 反馈:可以使用 Argilla UI 提供反馈。

annotator 用户仅限于访问工作空间内分配给它的数据集。它具有两个特定的权限

  • 标注:可以在 Argilla UI 中标注分配的数据集。
  • 反馈:可以使用 Argilla UI 提供反馈。
问题:谁可以管理用户?

只有具有 owner 角色的用户才能管理(创建、检索、删除)其他用户。

初始用户和凭据

根据您的 Argilla 部署,具有 owner 角色的初始用户将有所不同。

  • 如果您在 Hugging Face Hub 上部署,则初始用户将对应于 Space 所有者(您的个人帐户)。API 密钥会自动生成,可以从 UI 的“设置”部分复制。
  • 如果您使用 Docker 部署,则环境变量的默认值为:USERNAME: argilla, PASSWORD: 12345678, API_KEY: argilla.apikey。

对于新用户,用户名和密码在创建过程中设置。API 密钥可以从 UI 的“设置”部分复制。

主类

rg.User(
    username="username",
    first_name="first_name",
    last_name="last_name",
    role="owner",
    password="password",
    client=client
)

查看用户 - Python 参考,详细了解 User 类的属性、参数和方法。

获取当前用户

为了确保您使用正确的凭据来管理用户,您可以使用 Argilla 类的 me 属性获取 Argilla 中的当前用户。

import argilla as rg

client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")

current_user = client.me

创建用户

要在 Argilla 中创建新用户,您可以在 User 类中定义它,然后调用 create 方法。此方法继承自 Resource 基类,并且无需修改即可操作。

import argilla as rg

client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")

user_to_create = rg.User(
    username="my_username",
    password="12345678",
)

created_user = user_to_create.create()

访问属性

通过直接在 User 对象上调用属性来访问用户的属性。例如,user.iduser.username

列出用户

您可以通过访问 Argilla 类上的 users 属性并迭代它们来列出 Argilla 中的所有现有用户。您还可以使用 len(client.users) 来获取用户数量。

import argilla as rg

client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")

users = client.users

for user in users:
    print(user)

Notebook

当使用 notebook 时,执行 client.users 将显示一个表格,其中包含 usernameidrole 和上次更新时间 updated_at

检索用户

您可以通过访问 Argilla 类上的 users 属性并将 usernameid 作为参数传递,从 Argilla 中检索现有用户。如果用户不存在,将引发警告消息并返回 None

import argilla as rg

client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")

retrieved_user = client.users("my_username")
import argilla as rg

client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")

retrieved_user = client.users(id="<uuid-or-uuid-string>")

检查用户是否存在

您可以检查用户是否存在。如果未找到用户,client.users 方法将返回 None

import argilla as rg

client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")

user = client.users("my_username")

if user is not None:
    pass

列出工作空间中的用户

您可以通过访问 Workspace 类上的 users 属性并迭代它们来列出工作空间中的所有用户。您还可以使用 len(workspace.users) 来获取每个工作空间的用户数量。

有关如何管理工作空间的更多信息,请查看此操作指南

import argilla as rg

client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")

workspace = client.workspaces('my_workspace')

for user in workspace.users:
    print(user)

将用户添加到工作空间

您可以通过调用 User 类上的 add_to_workspace 方法,将现有用户添加到 Argilla 中的工作空间。

有关如何管理工作空间的更多信息,请查看此操作指南

import argilla as rg

client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")

user = client.users('my_username')
workspace = client.workspaces('my_workspace')

added_user = user.add_to_workspace(workspace)

从工作空间中移除用户

您可以通过调用 User 类上的 remove_from_workspace 方法,从 Argilla 中的工作空间中移除现有用户。

有关如何管理工作空间的更多信息,请查看此操作指南

import argilla as rg

client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")

user = client.users('my_username')
workspace = client.workspaces('my_workspace')

removed_user = user.remove_from_workspace(workspace)

更新用户

您可以通过调用 User 类上的 update 方法,更新 Argilla 中的现有用户。您可以更新 usernamefirst_namelast_namerole 属性。

import argilla as rg

client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")

user_to_update = client.users('my_username')

user_to_update.username = 'new_username'
user_to_update.first_name = 'new_first_name'
user_to_update.last_name = 'new_last_name'
user_to_update.role = 'admin'

updated_user = user_to_update.update()

删除用户

您可以通过调用 User 类上的 delete 方法,从 Argilla 中删除现有用户。

import argilla as rg

client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")

user_to_delete = client.users('my_username')

deleted_user = user_to_delete.delete()