From 47a6c4143771c909e8d604fecefb5a79c82a14c0 Mon Sep 17 00:00:00 2001 From: "gitlocalize-app[bot]" <55277160+gitlocalize-app[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 08:19:32 +0000 Subject: [PATCH 1/8] adjusting German translation from joergz2 (#59) Co-authored-by: Dante1975X --- translations/de-de/intents.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/translations/de-de/intents.json b/translations/de-de/intents.json index d170cf9..a59943b 100644 --- a/translations/de-de/intents.json +++ b/translations/de-de/intents.json @@ -1,13 +1,13 @@ { - "search_wolfie.intent": [ - "fragen Sie den Wolf \u00fcber {query}", - "Suche den Wolf nach {query}", - "was sagt Wolfram \u00fcber {query}", - "was sagt der Wolf \u00fcber {query}", - "Suche Wolf f\u00fcr {query}", - "was sagt Wolf alpha \u00fcber {query}", - "Suche wolfram alpha nach {query}", - "fragen Sie den Wolf {query}", - "Fragen Sie den Wolf alpha \u00fcber {query}" - ] -} \ No newline at end of file + "search_wolfie.intent": [ + "befragen den Wolf über {query}\nfrage den Wolf nach {query}", + "Suche den Wolf nach {query}", + "was sagt Wolfram über {query}", + "was sagt der Wolf über {query}", + "Suche Wolf für {query}", + "was sagt Wolfram alpha über {query}", + "Suche wolfram alpha nach {query}", + "frage den Wolf {query}", + "Frage Wolfram Alpha über {query}" + ] +} From 249de0ed92a130619a09c097ef57e3bf5656fd2c Mon Sep 17 00:00:00 2001 From: JarbasAl Date: Thu, 12 Dec 2024 08:19:46 +0000 Subject: [PATCH 2/8] Update translations --- locale/de-de/search_wolfie.intent | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/locale/de-de/search_wolfie.intent b/locale/de-de/search_wolfie.intent index 62cfbed..b05607f 100644 --- a/locale/de-de/search_wolfie.intent +++ b/locale/de-de/search_wolfie.intent @@ -1,9 +1,10 @@ -Fragen Sie den Wolf alpha über {query} +Frage Wolfram Alpha über {query} Suche Wolf für {query} Suche den Wolf nach {query} Suche wolfram alpha nach {query} -fragen Sie den Wolf {query} -fragen Sie den Wolf über {query} -was sagt Wolf alpha über {query} +befragen den Wolf über {query} +frage den Wolf nach {query} +frage den Wolf {query} +was sagt Wolfram alpha über {query} was sagt Wolfram über {query} was sagt der Wolf über {query} \ No newline at end of file From 5af8dc110a54ed19e57a623f9b69b9cc6df92796 Mon Sep 17 00:00:00 2001 From: JarbasAI <33701864+JarbasAl@users.noreply.github.com> Date: Sat, 4 Jan 2025 20:13:39 +0000 Subject: [PATCH 3/8] refactor: new common query decorators (#60) * refactor: new common query decorators companion to https://github.com/OpenVoiceOS/OVOS-workshop/pull/315 * Update requirements.txt * fix imports * drop deprecated dependencies * drop deprecated dependencies --- __init__.py | 100 +++++++++++++++++++++++++++++--------- {res => gui/all}/logo.png | Bin requirements.txt | 4 +- 3 files changed, 80 insertions(+), 24 deletions(-) rename {res => gui/all}/logo.png (100%) diff --git a/__init__.py b/__init__.py index dfd88fc..92cb1f7 100644 --- a/__init__.py +++ b/__init__.py @@ -13,30 +13,87 @@ import tempfile from os.path import join, isfile -from typing import Optional +from typing import Optional, Tuple import requests -from ovos_backend_client.api import WolframAlphaApi as _WA from ovos_bus_client import Message from ovos_bus_client.session import SessionManager from ovos_config import Configuration from ovos_plugin_manager.templates.solvers import QuestionSolver from ovos_utils import classproperty from ovos_utils.process_utils import RuntimeRequirements -from ovos_workshop.decorators import intent_handler -from ovos_workshop.skills.common_query_skill import CommonQuerySkill, CQSMatchLevel +from ovos_workshop.decorators import intent_handler, common_query +from ovos_workshop.skills.ovos import OVOSSkill -class WolframAlphaApi(_WA): +class WolframAlphaApi: + def __init__(self, key: str): + self.key = key or "Y7R353-9HQAAL8KKA" + + @staticmethod + def _get_lat_lon(**kwargs): + lat = kwargs.get("latitude") or kwargs.get("lat") + lon = kwargs.get("longitude") or kwargs.get("lon") or kwargs.get("lng") + if not lat or not lon: + cfg = Configuration().get("location", {}).get("coordinate", {}) + lat = cfg.get("latitude") + lon = cfg.get("longitude") + return lat, lon + + def spoken(self, query, units="metric", lat_lon=None, optional_params=None): + optional_params = optional_params or {} + if not lat_lon: + lat_lon = self._get_lat_lon(**optional_params) + params = {'i': query, + "geolocation": "{},{}".format(*lat_lon), + 'units': units, + "appid": self.key, + **optional_params} + url = 'https://api.wolframalpha.com/v1/spoken' + return requests.get(url, params=params).text + + def simple(self, query, units="metric", lat_lon=None, optional_params=None): + optional_params = optional_params or {} + if not lat_lon: + lat_lon = self._get_lat_lon(**optional_params) + params = {'i': query, + "geolocation": "{},{}".format(*lat_lon), + 'units': units, + "appid": self.key, + **optional_params} + url = 'https://api.wolframalpha.com/v1/simple' + return requests.get(url, params=params).text + + def full_results(self, query, units="metric", lat_lon=None, optional_params=None): + """Wrapper for the WolframAlpha Full Results v2 API. + https://products.wolframalpha.com/api/documentation/ + Pods of interest + - Input interpretation - Wolfram's determination of what is being asked about. + - Name - primary name of + """ + optional_params = optional_params or {} + if not lat_lon: + lat_lon = self._get_lat_lon(**optional_params) + params = {'input': query, + "units": units, + "mode": "Default", + "format": "image,plaintext", + "geolocation": "{},{}".format(*lat_lon), + "output": "json", + "appid": self.key, + **optional_params} + url = 'https://api.wolframalpha.com/v2/query' + data = requests.get(url, params=params) + return data.json() + def get_image(self, query: str, units: Optional[str] = None): """ query assured to be in self.default_lang return path/url to a single image to acompany spoken_answer """ - # TODO - extend backend-client method for picture units = units or Configuration().get("system_unit", "metric") url = 'http://api.wolframalpha.com/v1/simple' - params = {"appid": self.credentials["wolfram"], + params = {"appid": self.key, "i": query, # "background": "F5F5F5", "layout": "labelbar", @@ -59,8 +116,6 @@ def __init__(self, config=None): config["lang"] = "en" # only supports english super().__init__(config=config) self.api = WolframAlphaApi(key=self.config.get("appid") or "Y7R353-9HQAAL8KKA") - # TODO - debug, key doesnt seem to be passed along to base class ??? - self.api.backend.credentials = self.api.credentials @staticmethod def make_speakable(summary: str): @@ -216,7 +271,7 @@ def get_expanded_answer(self, query, return [s for s in steps if s] -class WolframAlphaSkill(CommonQuerySkill): +class WolframAlphaSkill(OVOSSkill): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.session_results = {} # session_id: {} @@ -255,7 +310,16 @@ def handle_search(self, message: Message): self.speak_dialog("no_answer") # common query integration - def CQS_match_query_phrase(self, phrase: str): + def cq_callback(self, utterance: str, answer: str, lang: str): + """ If selected show gui """ + # generate image for the query after skill was selected for speed + image = self.wolfie.visual_answer(utterance, lang=lang, units=self.system_unit) + self.gui["wolfram_image"] = image or "logo.png" + # scrollable full result page + self.gui.show_page("wolf", override_idle=45) + + @common_query(callback=cq_callback) + def match_common_query(self, phrase: str, lang: str) -> Tuple[str, float]: self.log.debug("WolframAlpha query: " + phrase) if self.wolfie is None: self.log.error("WolframAlphaSkill not initialized, no response") @@ -264,24 +328,16 @@ def CQS_match_query_phrase(self, phrase: str): sess = SessionManager.get() self.session_results[sess.session_id] = {"phrase": phrase, "image": None, - "lang": sess.lang, + "lang": lang, "system_unit": sess.system_unit, "spoken_answer": None} - response = self.ask_the_wolf(phrase, sess.lang, sess.system_unit) + response = self.ask_the_wolf(phrase, lang, sess.system_unit) if response: self.session_results[sess.session_id]["spoken_answer"] = response self.log.debug(f"WolframAlpha response: {response}") - return (phrase, CQSMatchLevel.EXACT, response, - {'query': phrase, 'answer': response}) + return response, 0.7 - def CQS_action(self, phrase: str, data: dict): - """ If selected show gui """ - # generate image for the query after skill was selected for speed - image = self.wolfie.visual_answer(phrase, lang=self.lang, units=self.system_unit) - self.gui["wolfram_image"] = image or f"{self.root_dir}/res/logo.png" - # scrollable full result page - self.gui.show_page("wolf", override_idle=45) # wolfram integration def ask_the_wolf(self, query: str, diff --git a/res/logo.png b/gui/all/logo.png similarity index 100% rename from res/logo.png rename to gui/all/logo.png diff --git a/requirements.txt b/requirements.txt index a32cb11..a8539d8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ ovos-translate-server-plugin ovos-config>=0.0.12 ovos-utils>=0.0.38 -ovos_workshop>=0.0.16,<4.0.0 -ovos-plugin-manager>=0.0.26,<1.0.0 +ovos_workshop>=3.3.0,<4.0.0 +ovos-plugin-manager>=0.0.26,<1.0.0 \ No newline at end of file From d538c28fa30c63e23d42c85047e67a5c53b16d5b Mon Sep 17 00:00:00 2001 From: JarbasAl Date: Sat, 4 Jan 2025 20:13:51 +0000 Subject: [PATCH 4/8] Increment Version to 0.2.16a1 --- version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/version.py b/version.py index ca147b7..ddc6e22 100644 --- a/version.py +++ b/version.py @@ -1,6 +1,6 @@ # START_VERSION_BLOCK VERSION_MAJOR = 0 VERSION_MINOR = 2 -VERSION_BUILD = 15 -VERSION_ALPHA = 0 +VERSION_BUILD = 16 +VERSION_ALPHA = 1 # END_VERSION_BLOCK From eed0b406bb8bd647f1885fc64d7b651cab64c3bd Mon Sep 17 00:00:00 2001 From: JarbasAl Date: Sat, 4 Jan 2025 20:14:15 +0000 Subject: [PATCH 5/8] Update Changelog --- CHANGELOG.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3004b9c..546f1fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,20 @@ # Changelog -## [0.2.15a1](https://github.com/OpenVoiceOS/ovos-skill-wolfie/tree/0.2.15a1) (2024-12-05) +## [0.2.16a1](https://github.com/OpenVoiceOS/ovos-skill-wolfie/tree/0.2.16a1) (2025-01-04) -[Full Changelog](https://github.com/OpenVoiceOS/ovos-skill-wolfie/compare/0.2.14...0.2.15a1) +[Full Changelog](https://github.com/OpenVoiceOS/ovos-skill-wolfie/compare/0.2.16a1...0.2.16a1) **Merged pull requests:** -- fix: typo in catalan \(invalid syntax\) [\#57](https://github.com/OpenVoiceOS/ovos-skill-wolfie/pull/57) ([JarbasAl](https://github.com/JarbasAl)) +- refactor: new common query decorators [\#60](https://github.com/OpenVoiceOS/ovos-skill-wolfie/pull/60) ([JarbasAl](https://github.com/JarbasAl)) + +## [0.2.16a1](https://github.com/OpenVoiceOS/ovos-skill-wolfie/tree/0.2.16a1) (2024-12-12) + +[Full Changelog](https://github.com/OpenVoiceOS/ovos-skill-wolfie/compare/0.2.15...0.2.16a1) + +**Merged pull requests:** + +- adjusting German translation from joergz2 [\#59](https://github.com/OpenVoiceOS/ovos-skill-wolfie/pull/59) ([gitlocalize-app[bot]](https://github.com/apps/gitlocalize-app)) From 73d240e1e78888dd0f16951769a5297dcd0ca2e6 Mon Sep 17 00:00:00 2001 From: JarbasAI <33701864+JarbasAl@users.noreply.github.com> Date: Sat, 4 Jan 2025 23:32:49 +0000 Subject: [PATCH 6/8] Update version.py (#61) --- version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/version.py b/version.py index ddc6e22..c75405b 100644 --- a/version.py +++ b/version.py @@ -1,6 +1,6 @@ # START_VERSION_BLOCK VERSION_MAJOR = 0 -VERSION_MINOR = 2 -VERSION_BUILD = 16 +VERSION_MINOR = 3 +VERSION_BUILD = 0 VERSION_ALPHA = 1 # END_VERSION_BLOCK From bdf894df3dc155f7f2ecdf37d62a73e4cfd18160 Mon Sep 17 00:00:00 2001 From: JarbasAl Date: Sat, 4 Jan 2025 23:33:03 +0000 Subject: [PATCH 7/8] Increment Version to 0.3.0a2 --- version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.py b/version.py index c75405b..68a87ac 100644 --- a/version.py +++ b/version.py @@ -2,5 +2,5 @@ VERSION_MAJOR = 0 VERSION_MINOR = 3 VERSION_BUILD = 0 -VERSION_ALPHA = 1 +VERSION_ALPHA = 2 # END_VERSION_BLOCK From 0b5c9cc52cacfd4490622f9bf945e60ec054737f Mon Sep 17 00:00:00 2001 From: JarbasAl Date: Sat, 4 Jan 2025 23:33:23 +0000 Subject: [PATCH 8/8] Update Changelog --- CHANGELOG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 546f1fb..0caa1e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,12 @@ # Changelog -## [0.2.16a1](https://github.com/OpenVoiceOS/ovos-skill-wolfie/tree/0.2.16a1) (2025-01-04) +## [0.3.0a2](https://github.com/OpenVoiceOS/ovos-skill-wolfie/tree/0.3.0a2) (2025-01-04) -[Full Changelog](https://github.com/OpenVoiceOS/ovos-skill-wolfie/compare/0.2.16a1...0.2.16a1) +[Full Changelog](https://github.com/OpenVoiceOS/ovos-skill-wolfie/compare/0.2.16a1...0.3.0a2) **Merged pull requests:** +- Update version.py [\#61](https://github.com/OpenVoiceOS/ovos-skill-wolfie/pull/61) ([JarbasAl](https://github.com/JarbasAl)) - refactor: new common query decorators [\#60](https://github.com/OpenVoiceOS/ovos-skill-wolfie/pull/60) ([JarbasAl](https://github.com/JarbasAl)) ## [0.2.16a1](https://github.com/OpenVoiceOS/ovos-skill-wolfie/tree/0.2.16a1) (2024-12-12)