Skip to content
This repository has been archived by the owner on Nov 28, 2022. It is now read-only.

finos/greenkey-discovery-sdk

Repository files navigation

FINOS - Archived

NOTE! This project is archived due to lack of activity; you can still consume this software, although not advised, as it is not actively maintained. If you're interested to restore activity on this repository, please email help@finos.org

GreenKey Scribe Discovery SDK

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.

Overview

  1. Quickstart

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

    • Customize your own interpreter.
  3. Deploying

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

1. Quickstart

Requirements

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

Dependencies

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

python3 -m pip install --upgrade setuptools pip

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

python3 -m pip install -r requirements.txt

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.

examples
└── digit
    ├── custom
    │   └── definitions.yaml
    ├── send_transcript_to_discovery.sh
    └── 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
entities:
  room_number:
    - "@num"
intents:
  digit:
    examples:
      - "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.

Contributing

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 help@finos.org

Authors

Original authors:

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

License

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

Copyright 2020 GreenKey Technologies