Skip to content
SUSI.AI server backend - the Artificial Intelligence server for personal assistants https://api.susi.ai
Branch: development
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.bluemix Export Java 8 env var for build Jun 9, 2016
.github Comment out suggestions in Issue Template (#663) May 17, 2018
.settings added a http client which accepts all certificates Dec 28, 2017
.utility Rename push-docs-to-gh-pages.sh to push-javadoc-to-gh-pages.sh (#903) Jun 28, 2018
bin allow for logging to stdout while still daemonizing (#1254) May 8, 2019
conf activate next and previous actions, add skills Jun 15, 2019
dependencies extended patch from previous commit to all servlets Nov 29, 2017
docker don't do pull/push on the skill repo May 6, 2019
docs api.md doc :: re-formatting json view (#1187) Dec 2, 2018
gradle/wrapper update the gradle wrapper (#1273) Jun 15, 2019
html removed unused map and material file Mar 8, 2019
installation Fixes #606 use strict should be used in installation.js (#612) Nov 30, 2017
kubernetes The Docker images were written very poorly (#951) Jul 16, 2018
release added stub of binary release generator Dec 18, 2018
scripts Adding support for untracked files in gh-pagesUpdater.sh Feb 13, 2017
src Add 'Reported Skills' servlet for Admin section #1268 (#1274) Jun 18, 2019
ssi fixed bad css file Mar 8, 2019
systemd allow for logging to stdout while still daemonizing (#1254) May 8, 2019
test fixed to make it possible to upload files to bulk test interface Feb 24, 2019
.classpath fixed eclipse classpath Feb 13, 2019
.gitignore finished binary release build script Dec 21, 2018
.gitmodules Added public transit. Fix #113 May 22, 2017
.project eclipse setup for gradle build Feb 23, 2017
.travis.yml Fixes #902: Add secure token for gh-pages publishing (#916) Jul 1, 2018
.yaydoc.yml Fixes #1203: Update Susi sub-projects detail in yaydoc (#1204) Dec 22, 2018
Dockerfile Let's really fix the docker build now (#992) Jul 16, 2018
LICENSE Initial commit Mar 4, 2015
Procfile Server uses the PORT environment variable if available Feb 7, 2016
README.rst
app.json Fix a typo in app.json (#1150) Sep 8, 2018
azuredeploy.json Fixes #1207: Add Azure one-click deployment (#1208) Dec 22, 2018
azuredeploy.parameters.json Fixes #1207: Add Azure one-click deployment (#1208) Dec 22, 2018
build.gradle Bugfix: Fix CORS header issue to generate Swagger documentation (#1192) Dec 4, 2018
cloud9-setup.sh Refactor to use better syntax and correct semantic errors (#1196) Dec 7, 2018
docker-cloud.yml Fixes #323, Exposing port 443 to make Docker Cloud deployment endpoin… May 10, 2016
docker-compose.yml updated docker-compose restarting on failure (#1215) Jan 21, 2019
gradlew update the gradle wrapper (#1273) Jun 15, 2019
gradlew.bat update the gradle wrapper (#1273) Jun 15, 2019
manifest.yml Heroku, Scalingo, Bluemix deployment buildpack url change to loklak org May 23, 2016
metadata.json Fixes #1207: Add Azure one-click deployment (#1208) Dec 22, 2018
scalingo.json Heroku, Scalingo, Bluemix deployment buildpack url change to loklak org May 23, 2016
settings.gradle changed way the project from git submodule is embedded in gradle buil… Aug 9, 2017
system.properties added java 1.8 support hint for heroku and scalingo May 24, 2016

README.rst

SUSI.AI Server

Join the chat at https://gitter.im/fossasia/susi_server Docker Pulls Build Status Percentage of issues still open Average time to resolve an issue Twitter Twitter Follow

Susi AI is an intelligent Open Source personal assistant. It is capable of chat and voice interaction by using APIs to perform actions such as music playback, making to-do lists, setting alarms, streaming podcasts, playing audiobooks, and providing weather, traffic, and other real-time information. Additional functionalities can be added as console services using external APIs. Susi AI is able to answer questions and depending on the context will ask for additional information in order to perform the desired outcome. The core of the assistant is the Susi AI server that holds the "intelligence" and "personality" of Susi AI. The Android and web applications make use of the APIs to access information from a hosted server.

Deployments

Development: An automatic deployment from the development branch at GitHub is available for tests at https://susi-server.herokuapp.com

Master: The master branch is planned to be deployed on https://api.susi.ai. Currently, the deployment is taking place each hour at xx.45 using the development branch. We are planning to switch to the Master branch for production soon.

Communication

Please join our mailing list to discuss questions regarding the project: https://groups.google.com/forum/#!forum/opntec-dev/

Our chat channel is on gitter here: https://gitter.im/fossasia/susi_server

How do I install Susi: Download, Build, Run

Note

  • You must be logged in to Docker Cloud for the button to work correctly. If you are not logged in, you'll see a 404 error instead.

Deploy Deploy on Scalingo Deploy to Bluemix Deploy to Docker Cloud Deploy to Azure

At this time, Susi AI is not provided in the compiled form, you easily build it yourself. It's not difficult and done in one minute! The source code is hosted at https://github.com/fossasia/susi_server, you can download it and run Susi AI with (Before installation you must have "Java Development Kit" latest version at http://openjdk.java.net/install/ & "Gradle" latest version at https://gradle.org/install/):

Note

  • For Armv6 processors (e.g. Raspberry Pi Zero / Zero W/ Zero WH/ 1A / 1B), please make sure that your system is using Java 8 (Oracle or OpenJDK) as there are some compatibility issues for Armv6 processors.
  • You may use the following command to install OpenJDK's Java 8 JRE and JDK:
> sudo apt install openjdk-8-jdk-headless
> git clone https://github.com/fossasia/susi_server.git
> cd susi_server
> git submodule update --recursive --remote
> git submodule update --init --recursive
> ./gradlew build
> bin/start.sh

For Windows Users (who are using GitBash/Cygwin or any terminal):

> git clone https://github.com/fossasia/susi_server.git
> cd susi_server
> git checkout master
> ant jar
> java -jar dist/susiserver.jar
> git checkout development
> ant jar
> java -jar dist/susiserver.jar
To stop:
> Press Ctrl+C

After all server processes are running, Susi AI tries to open a browser page itself. If that does not happen, just open http://localhost:4000; if you made the installation on a headless or remote server, then replace 'localhost' with your server name.

To stop Susi AI, run: (this will block until the server has actually terminated)

> bin/stop.sh

A self-upgrading process is available which must be triggered by a shell command. Just run:

> bin/upgrade.sh

Where can I download ready-built releases of Susi AI?

The latest binary built can be downloaded from http://download.susi.ai/susi_server/susi_server_binary_latest.tar.gz

To run susi, do: tar xfz susi_server_binary_latest.tar.gz cd susi_server_binary_latest java -server -Xmx200m -jar build/libs/susi_server-all.jar

How do I install Susi AI with Docker on Google Cloud?

To install Susi AI with Docker on Google Cloud please refer to the Susi Docker installation readme.

How do I install Susi AI with Docker on AWS?

To install Susi AI with Docker on AWS please refer to the Susi Docker installation readme.

How do I install Susi AI with Docker on Bluemix?

To install Susi AI with Docker on Bluemix please refer to the Susi Docker installation readme.

How do I install Susi AI with Docker on Microsoft Azure?

To install Susi AI with Docker on Azure please refer to the Susi Docker installation readme.

How do I install Susi AI with Docker on Digital Ocean?

To install Susi AI with Docker on Digital Ocean please refer to the Susi Docker installation readme.

How do I deploy Susi AI with Heroku?

You can easily deploy to Heroku by clicking the Deploy to Heroku button above. To install Susi AI using Heroku Toolbelt, please refer to the Susi Heroku installation readme.

How do I deploy Susi AI with cloud9?

To install Susi AI with cloud9 please refer to the Susi cloud9 installation readme.

How do I setup Susi AI on Eclipse?

To install Susi AI on Eclipse, please refer to the Susi Eclipse readme.

How do I run Susi AI?

  • build Susi (you need to do this only once, see above)
  • run bin/start.sh
  • open http://localhost:4000 in your browser
  • to shut down Susi, run bin/stop.sh

How do I configure Susi AI?

The basis configuration file is in conf/config.properties. To customize these settings place a file customized_config.properties to the path data/settings/

How to compile using Gradle?

  • To install Gradle on Ubuntu:

    $ sudo add-apt-repository ppa:cwchien/gradle
    $ sudo apt-get update
    $ sudo apt-get install gradle
    
  • To install Gradle on Mac OS X with homebrew

    brew install gradle
    
  • To compile, first, create dir necessary for Gradle

    ./gradle_init.sh
    

    Compile the source to classes and a jar file

    gradle assemble
    

    The compiled file can be found in build dir Last, clean up so that we can still build the project using Ant

    ./gradle_clean.sh
    

How do I develop Skills (AI Conversation Rules) for Susi AI?

The Susi AI skill language is described in the Skill Development Tutorial.

How to utilize Susi skill data in Susi.AI server?

If you simply want to add your skill to the SUSI.AI online service, please go to https://skills.susi.ai and add your skill.

For your own deployments: The Susi skill data is the storage place for the Susi skills. To make Susi server utilize these skills, clone Susi skill data alongside Susi server.

git clone https://github.com/fossasia/susi_skill_data.git

If you want to create private skills in your local server, you should create a local git repository susi_private_skill_data alongside Susi server. Then you must create a local git host:

> cd <above susi home>
> mkdir susi_private_skill_data_host
> cd susi_private_skill_data_host
> git init —bare
> cd ../susi_private_skill_data
> git remote add origin <path to susi_private_skill_data_host>
> git push --set-upstream origin master

Why should I use Susi AI?

If you like to create your own AI, then you may consider Susi AI.

Where can I get the latest news about Susi AI?

Hey, this is the tool for that! Just put https://api.loklak.org/api/search.rss?q=%23susi into your RSS reader. Oh, wait.. you will get a lot of information about tasty Cambodian food with that as well. Alternatively, you may also read the authors timeline or just follow @0rb1t3r (that's a zero after the "@" sign)

Where can I find documentation?

The Documentation can be found here.

Where do I find the javadocs?

You can build them via 'ant javadoc'

Where can I report bugs and make feature requests?

This project is considered a community work. The development team consists of you too. We are very thankful for the pull request. So if you discovered that something can be enhanced, please do it yourself and make a pull request. If you find a bug, please try to fix it. If you report a bug to us, We will possibly consider it but at the very end of a giant, always growing heap of work. The best chance for you to get things done is to try it yourself. Our issue tracker is here.

What is the Development Workflow?

Fixing issues

Step 1: Pick an issue to fix

After selecting the issue

1.Comment on the issue saying you are working on the issue.

2.We expect you to discuss the approach either by commenting or in the gitter.

3.Updates or progress on the issue would be nice.

Step 2: Branch policy

Start off from your development branch and make sure it is up-to-date with the latest version of the committer repo's development branch. Make sure you are working in development branch only. git pull upstream development

If you have not added upstream follow the steps given here.

Step 3: Coding Policy

  • Please help us follow the best practice to make it easy for the reviewer as well as the contributor. We want to focus on the code quality more than on managing pull request ethics.
  • Single commit per pull request
  • For writing commit messages please adhere to the Commit style guidelines.
  • Follow uniform design practices. The design language must be consistent throughout the app.
  • The pull request will not get merged until and unless the commits are squashed. In case there are multiple commits on the PR, the commit author needs to squash them and not the maintainers cherry-picking and merging squashes.
  • If you don't know what does squashing of commits is read from here.
  • If the PR is related to any front end change, please attach relevant screenshots in the pull request description

Step 4: Submitting a PR

Once a PR is opened, try and complete it within 2 weeks, or at least stay actively working on it. Inactivity for a long period may necessitate a closure of the PR. As mentioned earlier updates would be nice.

Step 5: Code Review

Your code will be reviewed, in this sequence, by:

  • Travis CI: by building and running tests. If there are failed tests, the build will be marked as a failure. You can consult the CI log to find which tests. Ensure that all tests pass before triggering another build.
  • The CI log will also contain the command that will enable running the failed tests locally.
  • Reviewer: A core team member will be assigned to the PR as its reviewer, who will approve your PR or he will suggest changes.

What is the software license?

LGPL 2.1

You can’t perform that action at this time.