Source code for eclypse.builders.application.keyword_spotting.rest_services.action
"""REST endpoints for acting on a detected keyword."""
from eclypse.remote.communication import rest
from eclypse.remote.service import RESTService
from eclypse.utils import format_log_kv
[docs]
class ActionService(RESTService):
"""Convert a keyword into a final command response."""
[docs]
@rest.endpoint("/action", "POST")
def action(self, window_id: int, keyword: str, **_):
"""Return the command associated with the detected keyword."""
self.logger.info(
"Received request | " + format_log_kv(window_id=window_id, keyword=keyword)
)
return 200, {
"window_id": window_id,
"command": "wake" if keyword == "eclypse" else "idle",
}