A little late for October spooks, but no worries, Almond 1.7 is here!
Release Notes
New Features for Users
- A frequency-based timer was added, so users can say “twice a week”, “three times an hour”
- Users can now specify the device by name when multiple devices of the same kind are configured.
- Argmin/argmax: users can now refer to data with the highest or lower value of a certain attribute.
New Features for Developers
- Official docker images for almond-cloud, almond-server, decanlp and almond-tokenizer are now available on DockerHub.
- jsdoc-based documentation for all Almond libraries is now available on our website.
- Formatting updates: developers now can define a more flexible output format by returning a
__response
hidden parameters in JavaScript code for queries. This will override the formatting-based output if present. We also allow adding pictures to RDL format now. - Developers now can group parameters into a record type. The field of a record parameter can be referred by
<paremeter-name>.<field-name>
. - Functions can now extend other functions. Extending functions will inherit all input and output parameters of the base functions, including annotations. Inherited parameters can be overrided.
- Custom NLP models can now make use of the exact matcher.
- FileThingpediaClient has been promoted to the stable API; users of Thingpedia skills can now avoid a network dependency by using local files (as previously in Genie).
- New Web Almond API allows integration with Bot Framework and similar libraries that require REST access to Almond.
- Command-line tools for Thingpedia have been improved, with new commands to lint devices before upload, and commands to upload string and entity datasets.
Under-the-Hood Improvements
- Improve default formatting for returned results.
- Primitive templates in
dataset.tt
will be expanded with more filters by matching the canonical form in the utterances. For example, templates “chinese restaurant” and “4-star restaurant” will be combined to generate templates “chinese 4-star restaurant” and “4-star chinese restaurant”. - Genie now has a more comprehensive template set including more support for comparison of different measure types, support for argmin/argmax.
- Genie speeds up by running datset augmentation in multiple threads in parallel.
- Almond Cloud’s training subsystem has been revamped to make more use of Kubernetes, and to be more robust. This will also allow parallel training of multiple models.
- NLP models are now evaluated on more precise and fine-grained metrics, which will help us improve.
Experimental and Ongoing Work
- ThingTalk now supports simple computations including aggregations and distance.
- Add the ability to reference the current selection on the screen, and similar context items, as a value in the program.
- Training contextual NLP models is now possible. Contextual models are still experimental.
Module versions
This release comprises the following packages:
- thingtalk: 1.9.0
- thingpedia: 2.6.0
- genie-toolkit: 0.5.0
- thingpedia-cli: 0.2.0
- thingengine-core: 1.7.0
- almond-dialog-agent: 1.7.1
- almond-cloud: 1.7.0
- almond-cmdline: 1.7.0
- almond-gnome: 1.7.0
Please refer to the HISTORY file on GitHub for details of what changed in each one.
Deployment
The new version has been live on https://almond.stanford.edu as of this morning. Training the new models is still ongoing, so the new natural language features might be flaky for a few more hours.
Docker builds are already available on DockerHub, and so are npm packages.
Builds of Almond on Flathub and Google Play Store are in progress and will go live soon.