Neon AI CIO Review 2022 Award

Neon Command Line Interface Utilities

  • Neon CLI - Command Line Interface to the AI core, and for displaying logs and microphone level

  • Neon Mana CLI - Command Line Interface for detecting and sending message objects via the messagebus 

  • Neon Iris CLI - Command Line Interface for secure connections by Python clients via the MQ connector

  • Examples - Explanations for typical CLI uses

Supported Features

Feature CLI Support Iris Support Mana Support
Log Monitoring Yes No No
Messagebus activity monitoring No Yes No
Remote (or containerized) core interaction           No* Yes* Yes*
Text Inputs Yes Yes Yes
Audio File Inputs No Yes Yes
Arbitrary Message Injection No Yes Yes**

 

There are three CLI utilities used for interacting with Neon AI in different scenarios. This guide provides a summary of these different programs, their advantages and disadvantages, and examples of where they may be used.

Definitions:

  • AI Core: neon-core, ovos-core, mycroft-core, or another compatible system
  • Remote Core: An AI Core running on a different computer, in containers, or in a VM
  • Messagebus: A websocket-based communication standard used by compatible AI Cores
  • Message: A Message object as defined by mycroft-messagebus-client

 

Neon CLICommand Line Interface to the AI core, and for displaying logs and microphone level

The CLI works with an AI Core (Neon, OVOS and Mycroft) running on the same computer (or VM) as the client, providing log output, text input/output, and local mic level monitoring. Logs and mic level are accessed via the local file system and text input/output uses the messagebus. The Neon CLI is a modified version of the Mycroft CLI.

Installation

pip install neon-cli-client

Commandline Entrypoint

neon-cli

Supported Features

Feature Supported
Log Monitoring Yes
Messagebus activity monitoring No
Remote (or containerized) core interaction No*
Text Inputs Yes
Audio File Inputs No
Arbitrary Message Injection No

* Containers that bind the messagebus to the local host will be able to handle text input and output, but logs and mic level will not be reported.

Usage

The CLI client is best used for debugging locally running AI Cores.

Download

The Neon CLI client can be downloaded from GitHub at Neon CLI

 

Neon Mana CLICommand Line Interface for detecting and sending message objects via the messagebus 

Neon Mana (Message Application for Neon AI) is a CLI that was created to address limitations of the Neon CLI Client. Mana provides utilities for monitoring messagebus activity and for sending messages into the messagebus. Mana also provides simple bus configuration to connect to different messagebus instances for monitoring and message-based interactions.

Installation

pip install neon-mana-utils

Commandline Entrypoint

mana

Supported Features

Feature Supported
Log Monitoring No
Messagebus activity monitoring Yes
Remote (or containerized) core interaction Yes*
Text Inputs Yes
Audio File Inputs Yes
Arbitrary Message Injection Yes

* The messagebus port must be accessible by mana for interacting with remote systems

Usage

Mana is best used if you are trying to detect or send a specific Message object. It is also particularly useful for sending a recorded utterance as if it was spoken, for testing STT in a language you don't speak.

Download

The Neon Mana CLI client can be downloaded from GitHub at Neon Mana CLI

 

Neon Iris CLICommand Line Interface for secure connections by Python clients via the MQ connector

Neon Iris (Interactive Relay for Intelligence Systems) is a CLI client and extensible Python client for interacting with Neon Core via an MQ Connector Module. Iris was created to interact with remote Neon Cores without exposing the messagebus directly.

Installation

pip install neon-iris

Commandline Entrypoint

iris

Supported Features

Feature Supported
Log Monitoring No
Messagebus activity monitoring No
Remote (or containerized) core interaction Yes*
Text Inputs Yes
Audio File Inputs Yes
Arbitrary Message Injection Yes**

* The remote core must be connected to the same MQ server as iris

** Not all messages generate responses that will route back through the Messagebus-MQ Connector

Usage

Iris is best used to connect to Neon Core "server" instances, but the module could be used to connect to a different core that implements the MQ Connector Module.

Download

The Neon Iris CLI client can be downloaded from GitHub at Neon Iris CLI

 

Examples

Use Case Recommended Package Explanation
Debugging a local core neon-cli, mana

Neon-cli provides the simplest UI for monitoring overall core activity. If a particular message is expected, mana provides a better option for inspecting or injecting a Message.

Developing a skill using a local core neon-cli

Neon-cli provides log monitoring as well as text input/output in one place.

Developing a skill using a Docker core mana

Mana provides utilities for sending text inputs to a core running in Docker containers and for monitoring messagebus activity. For logs, docker logs can be used to inspect the skills container.

Integration testing an STT Plugin mana

Mana provides utilities for starting listening (isolate STT from WW testing) and for sending an audio file for STT and skill intent processing.

Integration testing a TTS Plugin mana

Mana provides a utility for passing text to the audio module for TTS directly.

Testing in a foreign language mana, iris

Mana provides a utility for sending an audio file for STT and skills processing; translated audio can be pre-generated and then sent via the messagebus (or via MQ with iris).

Interacting with a remote core iris

Iris securely connects to a remote core via MQ; it is recommended to not expose the messagebus outside of the host device (and especially not outside of the local network). MQ handles authentication and encryption for sessions connected over the internet.

Implementing a client application iris

Iris provides a base class that can be extended for alternate MQ clients.