It’s Tuesday, I’m packing to head to the Open Source Summit, but guess what? Almond 1.6 is here!
This release is a feature rich release, with many new experimental and early preview features.
New Features for Users
- Timers have been extended: a rule can be set to run at multiple times during
the day, and users can specify imprecise times such as “morning” and “evening”.
(This feature is experimental and natural language support is still limited).
- The natural language support has been more robust, and users who so desire
can use prefixes of the form “ask ____ to…” (e.g. “ask bing to search”) to
further improve accuracy when the targeted skill is known.
New Features for Developers
- A new command line tool is available to help developing Thingpedia skills.
It can be installed with
yarn global add thingpedia-cli. The tool supports
automated testing, and in the future automated upload.
- Developers can now upload custom Genie templates to Thingpedia, and can train
custom models with different parameters, and targeting different subsets of
- Genie has a new
typecheckcommand that helps with maintaining existing
datasets as Thingpedia evolves.
- The configuration interface for Thingpedia devices has been refactored and is
cleaner and more consistent across different configuration mechanisms. The
existing API is still supported though, and will stay supported for the
- Thingpedia devices have gained the ability to consume ThingTalk directly.
This allows translating filters, joins and projections to the native query
language supported by the device (e.g. SQL or GraphQL), for increased query
- Thingpedia actions can now be annotated with
#[confirm=false], in which
case the assistant will not confirm with the user before executing the action.
thingpedialibrary have been merged in one,
creating a single SDK to both develop and consume Thingpedia skills.
- Location support in Genie has been revamped, and should now be more robust.
- Genie can now take advantage of multiple threads when generating contextual
sentences, and has grown progress tracking in generation and augmentation.
- Almond’s training service has been refactored to use Kubernetes. This should
increase both robustness and scalability, and will allow faster turnaround
- Almond’s internal evaluation of production models is now based on realistic
data, matching what our previous research suggested is the correct approach.
- The JSON format of Thingpedia snapshots has been obsoleted and is no longer
used. Developers should switch to the ThingTalk format (
Experimental and Ongoing Work
- Developers can now create custom Alexa skills, and Thingpedia primitive templates
are mapped to Alexa intents, which allows using the native Alexa intent classifier
while still using Thingpedia as backend. This is part of an ongoing effort
to make Thingpedia skills portable across virtual assistant platforms.
- Support for contextual commands has been expanded, with many new Genie templates,
and is almost complete. It is still behind an experimental flag (off by default).
- We added experimental support for factual question answering, based on Wikidata.
ThingTalk has grown a SPARQL compiler backend, and Genie introduces a number of new
annotations to help generate rich and varied QA datasets automatically. Experimental
QA support for “who questions” is almost complete, and will be enabled soon.
Many thanks to our contributors and collaborators, in particular:
- Ryan Cheng who contributed the ThingTalk to SPARQL conversion, and a Wikidata-based skill for sports (still under review)
- Ricky Grannis-Vu and Elvis Zhang who worked on extended timer support.
This release comprises the following packages:
- thingtalk: 1.8.0
- thingpedia: 2.5.0
- thingengine-core: 1.6.0
- almond-dialog-agent: 1.6.0
- genie-toolkit: 0.4.0
- thingpedia-cli: 0.1.0
- almond-cloud: 1.6.0
- almond-cmdline: 1.6.0
- almond-gnome: 1.6.0
Please refer to the
HISTORY file on GitHub for details of what changed in each one.
Rollout of this version on Web Almond started yesterday, and was not as smooth as I hoped. Apologies for the inconvenience, hopefully the robustness improvements will translate in smoother upgrades in the futures. Training the new models is still ongoing, so the natural language might be flaky for a few more hours.
Builds of Almond on Flathub are in progress and will go live soon. Builds of Android will take some extra time as we chase the last few bugs.