Skip to content
Tadashi-Hikari edited this page Jan 25, 2021 · 17 revisions

Welcome to the Sapphire Assistant Framework wiki!

Highlights

  • Works fully offline/locally
  • Easy to make applications modules and apps for
  • Free and Open Source
  • Highly modular and customizable

What the Assistant Framework does.

The Assistant Framework runs as a foreground service, which binds and manages other services, launches applications, pipes data over sockets, and aggregates data. Modules can be installed to augment and increase the functionality, and any feature of the framework can be modified to suit the users needs.

What is in this repo?

Core Module

The core module is the central app that ties all other modules together. It manages apps and services that implement the framework, and exposes framework features to other apps and the user.

Vosk STT Module

This is an offline speech to text module that exposes its services to apps that may need it.

Parser Module

This module receives text input, and breaks it down to determine what skill or module the text relates to, and it extracts entities that are important for operating that skill or module

Calendar Skill Module

The Calendar Skill Module illustrates how a skill can interact with the framework, and be used to perform useful actions for the user.

Sapphire Assistant Framework Module Roles

Module names and types are subject to change as the project goes through it's alpha and beta stages. These names and types are intended to offer a starting point and common vocabulary between developers

Core Modules

Core Modules are the anchors of the framework. Only one Core module can be set to default, but there is potential to use other cores as intermediate modules in a pipeline. They serve to manage environmental variables, coordinate modules and skills, expose functionality, and maintain the UI/foreground service. Q: Does it rely on Google Play services The app does not rely on any Google Play services.

Processor Modules

Processor modules are modules that are designed to transform the data in some way. The processor module in SAF is meant to take a spoken word or typed sentence, extract variables and entities, and match it to a route. It is possible to run multiple processor Modules concurrently using the Multiprocess module, and then weigh the outcomes to make a decision. Using this method, the SAF can integrate Alexa, Google, Mycroft, Bixby, and SAF skills all in one assistant

Input Modules

Input modules are any module that sends starting data to the Core module for handling. The default input module in the SAF is the Vosk speech to text module. Using an upgraded processor module, input modules could be extended to take any binary data from network streams to pictures or video

Terminating Modules

Any module that sits at the end of a route is a terminating module. Often times these are skills or actions the user wants performed, but it could just as well be a chatbot or some other module

Generic Modules

Modules that don't fit in to any other category. When designing the SAF, generic module concepts were used to create a design that could grow past the original design intentions. What kind of modules will you create.

Clone this wiki locally