Mycroft AI
  • Documentation
  • About Mycroft AI
    • Why use Mycroft AI?
    • Glossary of terms
    • Contributing
    • FAQ
  • Using Mycroft AI
    • Get Mycroft
      • Mark II
        • Mark II Dev Kit
      • Mark 1
      • Picroft
      • Linux
      • Mac OS and Windows with VirtualBox
      • Docker
      • Android
    • Pairing Your Device
    • Basic Commands
    • Installing New Skills
    • Customizations
      • Configuration Manager
      • mycroft.conf
      • Languages
        • Français (French)
        • Deutsch (German)
      • Using a Custom Wake Word
      • Speech-To-Text
      • Text-To-Speech
    • Troubleshooting
      • General Troubleshooting
      • Audio Troubleshooting
      • Wake Word Troubleshooting
      • Log Files
      • Support Skill
      • Getting more support
  • Skill Development
    • Voice User Interface Design Guidelines
      • What can a Skill do?
      • Design Process
      • Voice Assistant Personas
      • Interactions
        • Intents
        • Statements and Prompts
        • Confirmations
      • Conversations
      • Error Handling
      • Example Interaction Script
      • Prototyping
      • Design to Development
    • Development Setup
      • Python Resources
      • Your First Skill
    • Skill Structure
      • Lifecycle Methods
      • Logging
      • Skill Settings
      • Dependencies
        • Manifest.yml
        • Requirements files
      • Filesystem access
      • Skill API
    • Integration Tests
      • Test Steps
      • Scenario Outlines
      • Test Runner
      • Reviewing the Report
      • Adding Custom Steps
      • Old Test System
    • User interaction
      • Intents
        • Padatious Intents
        • Adapt Intents
      • Statements
      • Prompts
      • Parsing Utterances
      • Confirmations
      • Conversational Context
      • Converse
    • Displaying information
      • GUI Framework
      • Show Simple Content
      • Mycroft-GUI on a PC
      • Mark 1 Display
    • Advanced Skill Types
      • Fallback Skill
      • Common Play Framework
      • Common Query Framework
      • Common IoT Framework
    • Mycroft Skills Manager
      • Troubleshooting
    • Marketplace Submission
      • Skills Acceptance Process
        • Information Review Template
        • Code Review Template
        • Functional Review Template
        • Combined Template
      • Skill README.md
    • FAQ
  • Mycroft Technologies
    • Technology Overview
    • Roadmap
    • Mycroft Core
      • MessageBus
      • Message Types
      • Services
        • Enclosure
        • Voice Service
        • Audio Service
        • Skills Service
      • Plugins
        • Audioservice Plugins
        • STT Plugins
        • TTS Plugins
        • Wake Word Plugins
      • Testing
      • Legacy Repo
    • Adapt
      • Adapt Examples
      • Adapt Tutorial
    • Lingua Franca
    • Mimic TTS
      • Mimic 3
      • Mimic 2
      • Mimic 1
      • Mimic Recording Studio
    • Mycroft GUI
      • Remote STT and TTS
    • Mycroft Skills Kit
    • Mycroft Skills Manager
    • Padatious
    • Precise
    • Platforms
Powered by GitBook
On this page
  • What is the Adapt Intent Parser?
  • Is Adapt right for me or my use cases?
  • Lightweight
  • Portable
  • Reliable
  • Open source
  • Who developed Adapt?
  • How do I install Adapt Intent Parser?
  • Requirements
  • pip installation
  • Github installation
  • How do I contribute to Adapt Intent Parser?
  • For Ubuntu, Debian and Raspbian based Linux
  • For Fedora / RPM based Linux
  • For MacOS X

Was this helpful?

  1. Mycroft Technologies

Adapt

Adapt is an intent parser - meaning that it is a library for converting natural language into machine-readable data structures, such as JSON.

PreviousLegacy RepoNextAdapt Examples

Last updated 5 years ago

Was this helpful?

What is the Adapt Intent Parser?

The Adapt Intent Parser is open source software. It is lightweight and is designed to run on devices with limited computing resources, such as embedded devices.

Adapt takes in natural language as an input, and outputs a data structure that includes

  • the Intent: what the User is trying to do

  • a match probability: how confident Adapt is that the Intent has been correctly identified

  • a tagged list of entities: that can be used by Skills to perform functions

  • Turn on Pandora

  • Play Pandora

  • Play my Joan Jett Pandora station

The Adapt Intent Parser takes this input and generates a JSON data structure like this:

{
    "confidence": 0.61,
    "target": null,
    "Artist": "joan jett",
    "intent_type": "MusicIntent",
    "MusicVerb": "put on",
    "MusicKeyword": "pandora"
}

Is Adapt right for me or my use cases?

Adapt is useful for determining user intent quickly and accurately from natural language. It is particularly beneficial for applications with limited vocabularies - that is, where the User will only issue a small number of Utterances.

Adapt has a number of features.

Lightweight

Adapt is written to run on embedded system with limited resources. Adapt can be used as the engine to parse natural language on IoT devices like remote controls and hubs.

Portable

Adapt is written in Python. Python is very widely adopted and supported in the technical community. Because it is written in Python, Adapt will run on many different devices - from servers to a Raspberry Pi. Adapt is designed to be run cross-platform and can be deployed in software environments that include Android, iOS, Windows and Linux.

Reliable

Because Adapt is small enough to run locally on an embedded device, it removes the dependency of having to parse intent in the cloud. This allows applications to function when they don't have an internet connection. Adapt is therefore suited to environments where the internet connection is slow, unreliable or intermittent.

Open source

Who developed Adapt?

How do I install Adapt Intent Parser?

Requirements

Adapt Intent Parser requires Python 2.7 or above.

pip installation

pip install adapt-parser

NOTE: We recommend the use of virtual environments for development on Adapt and Mycroft. This allows for dependencies to be configured just for Adapt and your project, rather than installing them globally. This approach prevents conflicts between Adapt and other software.

Github installation

How do I contribute to Adapt Intent Parser?

For Ubuntu, Debian and Raspbian based Linux

To develop on Adapt itself, or try the examples, check out the repo from GitHub and set up a virtualenv.

$ sudo apt-get install virtualenv
$ virtualenv myvirtualenv
$ . myvirtualenv/bin/activate
$ git clone https://github.com/mycroftai/adapt
$ cd adapt
$ pip install -r requirements.txt

Verify the installation by running the example code from the Adapt repository.

$ cd ~/adapt
PYTHONPATH=. python examples/multi_intent_parser.py "play some music by the clash"

For Fedora / RPM based Linux

To develop with the latest Adapt, install it via pip into your project's virtualenv:

$ pip install virtualenv
$ virtualenv myvirtualenv
$ source myvirtualenv/bin/activate
$ pip install -e git+https://github.com/mycroftai/adapt#egg=adapt-parser

To develop on Adapt itself, or try the examples, check out the repo from GitHub and set up a virtualenv.

$ pip install virtualenv
$ virtualenv myvirtualenv
$ source myvirtualenv/bin/activate
$ git clone https://github.com/mycroftai/adapt
$ cd adapt
$ pip install -r requirements.txt

Verify the installation by running the example code from the Adapt repository.

$ cd ~/adapt
PYTHONPATH=. python examples/multi_intent_parser.py "play some music by the clash"

For MacOS X

First, Xcode must be installed and Apple’s license agreement accepted.

$ xcode-select --install

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew update

Next, install Adapt dependencies with brew and python-pip.

$ brew install git python
$ pip install python virtualenv

To develop with the latest Adapt, install it via pip into your project's virtualenv:

$ virtualenv myvirtualenv
$ . myvirtualenv/bin/activate
$ pip install -e git+https://github.com/mycroftai/adapt#egg=adapt-parser

To develop on Adapt itself, or try the examples, check out the repo from GitHub and set up a virtualenv.

$ virtualenv myvirtualenv
$ . myvirtualenv/bin/activate
$ git clone https://github.com/mycroftai/adapt
$ cd adapt
$ pip install -r requirements.txt

Verify the installation by running the example code from the Adapt repository.

$ cd ~/adapt
PYTHONPATH=. python examples/multi_intent_parser.py "play some music by the clash"

Adapt is useful for interpreting natural language input. For example, you might want to create a that allows a User to play a Pandora station. The Utterances a User might Speak include:

Applications - or Mycroft Skills - can then parse the JSON data take appropriate action - such as playing Joan Jett using the open source Pandora application .

If you are looking to use Adapt in a Mycroft Skill, please see

At Mycroft.AI, we believe that artficial intelligence is too important to be controlled by a few large companies. Adapt is open source, licensed under the Apache v2.0 license. Anyone can access the , change the software and use Adapt Intent Parser in new applications.

software powers the Internet. Artificial intelligence software, like Adapt Intent Parser, is gaining in importance. However, very few artificial intelligence software is open source. Here at Mycroft.AI, we believe that natural language processing is going to be a key component of many future technologies. By sharing our software we believe that we can help bring artificial intelligence to the open source community where it can be used to benefit millions of users world wide. We hope to work with other open source initiatives like and to ensure that the future of artificial intelligence is open for all.

Adapt Intent Parser was developed at Mycroft.AI by a team led by . Sean was previously a developer at both Siri and Amazon Echo.

pip is a package manager used to install and manage software packages in Python. To use pip you first need to .

Adapt is available on the making it easily installable using pip.

You can also get the source code directly from the .

Next, install the and update brew packages.

voice user interface
Pianobar
Skill Development > Intents
source code
Open Source
TensorFlow
OpenAI
Sean Fitzgerald
install it
Python Package Index (PyPI)
Adapt Github repository
Homebrew package manager