Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

User profiles #378

Open
aaronchantrill opened this issue Apr 8, 2023 · 2 comments
Open

User profiles #378

aaronchantrill opened this issue Apr 8, 2023 · 2 comments

Comments

@aaronchantrill
Copy link
Contributor

aaronchantrill commented Apr 8, 2023

Detailed Description

Instead of having a single user in the profile, I would like to have multiple user profiles for different users.

Context

I have been experimenting with speaker identification systems. Once the speaker has been identified, Naomi can address the user by name. I realize that some skills make more sense on an individual basis. For example, when using the "Check Email" skill, there should be an email address associated with the individual user. Naomi will check the email of the user who asks. This could also be helpful when using the "Respond to Email" skill, where Naomi's responses could be tailored to the individual based on the email address it was received from.

For example, I would like to have an app that makes grocery lists for me, so that all I have to do is tell Naomi to add things to my list. Then when I get to the store, I can text Naomi and get my list which might be different the lists of other members of the household.

Possible Implementation

In profile.yml:

users:
    aaron:
        firstname: aaron
        lastname: chantrill
        primary_email: [email protected]
        respond_to:
        - [email protected]
        - [email protected]
    eartha:
        firstname: eartha
        lastname: kitt
        primary_email: [email protected]

I'm still thinking about it.

In addition, I would like to be able to assign Naomi its own email address, where "Respond to Email" would receive requests and send responses.

@Akul2010
Copy link

Akul2010 commented Apr 9, 2023

I think a better idea would be to keep all the user data in their own profiles, like aaron.yml.

@aaronchantrill
Copy link
Contributor Author

aaronchantrill commented Apr 15, 2023

@Akul2010 That could make sense.

We have been concerned about how to protect personal information like email address, phone number, physical address, etc. from plugins who might try to collect that information from users for advertising purposes and of course protect information like passwords. This is part of the reason why the Naomi Plugin Exchange requires a commit string, so that we have a chance to review each submission and make sure the author isn't doing something sneaky like stealing information and uploading it to themselves. Only the reviewed version of the plugin would be downloaded by users of the Naomi Plugin Exchange until the author resubmits with a new version. This is also why some of the information in the profile.yml file is encrypted. First, only core Naomi functions should have access to encrypted data, and second to prevent someone from accidentally leaking information by posting their profile to a help forum or something.

We have talked about creating different profile files for different plugins and only giving each plugin access to information it collected itself.

We would need a way to identify user information yaml files. Maybe by putting user information into a users.yml file? or different yml files in a user folder? The profile name itself is meaningless to Naomi, so they could be called "user1.yml", "user2.yml". I'm just using the first name to make it easier to identify a particular user's configuration file. Do you have any suggestions as to structure/safety?

I have a related pull request out there now - #367 Speaker Recognition #367 - which I think I'm going to re-introduce without the VOSK stuff (which is just taking a long time) and with user profiles (plus an email address for Naomi to use with the "Respond to Email" notification plugin or other cases where it is sending or receiving emails itself rather than on someone's behalf).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants