第二部分:客户端与数据站点访问#
在我们新的cancer-research-centre数据站点设置好新创建的数据集(和资产)后,Owen的下一步将是配置访问凭证和策略,以便让Rachel能够以数据科学家的身份在该数据站点上进行操作。
你将学习到:#
在第二部分结束时,你将学会:
如何重新连接到本地开发服务器,恢复持久性;
如何修改Datasite的默认管理员凭据;
如何以数据科学家的身份向数据站点注册新用户。
2.1. 重新连接到数据站点#
在第一部分结束时,我们将"乳腺癌数据集"上传到数据站点后,调用了data_site.land()函数来关闭服务器。
要重新连接,我们现在可以再次调用syft.orchestra.launch函数,为name参数使用相同的值,即name="cancer-research-centre"。
不过这次,我们将显式传递reset=False(即该参数的默认值),以确保持久性得以恢复。换句话说,当我们重新连接到数据站点时,预期会看到"乳腺癌数据集"已经上传到该站点。
import syft as sy
data_site = sy.orchestra.launch(name="cancer-research-centre", reset=False)
# logging in as root client with default credentials
client = data_site.login(email="[email protected]", password="changethis")
让我们快速确认一下Breast Cancer Dataset是否存在,并且可以通过现有的datasets访问:
client.datasets
这确实是!🤓
使用本地开发服务器实现持久化
这里重要的要点是:(a) 为本地开发服务器使用相同的名称可以确保在多个实例间的连续性和持久性;(b) 仅在第一次或需要重新初始化整个服务器时使用reset=True参数。
2.2. 更新默认管理员凭据#
When we connected to the Datasite for the first time in part 1, we emphasised that Owen was initially using the credentials provided by default in PySyft.
As part of Owen’s operations to setup the cancer-research-centre Datasite, it is now the time for them to set their own credentials, and to update their profile information.
http://127.0.0.1:51403/getting-started/part1-dataset-and-assets.html
PySyft的client实例允许通过account属性引用当前登录用户。更多关于更新账户的信息请参见此处。
要更新邮箱和密码,我们可以分别使用函数 client.account.set_email([new_email]) 和 client.account.set_password([new_password])。
要更新个人资料信息,我们可以使用 client.account.update([name, institution, website, role])。
OWEN_EMAIL = "[email protected]"
OWEN_PASSWD = "cancer_research_syft_admin"
client.account.set_email(OWEN_EMAIL)
# we can bypass the confirmation by using the confirm=False parameter
client.account.set_password(OWEN_PASSWD, confirm=False)
现在让我们修改Owen的个人资料信息:
client.account.update(name="Owen, the Data Owner",
institution="Cancer Research Centre")
现在让我们立即通过实例化一个新的(根)客户端并访问注册用户信息来测试我们的新凭据:
client = data_site.login(email=OWEN_EMAIL, password=OWEN_PASSWD)
client.users
正如预期的那样,新的凭证生效了,Owen个人资料中的所有信息都已相应更新!🤓
从现在开始,Owen下次再次连接到Datasite时,他们将使用这组新的凭据。
2.3. 注册Rachel的账户#
欧文需要解决的最后一个问题是允许瑞秋连接到数据站点!换句话说,欧文需要在数据站点上添加一个新用户,并注册为数据科学家角色!有多种方法可以实现,我们在下面展示其中一种。
我们可以使用client.users.create()函数,该函数需要以下参数:
name(类型: str): 必填email(类型: str): 必填password(类型: str): 必填项password_verify(type_str): 必填项institution(类型: str): 可选website(类型: str): 可选
让我们使用这个函数为Rachel创建一个新账户:
rachel_account_info = client.users.create(
email="[email protected]",
name="Dr. Rachel Science",
password="syftrocks",
password_verify="syftrocks",
institution="Data Science Institute",
website="https://datascience_institute.research.data"
)
该函数返回一个UserView实例,包含关于新创建账户的只读信息。
print(f"New User: {rachel_account_info.name} ({rachel_account_info.email}) registered as {rachel_account_info.role}")
默认情况下,Rachel的新账户已默认注册到Datasite,角色为数据科学家。
要验证账户是否已成功添加到数据站点,我们可以再次查看可用用户列表:
client.users
恭喜完成第二部分 🎉#
恭喜完成教程的第二部分!👏
现在,我们的新cancer-research-centre数据站点已完全配置完成!我们托管了一个新的syft.Dataset,包含"乳腺癌生物标志物"数据的特征和目标资产,并且我们还创建了访问凭证,允许Rachel访问该节点。
作为数据所有者,Owen的工作暂时告一段落!
在接下来的第三部分中,我们将从外部数据科学家的视角探讨工作流程,这些科学家希望在我们Datasite上托管的数据集上运行他们的研究。