用户管理¶
本指南概述了用户角色和凭据,解释了如何在 Argilla 中设置和管理用户。
Argilla 中的用户是被授权的人员,根据其角色,可以使用 Python SDK 并访问正在运行的 Argilla 实例中的 UI。我们根据用户的角色、权限和需求,区分三种类型的用户:owner
、admin
和 annotator
。
所有者 | 管理员 | 标注者 | |
---|---|---|---|
数量 | 无限制 | 无限制 | 无限制 |
创建和删除工作空间 | 是 | 否 | 否 |
将用户分配到工作空间 | 是 | 否 | 否 |
创建、配置、更新和删除数据集 | 是 | 仅在分配的工作空间内 | 否 |
创建、更新和删除用户 | 是 | 否 | 否 |
使用 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.id
或 user.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
将显示一个表格,其中包含 username
、id
、role
和上次更新时间 updated_at
。
检索用户¶
您可以通过访问 Argilla
类上的 users
属性并将 username
或 id
作为参数传递,从 Argilla 中检索现有用户。如果用户不存在,将引发警告消息并返回 None
。
检查用户是否存在¶
您可以检查用户是否存在。如果未找到用户,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 中的现有用户。您可以更新 username
、first_name
、last_name
和 role
属性。
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 中删除现有用户。