你的需求是否与问题相关?请描述。
处理每个消息的用户偏好设置允许多个用户向同一个核心示例发出请求。它还减少了配置查询的次数(从磁盘、数据库等),每次请求只查询一次。另外,向配置文件中添加更多参数(姓名、单位偏好、时区、位置、电子邮件等)也会很有用。
描述你希望实现的解决方案
这已经在Neon中实现了。用户配置文件结构已经定义,对于每个核心的"默认"功能,配置文件被添加到语音输入和文本输入中。这确实在Mycroft中添加了"用户"和"核心"设置之间的区别,但目前Mycroft中还没有这个区别。
描述你考虑过的替代方案
用户设置可以从需要的地方的某个配置中读取,而不是从消息中读取,但这会增加在处理意图的同时处理设置更改的复杂性。
附加上下文
用户设置已经在Neon中存在一段时间,用于处理来自klat.com和其他多用户应用程序的请求。
有一个Neon技能可以通过意图来更改用户设置 https://github.com/NeonGeckoCom/skill-user_settings
2条答案
按热度按时间q3qa4bjr1#
是的,这是一个有趣的问题。我想知道我们是否需要考虑几个不同的层面。
在一个层面上,我们是否应该以一种方式架构Mycroft,使得单个示例可以在云中被数千个客户端使用。显然需要隔离任何和所有的个人信息。数据只是被一些通用功能处理。
在另一个层面上,想象一个家庭中有多个人在用"Mycroft助手"。是否有一个单一的"Mycroft助手"正在帮助两个人或更多的人。或者他们是在和自己的助手交谈?简正在和"Mycroft助手A"交谈,而乔正在和"Mycroft助手B"交谈?从某种程度上说,让每个人都有自己的个性化助手似乎更好。但从另一种Angular 来看,你们都在和同一个实体交谈。它应该更像房子里的管家,同时保持每个用户的隐私吗?
无论如何,在未来这也可以实现联合行动 - 例如“本周某晚为我们预订晚餐”。要么是一个共同的助手可以访问两个日历并找到合适的时间。或者这两个独立的助手根据已经定义的隐私规则/特权相互沟通。我倾向于后者,因为它看起来是一个更简单的结构,但还没有真正考虑过如何实现它。
当然,我喜欢用户配置文件的概念。我认为我们需要对未来可能存在的内容进行更深入的思考。一个配置文件是否足够?不想把自己逼到角落里。
编辑:未来的用户配置文件中可能存在哪些数据?你期望或希望从中获得什么样的个性化?
kcugc4gi2#
在一个层面上 - 我们是否应该以一种方式架构Mycroft,使得单个示例可以在云中被数千个客户端使用。显然需要隔离任何和所有个人信息。数据只是被一些通用功能处理。
我认为这是一个更大的问题;谁控制助手和消息总线连接?所有的消息总线连接都安全吗,总线是隔离的,这样没有人可以监听流量,还是消息需要独立加密?我认为这超出了本次讨论的范围,因为总线上的其他流量应该是安全/隔离的,添加用户信息不会改变这一点。
在另一个层面上,想象一下一个家庭中有多个人在用同一个"Mycroft助手"。是否有一个单一的"Mycroft助手"正在帮助两个人或更多人。
与此相关的一个概念是我正在考虑的是,如果我们有一个音频插件,它具有扬声器识别功能或者使用摄像头进行面部识别。如果Mycroft知道谁在说话,它会提供更多的/更好的个性化选项(例如Mycroft记住你的名字)。
无论如何,在未来这也可以实现联合行动
我没有想到这个,但这是一个很酷的概念。我也倾向于后者,因为它也更具扩展性。对于一个组织来说,他们可以将其连接到交换服务器或其他现有日历系统来寻找会议时间。
配置文件是否足够?不想把自己逼进死胡同。
我同意;现在我将配置文件与
neon-utils
软件包关联,因此需要新添加参数的技能需要该软件包的更新版本。我认为数据可以以任何方式存储,以便可以读回到dict
,但对于一个独立的设备来说,配置文件是最合理的。对于共享设备的多个用户,我认为我们可以为每个用户保存一个配置文件,或者将其与远程数据库(如新的Selene服务?)关联起来。未来用户配置文件中可能存在哪些数据?你期望或希望从中获得什么样的个性化?
我使用的所有内容都在这个配置模板:https://github.com/NeonGeckoCom/neon-skill-utils/blob/dev/neon_utils/default_configurations/default_user_conf.yml中。以下是我们发现的有用的数据,可以为每个用户单独保存
我将配置分成了逻辑部分:
user
包含用户的个人信息(姓名、电子邮件、电话等)speech
处理STT/TTS语言、语音和播放偏好units
包含日期/时间格式和单位设置location
包含位置和时区设置(可以直接从mycroft.conf
设置中翻译)response_mode
是一组用于控制对话的Neon功能(跳过“稍等片刻”对话框,强制在.dialog文件中使用第一个选项等)privacy
启用/禁用本地存储音频和转录(类似于save_utterances
中的标志)brands
本质上是一个剩余的部分,应该移动到我们品牌的技能设置中