ovos HiveMind skill
Project description
HiveMind Fallback Skill
When in doubt, ask a smarter OVOS install, powered by HiveMind Solver.
NOTE: this repository eventually will be converted from a FallbackSkill into a pipeline plugin
Configuration
Under skill settings (~/.config/mycroft/skills/skill-ovos-fallback-hivemind.openvoiceos/settings.json
) you can tweak some parameters for HiveMind Skill.
{
"name": "HiveMind",
"confirmation": true,
"slave_mode": false,
"allow_selfsigned": false
}
Option | Value | Description |
---|---|---|
name |
HiveMind |
Name to give to the HiveMind AI assistant |
confirmation |
true |
Spoken confirmation will be triggered when a request is sent HiveMind |
allow_selfsigned |
false |
Allow self signed SSL certificates ofr HiveMind connection |
slave_mode |
false |
In slave mode HiveMind master receives all bus messages for passive monitoring and will be able to inject arbitrary messages into the OVOS bus |
HiveMind Setup
You need to register the skill in the HiveMind server
$ hivemind-core add-client
Credentials added to database!
Node ID: 2
Friendly Name: HiveMind-Node-2
Access Key: 5a9e580a2773a262cbb23fe9759881ff
Password: 9b247ca66c7cd2b6388ad49ca504279d
Encryption Key: 4185240103de0770
WARNING: Encryption Key is deprecated, only use if your client does not support password
And then set the identity file in the satellite device (where the skill will run)
$ hivemind-client set-identity --key 5a9e580a2773a262cbb23fe9759881ff --password 9b247ca66c7cd2b6388ad49ca504279d --host 0.0.0.0 --port 5678 --siteid test
identity saved: /home/miro/.config/hivemind/_identity.json
check the created identity file if you like
$ cat ~/.config/hivemind/_identity.json
{
"password": "9b247ca66c7cd2b6388ad49ca504279d",
"access_key": "5a9e580a2773a262cbb23fe9759881ff",
"site_id": "test",
"default_port": 5678,
"default_master": "ws://0.0.0.0"
}
test that a connection is possible using the identity file
$ hivemind-client test-identity
(...)
2024-05-20 21:22:28.003 - OVOS - hivemind_bus_client.client:__init__:112 - INFO - Session ID: 34d75c93-4e65-4ea9-b5f4-87169dcfda01
(...)
== Identity successfully connected to HiveMind!
If this step fails, your skill will also fail to connect to HiveMind
Slave Mode
If running in slave mode skills can emit serialized HiveMessages via the regular bus
This can be used to inject bus messages from one device messagebus to the other
from slave -> master: (might be rejected by hivemind-core
)
- emit
"hive.send.upstream"
with message.data,{"msg_type": "bus", "payload": message.serialize()}
from master -> slave:
- emit
"hive.send.downstream"
with message.data,{"msg_type": "bus", "payload": message.serialize()}
see the hivemind protocol for more details on valid payloads
NOTE: this is what enables nested hives, a device can be both a master (by running
hivemind-core
) and a slave (by running this repo)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file ovos_skill_fallback_hivemind-0.0.0a9-py3-none-any.whl
.
File metadata
- Download URL: ovos_skill_fallback_hivemind-0.0.0a9-py3-none-any.whl
- Upload date:
- Size: 21.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c3957e8b436c05b095187426da032f4397cde00b133d3764d2f0093433733c7 |
|
MD5 | 94e0d2616a68b14ca35b12a6636dc125 |
|
BLAKE2b-256 | 3337c1852d761d188273c6634dcbc5eb11b86c8539b9f13c5f6a1fb3fe739b59 |