Skip to content
Speed up business workflows through custom 'voice skills' and text (NLP) interpreters
Python Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

GreenKey Scribe Discovery SDK Build StatusFINOS - Active

Powerful NLP API for human conversations

The Discovery SDK allows you to write logic-based interpreters, and let GreenKey's Discovery engine use machine learning to identify intents and extract entities.

You can use your Discovery interpreter to power several voice- and chat-driven workflows

Read more about Discovery on our blog or checkout the full documentation

The GreenKey Discovery SDK is hosted by the Voice Program of the Fintech Open Source Foundation (FINOS). If you are a company interested in the evolution of open standards, interoperability, and innovation in the financial services sector, please consider joining FINOS.


  1. Quickstart

    • Step through the 'digit' interpreter example.
  2. Customization

    • Customize your own interpreter.
  3. Advanced Examples and Documentation

    • Transcribing voice audio files with Scribe and using the Discovery engine.

1. Quickstart


  • Docker 17+ (or Discovery Binaries)
  • Python 3 with pip


To ensure your dependencies install correctly, we recommend that you upgrade your setuptools before proceeding further.

python3 -m pip install --upgrade setuptools

Now you are ready to install the required dependencies with pip. This will provide you with the packages needed to run the script (see the 'digit' example below), as well as the Discovery CLI.

python3 -m pip install -r requirements.txt

Using Compiled Binary Files

If you are unable to use Docker, contact us to obtain compiled binary files for Discovery. Simply place the binaries directory into the SDK directory before running The test script will automatically detect the binaries directory and use that instead of a Docker image.

Make sure not to change the name of the binaries file when you move it. You should end up with a structure like the following for the script to work.


Obtaining Credentials

Contact us to obtain credentials to obtain the Discovery Docker container from our repository and launch the Discovery engine.

Discovery Examples Directory Overview

Each discovery example contains a folder named custom, which in turn contains the required definitions.yaml file. Some examples contain a schemas key in the definitions.yaml file to customize the return json. They also contain example scripts to see how the particular configuration will detect entities.

└── digit
    ├── custom
    │   └── definitions.yaml
    └── tests.txt

The 'digit' Interpreter Example

  1. Test cases for the room dialing example are in examples/digit/tests.txt
intent_whitelist: digit

test: dial number
transcript: please dial eight
room_number: 8

test: dial number
transcript: press one eight
room_number: 1
  1. The definition file, examples/digit/custom/definitions.yaml, contains examples that match the tests
    - "@num"
      - "please select @num to speak to the operator"
      - "to change your order press @room_number"
      - "if this is an emergency dial @room_number"
      - "for animal control services press @room_number"

where "digit" is the name of the intent and the entities value ("room_number") match entities in tests.txt.

2. Customization

Creating a custom project can be done by following the structure of an existing example found in the examples folder. Refer to the wiki for further information on customization

3. Deploying

Check out our deployment documentation for full details on deploying Discovery.


Code of Conduct

Please make sure you read and observe our Code of Conduct.

Pull Request process

  1. Fork it
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

NOTE: Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool. Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.

Need an ICLA? Unsure if you are covered under an existing CCLA? Email


We use SemVer for versioning. For the versions available, see the tags on this repository.


Original authors:

For all others who have aided this project, please see the list of contributors.


The code in this repository is distributed under the Apache License, Version 2.0.

Copyright 2020 GreenKey Technologies

You can’t perform that action at this time.