Genie Community Forum

New Release: Almond 1.6

It’s Tuesday, I’m packing to head to the Open Source Summit, but guess what? Almond 1.6 is here!

Release Notes

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
    Thingpedia.
  • Genie has a new typecheck command 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
    foreseeable future.
  • 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
    efficiency.
  • Thingpedia actions can now be annotated with #[confirm=false], in which
    case the assistant will not confirm with the user before executing the action.
  • The thingpedia-client and thingpedia library have been merged in one,
    creating a single SDK to both develop and consume Thingpedia skills.

Under-the-Hood Improvements

  • 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
    for training.
  • 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 (.tt files)

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.

Contributors

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.

Module versions

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.

Deployment

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.

1 Like

And we’re up to 1.6.1!

This is a bug fix release. Among other things, we fixed a nasty bug in the natural language parser that caused completely wrong and baffling results for out-of-vocabulary words. We also fixed a number of robustness issues while training models, so hopefully that’s more stable now.

Modules that were updated:

  • thingpedia: 2.5.1
  • almond-dialog-agent: 1.6.1
  • genie-toolkit: 0.4.1
  • almond-cloud: 1.6.1
  • almond-cmdline: 1.6.1
  • almond-gnome: 1.6.1

As usual, please check out the HISTORY file in each module for details of which bugs were fixed.