Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

File details

Details for the file ovos_skill_fallback_hivemind-0.0.0a9-py3-none-any.whl.

File metadata

File hashes

Hashes for ovos_skill_fallback_hivemind-0.0.0a9-py3-none-any.whl
Algorithm Hash digest
SHA256 2c3957e8b436c05b095187426da032f4397cde00b133d3764d2f0093433733c7
MD5 94e0d2616a68b14ca35b12a6636dc125
BLAKE2b-256 3337c1852d761d188273c6634dcbc5eb11b86c8539b9f13c5f6a1fb3fe739b59

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page