Skip to content

Commit

Permalink
Merge pull request #92 from OpenVoiceOS/feat/extra_skills
Browse files Browse the repository at this point in the history
[skills] Add extra skills
  • Loading branch information
goldyfruit authored May 30, 2024
2 parents 9a00767 + acef890 commit 8c13dd8
Show file tree
Hide file tree
Showing 18 changed files with 84 additions and 42 deletions.
9 changes: 9 additions & 0 deletions ansible/roles/ovos_installer/tasks/docker/composer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@
"file": "docker-compose.skills.yml",
"state": "{{ 'false' if (ansible_memtotal_mb < 2048 and ovos_installer_profile != 'satellite' or not ovos_installer_feature_skills | bool) else 'true' }}",
}
- {
"file": "docker-compose.skills-extra.yml",
"state": "{{ 'false' if (ansible_memtotal_mb < 2048 and ovos_installer_profile != 'satellite' or not ovos_installer_feature_extra_skills | bool) else 'true' }}",
}
- {
"file": "docker-compose.hivemind.yml",
"state": "{{ 'true' if ovos_installer_profile == 'listener' else 'false' }}",
Expand Down Expand Up @@ -119,6 +123,11 @@
"name": "ovos",
"file": "docker-compose.skills.yml",
}
- {
"src": "ovos-docker",
"name": "ovos",
"file": "docker-compose.skills-extra.yml",
}
- {
"src": "ovos-docker",
"name": "ovos",
Expand Down
11 changes: 10 additions & 1 deletion ansible/roles/ovos_installer/tasks/virtualenv/venv.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@
"dest": "/tmp/skills-requirements.txt",
"state": "{{ true if (ovos_installer_feature_skills | bool and ovos_installer_profile != 'satellite') else false }}",
}
- {
"file": "virtualenv/extra-skills-requirements.txt",
"dest": "/tmp/extra-skills-requirements.txt",
"state": "{{ true if (ovos_installer_feature_extra_skills | bool and ovos_installer_profile != 'satellite') else false }}",
}
- {
"file": "virtualenv/listener-requirements.txt",
"dest": "/tmp/listener-requirements.txt",
Expand Down Expand Up @@ -81,6 +86,10 @@
"file": "/tmp/skills-requirements.txt",
"state": "{{ true if (ovos_installer_feature_skills | bool and ovos_installer_profile != 'satellite') else false }}",
}
- {
"file": "/tmp/extra-skills-requirements.txt",
"state": "{{ true if (ovos_installer_feature_extra_skills | bool and ovos_installer_profile != 'satellite') else false }}",
}
- {
"file": "/tmp/listener-requirements.txt",
"state": "{{ true if ovos_installer_profile == 'listener' else false }}",
Expand All @@ -93,7 +102,6 @@
"file": "/tmp/server-requirements.txt",
"state": "{{ true if ovos_installer_profile == 'server' else false }}",
}

when: item.state | bool
tags:
- skip_ansible_lint
Expand Down Expand Up @@ -146,6 +154,7 @@
- /tmp/core-requirements.txt
- /tmp/gui-requirements.txt
- /tmp/skills-requirements.txt
- /tmp/extra-skills-requirements.txt
- /tmp/listener-requirements.txt
- /tmp/satellite-requirements.txt
- /tmp/server-requirements.txt
Expand Down
1 change: 1 addition & 0 deletions ansible/roles/ovos_installer/templates/telemetry.json.j2
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"profile": "{{ ovos_installer_profile }}",
"raspberry_pi": "{{ 'n/a' if ovos_installer_raspberrypi == 'N/A' else ovos_installer_raspberrypi }}",
"skills_feature": {{ ovos_installer_feature_skills }},
"extra_skills_feature": {{ ovos_installer_feature_extra_skills }},
"gui_feature": {{ ovos_installer_feature_gui }},
"cpu_capable": {{ ovos_installer_cpu_is_capable }},
"tuning_enabled": {{ true if ovos_installer_tuning == 'yes' else false }},
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# No PyPi release
git+https://github.com/OpenVoiceOS/skill-ovos-icanhazdadjokes.git
git+https://github.com/OpenVoiceOS/skill-ovos-fallback-chatgpt.git
git+https://github.com/OpenVoiceOS/skill-ovos-parrot.git
git+https://github.com/OpenVoiceOS/skill-ovos-randomness.git
git+https://github.com/OpenVoiceOS/skill-ovos-tunein.git
git+https://github.com/OpenVoiceOS/skill-ovos-wolfie.git

# Non-OVOS libraries
{% if ovos_installer_profile != "server" %}
git+https://github.com/OpenVoiceOS/ovos-skill-easter-eggs.git
{% endif %}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[Unit]
Documentation=https://openvoiceos.github.io/ovos-docker/about/what-is-it/
Description=Open Voice OS
Description=Open Voice OS - Meta service
After=network-online.target
{% if ovos_installer_profile != "server" %}
Requires={{ _detect_sound_server.stdout }}.socket
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,7 @@ git+https://github.com/OpenVoiceOS/ovos-skill-ggwave.git
{% if ovos_installer_profile != "server" %}
git+https://github.com/OpenVoiceOS/skill-ovos-boot-finished.git
{% endif %}
git+https://github.com/OpenVoiceOS/skill-ovos-icanhazdadjokes.git
git+https://github.com/OpenVoiceOS/skill-ovos-ddg.git
git+https://github.com/OpenVoiceOS/skill-ovos-naptime.git
git+https://github.com/OpenVoiceOS/skill-ovos-weather.git
git+https://github.com/OpenVoiceOS/skill-ovos-wikipedia.git

# Non-OVOS libraries
{% if ovos_installer_profile != "server" %}
skill-easter-eggs
{% endif %}
46 changes: 24 additions & 22 deletions docs/telemetry.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,28 @@ The data collection only happens during the installation process, nothing else w

**The installer will ask you if you want to share or not the data.**

Below is a list of the collected data *(please have a look to the [Ansible tempalte](https://github.com/OpenVoiceOS/ovos-installer/blob/main/ansible/roles/ovos_installer/templates/telemetry.json.j2) used ti publish the data)*.
Below is a list of the collected data _(please have a look to the [Ansible tempalte](https://github.com/OpenVoiceOS/ovos-installer/blob/main/ansible/roles/ovos_installer/templates/telemetry.json.j2) used ti publish the data)_.

| Data | Description |
| ---------------- | ----------- |
| `architecture` | CPU architecture where OVOS was installed |
| `channel` | `stable` or `development` version of OVOS |
| `container` | OVOS installed into containers |
| `country` | Country where OVOS has been installed |
| `cpu_capable` | Is the CPU supports AVX or SIMD instructions |
| `display_server` | Is X or Wayland are used as display server |
| `gui_feature` | GUI enabled during the installation |
| `installed_at` | Date when OVOS has been installed |
| `os_kernel` | Kernel version of the host where OVOS is running |
| `os_name` | OS name of the host where OVOS is running |
| `os_type` | OS type of the host where OVOS is running |
| `os_version` | OS version of the host where OVOS is running |
| `profile` | Which profile has been used during the OVOS installation |
| `python_version` | What Python version was running on the host |
| `raspberry_pi` | Does OVOS has been installed on Raspberry Pi |
| `skills_feature` | Default OVOS's skills enabled during the installation |
| `sound_server` | What PulseAudio or PipeWire used |
| `tuning_enabled` | Did the Rasperry Pi tuning feature wsas used |
| `venv` | OVOS installed into a Python virtual environment |
| Data | Description |
| ---------------------- | -------------------------------------------------------- |
| `architecture` | CPU architecture where OVOS was installed |
| `channel` | `stable` or `development` version of OVOS |
| `container` | OVOS installed into containers |
| `country` | Country where OVOS has been installed |
| `cpu_capable` | Is the CPU supports AVX or SIMD instructions |
| `display_server` | Is X or Wayland are used as display server |
| `extra_skills_feature` | Extra OVOS's skills enabled during the installation |
| `gui_feature` | GUI enabled during the installation |
| `hardware` | Is the device a Mark 1, Mark II or DevKit |
| `installed_at` | Date when OVOS has been installed |
| `os_kernel` | Kernel version of the host where OVOS is running |
| `os_name` | OS name of the host where OVOS is running |
| `os_type` | OS type of the host where OVOS is running |
| `os_version` | OS version of the host where OVOS is running |
| `profile` | Which profile has been used during the OVOS installation |
| `python_version` | What Python version was running on the host |
| `raspberry_pi` | Does OVOS has been installed on Raspberry Pi |
| `skills_feature` | Default OVOS's skills enabled during the installation |
| `sound_server` | What PulseAudio or PipeWire used |
| `tuning_enabled` | Did the Rasperry Pi tuning feature wsas used |
| `venv` | OVOS installed into a Python virtual environment |
1 change: 1 addition & 0 deletions setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ unbuffer ansible-playbook -i 127.0.0.1, ansible/site.yml \
-e "ovos_installer_channel=${CHANNEL}" \
-e "ovos_installer_feature_gui=${FEATURE_GUI}" \
-e "ovos_installer_feature_skills=${FEATURE_SKILLS}" \
-e "ovos_installer_feature_extra_skills=${FEATURE_EXTRA_SKILLS}" \
-e "ovos_installer_tuning=${TUNING}" \
-e "ovos_installer_listener_host=${HIVEMIND_HOST}" \
-e "ovos_installer_listener_port=${HIVEMIND_PORT}" \
Expand Down
9 changes: 7 additions & 2 deletions tui/features.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@ source "tui/locales/$LOCALE/features.sh"

export FEATURE_GUI="false"
export FEATURE_SKILLS="false"
export FEATURE_EXTRA_SKILLS="false"

features=("skills" "$SKILL_DESCRIPTION" ON)
features+=("extra-skills" "$EXTRA_SKILL_DESCRIPTION" OFF)
if [[ "$RASPBERRYPI_MODEL" != *"Raspberry Pi 3"* ]] && [[ "$KERNEL" != *"microsoft"* ]] && [ "$PROFILE" != "server" ]; then
features+=("gui" "$GUI_DESCRIPTION" OFF)
fi
Expand All @@ -19,9 +21,9 @@ exit_status=$?
if [ "$exit_status" -ne 0 ]; then
source tui/profiles.sh
if [[ "$PROFILE" == "satellite" ]]; then
source tui/satellite/main.sh
source tui/satellite/main.sh
else
source tui/features.sh
source tui/features.sh
fi
fi

Expand All @@ -33,5 +35,8 @@ for FEATURE in $OVOS_FEATURES; do
"skills")
export FEATURE_SKILLS="true"
;;
"extra-skills")
export FEATURE_EXTRA_SKILLS="true"
;;
esac
done
3 changes: 2 additions & 1 deletion tui/locales/de-de/features.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Bitte wählen Sie die zu aktivierenden Funktionen aus:
"
TITLE="Open Voice OS Installation - Funktionen"
SKILL_DESCRIPTION="Lade eine Auswahl an OVOS skills"
EXTRA_SKILL_DESCRIPTION="Laden Sie zusätzliche OVOS-Fähigkeiten"
GUI_DESCRIPTION="Mit grafischer Benutzeroberfläche"

export CONTENT TITLE SKILL_DESCRIPTION GUI_DESCRIPTION
export CONTENT TITLE SKILL_DESCRIPTION EXTRA_SKILL_DESCRIPTION GUI_DESCRIPTION
3 changes: 2 additions & 1 deletion tui/locales/en-us/features.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Please choose the features to enable:
"
TITLE="Open Voice OS Installation - Features"
SKILL_DESCRIPTION="Load default OVOS skills"
EXTRA_SKILL_DESCRIPTION="Load extra OVOS skills"
GUI_DESCRIPTION="Enable graphical user interface"

export CONTENT TITLE SKILL_DESCRIPTION GUI_DESCRIPTION
export CONTENT TITLE SKILL_DESCRIPTION EXTRA_SKILL_DESCRIPTION GUI_DESCRIPTION
3 changes: 2 additions & 1 deletion tui/locales/es-es/features.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Seleccione las funciones que desea activar:
"
TITLE="Open Voice OS Installation - Características"
SKILL_DESCRIPTION="Descargar una selección de competencias (skills) OVOS"
EXTRA_SKILL_DESCRIPTION="Cargar habilidades OVOS adicionales"
GUI_DESCRIPTION="Con interfaz gráfica de usuario"

export CONTENT TITLE SKILL_DESCRIPTION GUI_DESCRIPTION
export CONTENT TITLE SKILL_DESCRIPTION EXTRA_SKILL_DESCRIPTION GUI_DESCRIPTION
3 changes: 2 additions & 1 deletion tui/locales/fr-fr/features.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Veuillez sélectionner les fonctionnalités à activer:
"
TITLE="Open Voice OS Installation - Fonctionnalités"
SKILL_DESCRIPTION="Chargement des compétences par défaut d'OVOS"
EXTRA_SKILL_DESCRIPTION="Chargement des compétences OVOS supplémentaires"
GUI_DESCRIPTION="Activation de l'interface graphique"

export CONTENT TITLE SKILL_DESCRIPTION GUI_DESCRIPTION
export CONTENT TITLE SKILL_DESCRIPTION EXTRA_SKILL_DESCRIPTION GUI_DESCRIPTION
3 changes: 2 additions & 1 deletion tui/locales/hi-in/features.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ GUI KDE प्लाज्मा के शीर्ष पर चलने व
"
TITLE="Open Voice OS Installation - विशेषताएँ"
SKILL_DESCRIPTION="डिफ़ॉल्ट OVOS कौशल लोड करें"
EXTRA_SKILL_DESCRIPTION="अतिरिक्त OVOS कौशल लोड करें"
GUI_DESCRIPTION="ग्राफिकल यूजर इंटरफेस (GUI) इस्तमाल करें"

export CONTENT TITLE SKILL_DESCRIPTION GUI_DESCRIPTION
export CONTENT TITLE SKILL_DESCRIPTION EXTRA_SKILL_DESCRIPTION GUI_DESCRIPTION
3 changes: 2 additions & 1 deletion tui/locales/it-it/features.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Selezionare le funzioni da attivare:
"
TITLE="Open Voice OS Installation - Features"
SKILL_DESCRIPTION="Scarica una selezione di competenze (skills) OVOS"
EXTRA_SKILL_DESCRIPTION="Caricare le competenze extra OVOS"
GUI_DESCRIPTION="Con interfaccia utente grafica"

export CONTENT TITLE SKILL_DESCRIPTION GUI_DESCRIPTION
export CONTENT TITLE SKILL_DESCRIPTION EXTRA_SKILL_DESCRIPTION GUI_DESCRIPTION
3 changes: 2 additions & 1 deletion tui/locales/nl-nl/features.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Kies welke functies je wil activeren (meerdere opties mogelijk):
"
TITLE="Open Voice OS Installatie - Kenmerken"
SKILL_DESCRIPTION="Standaard OVOS skills"
EXTRA_SKILL_DESCRIPTION="Laad extra OVOS-vaardigheden"
GUI_DESCRIPTION="Grafische gebruikersinterface"

export CONTENT TITLE SKILL_DESCRIPTION GUI_DESCRIPTION
export CONTENT TITLE SKILL_DESCRIPTION EXTRA_SKILL_DESCRIPTION GUI_DESCRIPTION
3 changes: 2 additions & 1 deletion tui/locales/pt-pt/features.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Seleccione as funções a ativar:
"
TITLE="Open Voice OS Installation - Características"
SKILL_DESCRIPTION="Descarregar uma seleção de competências (skills) OVOS"
EXTRA_SKILL_DESCRIPTION="Carregar competências OVOS adicionais"
GUI_DESCRIPTION="Com interface gráfica do utilizador"

export CONTENT TITLE SKILL_DESCRIPTION GUI_DESCRIPTION
export CONTENT TITLE SKILL_DESCRIPTION EXTRA_SKILL_DESCRIPTION GUI_DESCRIPTION
4 changes: 2 additions & 2 deletions utils/constants.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ export PULSE_SOCKET_WSL2=/mnt/wslg/PulseServer
export REBOOT_FILE_PATH=/tmp/ovos.reboot
declare -ra SCENARIO_ALLOWED_OPTIONS=(features channel share_telemetry profile method uninstall rapsberry_pi_tuning hivemind)
export SCENARIO_ALLOWED_OPTIONS
declare -ra SCENARIO_ALLOWED_FEATURES=(skills gui)
declare -ra SCENARIO_ALLOWED_FEATURES=(skills extra-skills gui)
export SCENARIO_ALLOWED_FEATURES
declare -ra SCENARIO_ALLOWED_HIVEMIND_OPTIONS=(host port key password)
export SCENARIO_ALLOWED_HIVEMIND_OPTIONS
Expand All @@ -51,7 +51,7 @@ export SCENARIO_PATH=""
declare -rA SUPPORTED_DEVICES=(
["atmega328p"]="1a" #https://www.microchip.com/en-us/product/atmega328p
["attiny1614"]="04" #https://www.microchip.com/en-us/product/attiny1614
["tas5806"]="2f" #https://www.ti.com/product/TAS5806MD
["tas5806"]="2f" #https://www.ti.com/product/TAS5806MD
)
export SUPPORTED_DEVICES
export TUI_WINDOW_HEIGHT="35"
Expand Down

0 comments on commit 8c13dd8

Please sign in to comment.