Git Product home page Git Product logo

leon's Introduction

Leon
Leon

Your open-source personal assistant.



Website :: Documentation :: Roadmap :: Contributing :: Story


Current State

Why is there a small amount of contributors?

I'm taking a lot of time to work on the new core of Leon due to personal reasons. I can only work on it after work and on weekends. Hence, I'm blocking any potential contribution as the whole core of Leon is coming with many breaking changes. Many of you are willing to contribute in Leon (create new skills, help to improve the core, translations and so on...), a big thanks to every one of you!

While I would love to devote more time to Leon, I'm currently unable to do so because I have bills to pay. I have some ideas about how to monetize Leon in the future (Leon's core will always remain open source), but before to get there there is still a long way to go.

Until then, any financial support by sponsoring Leon is much appreciated πŸ™‚

How about large language models and Leon?

Since AI gained in popularity and large language models are getting more and more traction, many of you joined our community. A huge welcome to all of you! πŸ€—

At the moment, Leon's NLU will remain intents first with his own model without relying on an LLM. It is important that Leon can run 100% offline and I'm confident that with the downsizing techniques such as quantization Leon will sooner or later work with LLMs at his core and still be able to run on edge.

Here is how LLMs may help Leon in the future:

  • Intent fallback: when an utterance cannot match an intent, then rely on an LLM to provide results.
  • New named entity recognition engine: provide a better solution to extract entities from utterances such as fruits, numbers, cities, durations, persons, etc.
  • Skill features: let skills leverage LLMs to provide out-of-the-box NLP features such as summarization, knowledge base, translation, sentiment analysis and so on...
  • Skill building: LLMs can help to develop skills such as paraphrasing utterance samples, translate answers, convert code from our Python bridge to the upcoming JavaScript bridge and vice versa, etc.
  • More...

What's Next?

Once the new core released, we'll work on the community aspect of Leon. For example, better organize our Discord, planify regular calls, work on skills together, etc. It is very important for Leon to have a real community. At that moment, the skills platform will already be online, so it'll be easier to sync our progress and publish new skills.

  • Feel free to check out the Git development branches and our next major milestones.
  • And the detailed roadmap.
  • Many exciting things are coming up, hence no new documentation and test are going to be written until the official release of Leon.

Latest Release

Check out the latest release blog post.


πŸ‘‹ Introduction

Leon is an open-source personal assistant who can live on your server.

He does stuff when you ask him to.

You can talk to him and he can talk to you. You can also text him and he can also text you. If you want to, Leon can communicate with you by being offline to protect your privacy.

Why?

  1. If you are a developer (or not), you may want to build many things that could help in your daily life. Instead of building a dedicated project for each of those ideas, Leon can help you with his Skills structure.
  2. With this generic structure, everyone can create their own skills and share them with others. Therefore there is only one core (to rule them all).
  3. Leon uses AI concepts, which is cool.
  4. Privacy matters, you can configure Leon to talk with him offline. You can already text with him without any third party services.
  5. Open source is great.

What is this repository for?

This repository contains the following nodes of Leon:

  • The server
  • Skills
  • The web app
  • The hotword node
  • The TCP server (for inter-process communication between Leon and third-party nodes such as spaCy)
  • The Python bridge (the connector between the core and skills made with Python)

What is Leon able to do?

Today, the most interesting part is about his core and the way he can scale up. He is pretty young but can easily scale to have new features (skills). You can find what he is able to do by browsing the skills list.
Please do know that after the official release, we will build many skills along with the community. Feel free to join us on Discord to be part of the journey.

Sounds good to you? Then let's get started!

☁️ Try with a Single-Click

Gitpod will automatically set up an environment and run an instance for you.

Open in Gitpod

πŸš€ Getting Started

Prerequisites

  • Node.js >= 16
  • npm >= 8
  • Supported OSes: Linux, macOS and Windows

To install these prerequisites, you can follow the How To section of the documentation.

Installation

# Install the Leon CLI
npm install --global @leon-ai/cli

# Install Leon (stable branch)
leon create birth
# OR install from the develop branch: leon create birth --develop

Usage

# Check the setup went well
leon check

# Run
leon start

# Go to http://localhost:1337
# Hooray! Leon is running

πŸ“š Documentation

For full documentation, visit docs.getleon.ai.

πŸ“Ί Video

Watch a demo.

🧭 Roadmap

To know what is going on, follow roadmap.getleon.ai.

❀️ Contributing

If you have an idea for improving Leon, do not hesitate.

Leon needs open source to live, the more skills he has, the more skillful he becomes.

πŸ“– The Story Behind Leon

You'll find a write-up on this blog post.

πŸ”” Stay Tuned

πŸ‘¨ Author

Louis Grenard (@grenlouis)

πŸ‘ Sponsors

Appwrite
250 USD / month
Anonymous
100 USD / month
herbundkraut
10 USD / month
You?

You can also contribute by sponsoring Leon.

Please note that I dedicate most of my free time to Leon.

By sponsoring the project you make the project sustainable and faster to develop features.

The focus is not only limited to the activity you see on GitHub but also a lot of thinking about the direction of the project. Which is naturally related to the overall design, architecture, vision, learning process and so on...

Special Thanks

Vercel Β  Β  Β  MacStadium Β  Β  Β  AOZ Studio

πŸ“ License

MIT License

Copyright (c) 2019-present, Louis Grenard [email protected]

Cheers!

Cheers!

leon's People

Contributors

acidjames avatar antoinebr avatar ctombumila37 avatar dependabot[bot] avatar facorazza avatar fkeloks avatar helloausrine avatar iifeoluwa avatar imgbotapp avatar itisnajim avatar johannbarbie avatar kesslerdev avatar louistiti avatar peterdavehello avatar rangi376w avatar supersandro2000 avatar theoludwig avatar vocalfan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

leon's Issues

Support other languages

It seems that Leon currently only speaks English (?)

It would be great if the software could support other languages. And do it in a way that is more extensible/linguistically informed than Mycroft.

Offline Hotword npm command typo and how to manually install deepspeech

Documentation Is:

  • Missing
  • Needed
  • Confusing
  • Not Sure?

Explanation

https://docs.getleon.ai/offline.html#hotword
typo in: npm install setup:offline-hotword
must be: npm run setup:offline-hotword

Proposal

Also, how to manually install deepspeech. I cannot let npm download 1.8GB file and just fail because of slow internet connection, I need to download the 1.8GB file using aria2c/wget -c and unpack it to where?
My bandwidth is expensive.

Another question, I have installed python3.7.2 from source (cannot remove it using make uninstall) but leon requires only 3.6.X, so I installed 3.6.8 from source again but pipenv is using 3.7.
I am using Debian, and this broke apt-get, is there any way to make pipenv select 3.6 not 3.7?

Stuck on Leon's web loading screen

Specs

  • Leon version: [email protected]
  • OS (or browser) version: Debian 9.8
  • Node.js version: v10.15.1
  • Complete "npm run check" output:
> [email protected] check /home/metal-mighty/github-repos/leon
> babel-node scripts/run-check.js

β ‹
---

.: CHECKING :.

➑ /bin/sh -c node --version
βœ” v10.15.1

➑ /bin/sh -c npm --version
βœ” 6.4.1

➑ /bin/sh -c pipenv --version
βœ” pipenv, version 2018.11.26

➑ /bin/sh -c pipenv --where
βœ” /home/metal-mighty/github-repos/leon/bridges/python

➑ /bin/sh -c pipenv run python --version
βœ” Python 3.6.8

➑ /bin/sh -c pipenv run python bridges/python/main.py en leon randomnumber "Give me a random number"
βœ” {"package": "leon", "module": "randomnumber", "lang": "en", "input": "Give me a random number", "output": {"type": "end", "code": "success", "speech": 90, "options": {}}}

➑ Classifier state
βœ” Found and valid

➑ Amazon Polly TTS
❗ Amazon Polly TTS is not yet configured

➑ Google Cloud TTS/STT
❗ Google Cloud TTS/STT is not yet configured

➑ Watson TTS
❗ Watson TTS is not yet configured

➑ Offline TTS
❗ Cannot find bin/flite/flite. You can setup the offline TTS by running: "npm run setup:offline-tts"

➑ Watson STT
❗ Watson STT is not yet configured

➑ Offline STT
❗ Cannot find bin/deepspeech/lm.binary. You can setup the offline STT by running: "npm run setup:offline-stt"

---

.: REPORT :.

➑ Here is the diagnosis about your current setup
βœ” Run
βœ” Run modules
βœ” Reply you by texting
❗ Amazon Polly text-to-speech
❗ Google Cloud text-to-speech
❗ Watson text-to-speech
❗ Offline text-to-speech
❗ Google Cloud speech-to-text
❗ Watson speech-to-text
❗ Offline speech-to-text

βœ” Hooray! Leon can run correctly
  • (optional) Leon package version:

Expected Behavior

Display Leon's web interaction interface as shown on the demo

Actual Behavior

Stuck on the interface's loading screen (gray and loading animation). No error in the logs

How Do We Reproduce?

Extra (like a sample repo to reproduce the issue, etc.)

Server is hosted at home behind a router/ISP box. Ports 1337 and 4242 (great ports btw ;)) have been opened in the server's firewall and added to the NAT rules in the router in case some communication with the outside world was necessary.

Console log when accessing Leon's page:

.: REQUESTING :.
➑ GET /
---
.: REQUESTING :.
➑ GET /css/style.css
---
.: REQUESTING :.
➑ GET /vendor/socket.io/2.0.3/socket.io.js
---
.: REQUESTING :.
➑ GET /js/main.js
---
.: REQUESTING :.
➑ GET /img/mic.svg
---
.: REQUESTING :.
➑ GET /img/logo.svg
---
.: REQUESTING :.
➑ GET /img/favicon.png

Desktop Version

An interesting app, it would be nice to support desktop version via electron.

Slot filling option for modules (flow)

Something that I have really dream about in the night between the 22nd to the 23rd of February.

Feature Use Case

A good example could be the game of "guess the number".

User: Leon, let's play the guess the number game
Leon: Alright, I've chosen a number, you guess.
User: 42
Leon: More
User: 45
Leon: Less
User: 43
Leon: You got me with 3 tries, congrats!

Feature Proposal

Be able to have a dedicated "flow" for each module. As long as the user does not say "stop" or the module does not exit via a trigger, then the flow continue for this specific module.

Dedicated "flow" for each module. Module with an option flow true or false. When true, do not exit the current flow until the user say "stop" or the module exit via a trigger.

Re-version to 0.x.x?

I feel labeling this project as 1.0.0 to be deceptive, especially for a project this large in scope.

1.0.0 to most developers signals a 'ready for production use' mark for a projects lifecycle.

I would suggest following semantic versioning and start with 0.x.x.

Python 3.7 failing in `npm run check`

Specs

  • Leon version: Master 360d102
  • OS (or browser) version: Linux 4.4.0-140-generic
  • Node.js version: node --version -> v11.1.0
  • Complete "npm run check" output:
β•°β”€βž€  npm run check

> [email protected] check /mnt/storage0/overminddl1/leon/leon
> babel-node scripts/run-check.js

β ‹
---

.: CHECKING :.

➑ /bin/sh -c node --version
βœ” v11.1.0

➑ /bin/sh -c npm --version
βœ” 6.4.1

➑ /bin/sh -c pipenv --version
βœ” pipenv, version 2018.11.26

βœ– Error: Command failed: /bin/sh -c pipenv run python --version
Warning: Python 3.6 was not found on your system…
You can specify specific versions of Python with:
  $ pipenv --python path/to/python

And yet running that command manually:

β•°β”€βž€  /bin/sh -c 'pipenv run python --version'
Loading .env environment variables…
Python 3.7.2

Expected Behavior

Python 3.7 should work. Downgrading the system version is... not safe.

Actual Behavior

npm run check is failing the python check.

How Do We Reproduce?

Use the updated version of python.

Python modules

I'm trying to create a new module/feature for leon but I'm having a hard time with 3rd party modules....
whenever I try to import a module I get the error:

βœ– Traceback (most recent call last):
  File "bridges/python/main.py", line 23, in <module>
    main()
  File "bridges/python/main.py", line 18, in main
    m = import_module('packages.' + package + '.' + module)
  File "/home/gmaciel/docker/pessoal/leon/bridges/python/.venv/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "./packages/dateandtime/saytime.py", line 45, in <module>
    import pyPEG
ModuleNotFoundError: No module named 'pyPEG'

Is there any steps I have to follow to get this done?
I already have pyPEG installed with "pip install pypeg2" and "pip3 install pypeg2" commands

Use Docker to simplify install?

Intro

having issue npm install on macOS
image

βœ– Failed to install the Python packages: Error: Command failed: /bin/sh -c pipenv install
Warning: Python 3.6 was not found on your system...
You can specify specific versions of Python with:
  $ pipenv --python path/to/python

Question

Would you guys build a Docker Image to simplify local dev & production running process?

just write a Dockerfile would be enough(I think). or both Dockerfile & docker-compose.yml
it's not difficult at all.

then it can be easily run without all these install process, that would be really helpful

Any thought? Thanks

Docker Install - no modules seems working v2019-03-04

Hello,

I create this issue but the problem can be on my side ;),
I install Leon on my ArchLinux with docker, The build and installation looks good, leon start on Leet's port ;) so when I want to speak with leon It looks like no modules work as we see on the screen capture :)
I think the problem can be on my side, I have archLinux with deepin and docker don't have the reputaton to work good on it :P, I create this issue because if an other person have the same problem as me He can add it to this issue ;)
Don't see it as a big priority, I have a lot of time to see what you do ;)
My english is not perfect as you can see, I speak better french than English but I work on ;)

image

Have a Nice day and be happy !!!!

How to update the packages?

How can I test my packages?

I am trying to add some modules in the Existing package. I have added the quotes module in the leon package.

I added this in leon/data/expressions/en.json


"quote": [
		"Tell me a Quote",
		"Give me a Quote",
	]

Then I have updated the below in ` leon/data/expressions/en.json


"quote":{ 
  	  "quotes":
  	   [
		  "Design is the silent ambassador of your brand. ",
		  "If there is one word I’d like to remove from any conversation about design, it’s β€œpretty.",
	   ]
    }

Then I create a new python file named quote.py. Please see the below code.

import utils

def quote(string):
	"""Leon says some quote"""

	return utils.output('end', 'quotes', utils.translate('quotes'))

I also created a new test python file in the test folder.

But it seems it breaks leon. Wheneve I ask question it gives reply as "Sorry, I don't work correctly!"

How can I test the modules? Do I need to add anything else?

improve the Isitdown module

Expected Behavior

Be able to query the status of some website without the fully qualified domain name.

Actual Behavior

Currently a query like this fails
is gitub up ?
I should ask is github.com up ?

Proposal

May be list some of the most popular websites and treat them with special query as I made just before

Calendar package

Feature Use Case

  • Schedule events (or appointments, phone calls, meetings, etc...)
  • Some operations: Create / Get / Update / Delete
# Example
--> Leon, what do I have planned for tomorrow?
<-- At 13:00 you have a nap

Feature Proposal

Implement a Calendar package with sub-modules for each provider. For example

  • Local calendar, through TinyDB
  • Google Calendar
  • Outlook
  • Etc...

Can't install on linux

Specs

  • Leon version: Commit d0ca87d
  • OS (or browser) version: Linux Mint 19.1 Cinnamon.
  • Node.js version: 8.10.9
  • Complete "npm run check" output: https://pastebin.com/UyZjGtnu
  • (optional) Leon package version:

Expected Behavior

Leon is buildable and runs.

Actual Behavior

Leon is unbuildable and unable to run.

How Do We Reproduce?

Use steps on ReadME with fresh packages from original Mint Install.

Extra (like a sample repo to reproduce the issue, etc.)

Using Bash-It for my linux terminal.

Checker fails with capital letters in url

Specs

  • Leon version:
  • OS (or browser) version: MacOS 10.14.3
  • Node.js version: 11.6.0
  • Complete "npm run check" output:

: CHECKING :.

➑ /bin/sh -c node --version
βœ” v11.6.0

➑ /bin/sh -c npm --version
βœ” 6.5.0

➑ /bin/sh -c pipenv --version
βœ” pipenv, version 2018.11.26

➑ /bin/sh -c pipenv --where
βœ” /Users/maverick/git-local/Personal/leon/bridges/python

➑ /bin/sh -c pipenv run python --version
βœ–
The Python version must be 3.6.x. Please install it: https://www.python.org/downloads

➑ /bin/sh -c pipenv run python bridges/python/main.py en leon randomnumber "Give me a random number"
βœ” {"package": "leon", "module": "randomnumber", "lang": "en", "input": "Give me a random number", "output": {"type": "end", "code": "success", "speech": 74, "options": {}}}

➑ Classifier state
βœ” Found and valid

➑ Amazon Polly TTS
❗ Amazon Polly TTS is not yet configured

➑ Google Cloud TTS/STT
❗ Google Cloud TTS/STT is not yet configured

➑ Watson TTS
❗ Watson TTS is not yet configured

➑ Offline TTS
❗ Cannot find bin/flite/flite. You can setup the offline TTS by running: "npm run setup:offline-tts"

➑ Watson STT
❗ Watson STT is not yet configured

➑ Offline STT
❗ Cannot find bin/deepspeech/lm.binary. You can setup the offline STT by running: "npm run setup:offline-stt"


.: REPORT :.

➑ Here is the diagnosis about your current setup
βœ– Run
βœ– Run modules
βœ– Reply you by texting
❗ Amazon Polly text-to-speech
❗ Google Cloud text-to-speech
❗ Watson text-to-speech
❗ Offline text-to-speech
❗ Google Cloud speech-to-text
❗ Watson speech-to-text
❗ Offline speech-to-text

βœ– Please fix the errors above

  • (optional) Leon package version:

Expected Behavior

Everything works mostly correct, I get proper output using the Checker, and I expect when giving the command
Is GitHub.com up?
to get back

Github is running correctly.```

### Actual Behavior

Is GitHub.com up?

I'm trying to reach Ub.
Ub is up.


### How Do We Reproduce?
Type the commands as above

### Extra (like a sample repo to reproduce the issue, etc.)

Spotify Package

Feature Use Case

  • Play a song
  • Play an album
  • Play songs of an artist
  • Stop music
  • Resume music
  • Set volume
  • Tell what are we listening to
# Example
--> Leon, play The Fat Rat
<-- Ok, playing the calling by TheFatRat

Feature Proposal

Implement a feature to use the Spotify web API to find the music that the use is looking for and play with a device that is available through the API.

Chromecast package

Feature Use Case

  • Starting Youtube playlists on a Chromecast device
  • Controlling a media playing on a Chromecast device

Feature Proposal

Chromecast package allowing to interact with a connected Chromecast device. 2 modules for a start:

Youtube module

Ask Leon to find a playlist on youtube and play it. This performs a search and starts playing the first playlist from the results.

Media control module

Control any media currently playing on the Chromecast. Allows for the following commands:

  • Pause
  • Resume
  • Stop
  • Skip

I have experimented with my Chromecast and Leon and it works quite well with the current NLU, with potential for more accuracy with the coming updates. For the experiment, I used https://github.com/balloob/pychromecast to interact with the Chromecast, and the Youtube Rest API (very similar query to the video download module). I'm eager to work on it and make it a production-ready package if the time is right!

Problem with modules

Hi ! I have an unexpected behavior, in fact when I type hello or any request that the assistant should understand it returns this message

Sorry, it seems I have a problem with the [module (ex: Whoami or Greeting)] of my Leon package!

I don't know if it's due to a bad installation of the packages.

Thanks.

Forecast/weather package

Feature Use Case

Give informations about weather

  • Input : a date(today(default), tomorrow), a city name(external ip geolocalisation(default))
  • Output : weather, temperature and if the weather will remain stable in a few hour
# Example
--> Leon, how's the weather ?
<-- I'm searching weather for Rouen
    Today, clear sky, the temperature at Rouen 18Β°C
    Weather will remain stable

Feature Proposal

Implement a weather package which give information about the weather using external API like openweathermap. We can also use external IP geolocalisation, like that we can avoid asking the localisation.

Marketplace

There should be a "marketplace" to see all packages and modules available for leon, I don't know if it's a problem to paste a link from the competitor, but I think it's self-explanatory how a marketplace should be.

/bin/sh: pipenv: command not found : Can't install pipenv on mac

Specs

  • Leon version: latest ( 11-02-2019 )
  • OS (or browser) version: MAC OS 10.13.6
  • Node.js version: 10
  • Complete "npm run check" output:
.: CHECKING :.
βœ– Error: Command failed: /bin/sh -c pipenv --version
/bin/sh: pipenv: command not found

Expected Behavior

Get Leon Installed

Actual Behavior

The Installation fails.

How Do We Reproduce?

Maybe specific to my machine and how Python is setup

Extra (like a sample repo to reproduce the issue, etc.)

pipenv 
command not found"

But :
pip3 install pipenv says "Requirement already satisfied:"

i created an alias alias pipenv="python3 -m pipenv" to get pipenv working but the install looks for pipenv in /bin/sh

Any idea ? :p

One core to rule them all

Documentation Is:

  • Missing
  • Needed
  • Confusing
  • Not Sure?

Explanation

In the readme we can read the below:
2. With this generic structure, everyone can create his own modules and share them with others. Therefore there is only one core (to govern all of them).

Proposal

The lord of the cores would require this to be written as proposed:
2. With this generic structure, everyone can create his own modules and share them with others. Therefore there is only one core (to rule them all).

Add a tutorial to install on a Raspberry Pi

Documentation Is:

  • Missing
  • Needed
  • Confusing
  • Not Sure?

Explanation

I guess the ideal setup would be to install it on a raspberry pi or similar board, make it listen in the current room, and plug it to your favorite speakers.

Proposal

It might be nice to add some tutorial about small boards install.

Improve NLU for more detailed queries

Be able to subtract a type of entity from a query. Such as date, number, location, etc.

If it uses a tiers but Node.js, it should operate from the core and send the result object to modules via the child process parameters.
Otherwise, it should fully be implemented in the core itself.

I noted some following leads in this Trello card.

Hardware / Scaling requirements

Documentation Is:

  • Missing
  • Needed
  • Confusing
  • Not Sure?

Explanation

Right now it seems unclear to me what amount of hardware will be required to run an instance of leon without actually running it.
The documentation should provide some suggestions of scaling for different use cases.

Proposal

  • add minimum hardware requirements
  • add recommendations for hardware sizing for different use cases and/or amount of users/requests

tinydb failure

Specs

  • Leon version: * Master 360d102
  • OS (or browser) version: Linux 4.4.0-140-generic
  • Node.js version: node --version -> v11.1.0
  • Complete "npm run check" output:
β•°β”€βž€  npm run check     

> [email protected] check /mnt/storage0/overminddl1/leon/leon
> babel-node scripts/run-check.js

β ‹
---

.: CHECKING :.

➑ /bin/sh -c node --version
βœ” v11.1.0

➑ /bin/sh -c npm --version
βœ” 6.4.1

➑ /bin/sh -c pipenv --version
βœ” pipenv, version 2018.11.26

➑ /bin/sh -c pipenv --where
βœ” /mnt/storage0/overminddl1/leon/leon/bridges/python

➑ /bin/sh -c pipenv run python --version
βœ” Python 3.6.8

➑ /bin/sh -c pipenv run python bridges/python/main.py en leon randomnumber "Give me a random number"
βœ– Error: Command failed: /bin/sh -c pipenv run python bridges/python/main.py en leon randomnumber "Give me a random number"
Traceback (most recent call last):                                                                                                    
  File "bridges/python/main.py", line 4, in <module>                                                                                  
    import utils                                                                                                                      
  File "/mnt/storage0/overminddl1/leon/leon/bridges/python/utils.py", line 11, in <module>                                            
    from tinydb import TinyDB, Query, operations                                                                                      
ModuleNotFoundError: No module named 'tinydb'                                                                                         

Expected Behavior

Should not crash.

Actual Behavior

See above in the check. Relevant section:

➑ /bin/sh -c pipenv run python bridges/python/main.py en leon randomnumber "Give me a random number"
βœ– Error: Command failed: /bin/sh -c pipenv run python bridges/python/main.py en leon randomnumber "Give me a random number"
Traceback (most recent call last):                                                                                                    
  File "bridges/python/main.py", line 4, in <module>                                                                                  
    import utils                                                                                                                      
  File "/mnt/storage0/overminddl1/leon/leon/bridges/python/utils.py", line 11, in <module>                                            
    from tinydb import TinyDB, Query, operations                                                                                      
ModuleNotFoundError: No module named 'tinydb'

Running the listed command manually has the same result

How Do We Reproduce?

All I did was spool up a default python 3.6 + npm 11 docker image with a data directory of the git clone, ran pip install pipenv, ran npm install, ran npm run check and the above appeared.

Named entity recognition (trim)

Feature Use Case

User: Leon, add potatoes to my shopping list
Leon: I added potatoes to your shopping list

User: Leon, add go to the gym to my personal list
Leon: I added go to the gym to your personal list

Feature Proposal

Use named entity recognition to be able to build such modules as the Todo List module.

Website reputation feature

Feature Use Case

Ask Leon the reputation of a particular website. For example : « Leon, what is the reputation of github.com ? », « Is the aliexpress.com website safe ? »

Feature

I think this can be easily done, using free APIs like « AlienVault Open Threat Exchange (OTX) », « Google Safe Browsing », « Web Of Trust (WOT) ». Using VirusTotal we can even lunch URL analysis.

I think that this feature can be add to the package « checker ».

Docker URL

Question

If i use docker to deploy Leon it try to connect to localhost:1337.

Is it possible to give leon the correct URL and port?

ToDoList package

hi!
Thanks for your interest in Leon! ❀️
Leon can manage or task with a todo list.
It is can contain 3 list: ToDo/Doing/Done
And we tell him for example I should send email to my mother and tell him I sent email too my mom.
We can set lable for any task for importancy or set a deadline for them
And all task can depend on time.
Hey Leon I should read that article tomorrow
and additinal feature.
it's be great if anyone can implement
I start it in my fork project and merge it

tnx for this project:)

Why "Leon"?

Such an amazing name, what's the story behind the choice?

Broken Leon Package

Specs

  • Leon version: 1.0.0.beta -1
  • OS (or browser) version: Ubuntu 18.10
  • Node.js version: 11.10.0
  • Complete "npm run check" output:

> [email protected] check /home/emperoreby/sideprojects/leon
> babel-node scripts/run-check.js

sh: 1: babel-node: not found
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! [email protected] check: `babel-node scripts/run-check.js`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the [email protected] check script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/emperoreby/.npm/_logs/2019-02-24T12_39_09_469Z-debug.log

Expected Behavior:

Leon should give a proper reply when we ask questions.

Actual Behavior

It is throwing an error like "Sorry, I have an issue with the Greeting module of my Leon package!"

Extra (like a sample repo to reproduce the issue, etc.)

I have updated the .env.sample file as per this.

I got this below error when docker 7th step.


Step 7/10 : RUN npm install
 ---> Running in 145bed53e9ab
npm WARN lifecycle [email protected]~preinstall: cannot run in wd [email protected] node scripts/setup/preinstall.js (wd=/app)

But installed successfully with some warnings.

Please let me know if you need any extra info.
issue

I have attached the Gif regarding the issue. Feel free to take a look.

Docker support?

Is there plans to do Docker builds of Leon? As in provide an official image for it.

leon Can't handle LC_ALL=c

Specs

  • Leon version: 1.0.0-beta.0
  • OS (or browser) version: archlinux
  • Node.js version: v11.10.0
  • Complete "npm run check" output: leon-check.txt

Expected Behavior

# in Leon Interface
> Hello
< Hi! Please, you should sleep to be in shape for your day.

Actual Behavior

# in Leon Interface
> Hello
< Sorry, it seems I have a problem with the Greeting module of my Leon package!
< Sorry, it seems I have a problem with the Greeting module of my Leon package!
< Hi! Please, you should sleep to be in shape for your day.

Error message from the process:

βœ– /bin/sh: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8) in greeting module

How Do We Reproduce?

LC_ALL=c

(c is a valid locale, see https://linux.die.net/man/3/setlocale)

Extra

$ LC_ALL=en_US.UTF8 npm start works

Bridges

Just a quick question how did you imagine Leon to decide which Bridge to call?

I have been tinkering on a go bridge, saddly that one only will work on mac OS and Llnux until golang fixes their plugin package to work with windows.

Speech2Text error

Hi,

I get an error when using STT. I use the offline version of STT and TTS.

Specs

  • Leon version: 1.0.0-beta2
  • OS (or browser) version: openSUSE Tumbleweed
  • Node.js version: docker version
  • Complete "npm run check" output:

`
➜ leon git:(develop) βœ— docker exec -it 97c3b4910a12 sh
/app # npm run check

[email protected] check /app
babel-node scripts/run-check.js

β ‹

.: CHECKING :.

➑ /bin/sh -c node --version
βœ” v10.15.2

➑ /bin/sh -c npm --version
βœ” 6.4.1

➑ /bin/sh -c pipenv --version
βœ” pipenv, version 2018.11.26

➑ /bin/sh -c pipenv --where
βœ” /app/bridges/python

➑ /bin/sh -c pipenv run python --version
βœ” Python 3.6.6

➑ /bin/sh -c pipenv run python bridges/python/main.py en leon randomnumber "Give me a random number"
βœ” {"package": "leon", "module": "randomnumber", "lang": "en", "input": "Give me a random number", "output": {"type": "end", "code": "success", "speech": 57, "options": {}}}

➑ Classifier state
βœ” Found and valid

➑ Amazon Polly TTS
❗ Amazon Polly TTS is not yet configured

➑ Google Cloud TTS/STT
❗ Google Cloud TTS/STT is not yet configured

➑ Watson TTS
❗ Watson TTS is not yet configured

➑ Offline TTS
βœ” Found Flite at bin/flite/flite

➑ Watson STT
❗ Watson STT is not yet configured

➑ Offline STT
βœ” Found DeepSpeech language model at bin/deepspeech/lm.binary


.: REPORT :.

➑ Here is the diagnosis about your current setup
βœ” Run
βœ” Run modules
βœ” Reply you by texting
❗ Amazon Polly text-to-speech
❗ Google Cloud text-to-speech
❗ Watson text-to-speech
βœ” Offline text-to-speech
❗ Google Cloud speech-to-text
❗ Watson speech-to-text
βœ” Offline speech-to-text

βœ” Hooray! Leon can run correctly
➑ If you have some yellow warnings, it is all good. It means some entities are not yet configured
`

  • (optional) Leon package version:

Expected Behavior

No error :-)

Actual Behavior

I get the following error in the docker log:

βœ” New instance ➑ Initializing STT... ➑ Loading model from file bin/deepspeech/output_graph.pb... (node:23) UnhandledPromiseRejectionWarning: TypeError: DeepSpeech.Model is not a constructor at Object.parser.init.args [as init] (/app/server/dist/stt/deepspeech/parser.js:107:13) at Stt.init (/app/server/dist/stt/stt.js:55:27) at Socket.socket.on (/app/server/dist/core/server.js:193:17) at Socket.emit (events.js:189:13) at /app/node_modules/socket.io/lib/socket.js:528:12 at process._tickCallback (internal/process/next_tick.js:61:11) (node:23) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 3)

Cheers
BjΓΆrn

Time module

Feature Use Case

Leon, what time is it?
- It's quarter past ten.

Feature Proposal

Implement a new module / package.

Allowing HTML output

Feature Use Case

When we need modules returns HTML answers, such as the Trend package with the GitHub module, we need to display the repositories links.

Feature Proposal

Simply allow the client to understand HTML when it displays the answers. We also need to stripe HTML tags for the TTS.

66 Vulnerabilities found in npm dependencies

Specs

  • Leon version: 1.0.0-beta.0
  • OS (or browser) version: Chrome 71 | MacOS
  • Node.js version:10.15.0
  • Complete "npm run check" output: N/A

Actual Behavior

After running npm install, I got the following output:

added 1554 packages from 828 contributors and audited 31148 packages in 141.769s
found 66 vulnerabilities (65 low, 1 high)

If you'd like, I can paste the output of the command npm audit. Do you have any plans to update the dependencies using something like greenkeeper?

Error: Command failed: /bin/sh -c pipenv --version

npm run check

.: CHECKING :.

βœ– Error: Command failed: /bin/sh -c pipenv --version
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8)
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8)
Traceback (most recent call last):
File "/usr/bin/pipenv", line 11, in
load_entry_point('pipenv==2018.11.15.dev0', 'console_scripts', 'pipenv')()
File "/usr/lib64/python3.6/site-packages/pipenv/vendor/click/core.py", line 764, in call
return self.main(*args, **kwargs)
File "/usr/lib64/python3.6/site-packages/pipenv/vendor/click/core.py", line 696, in main
_verify_python3_env()
File "/usr/lib64/python3.6/site-packages/pipenv/vendor/click/_unicodefun.py", line 124, in _verify_python3_env
' mitigation steps.' + extra
RuntimeError: Click will abort further execution because Python 3 was configured to use ASCII as encoding for the environment. Consult https://click.palletsprojects.com/en/7.x/python3/ for mitigation steps.

This system lists a couple of UTF-8 supporting locales that
you can pick from. The following suitable locales were
discovered: aa_DJ.utf8, aa_ER.utf8, aa_ET.utf8, af_ZA.utf8, agr_PE.utf8, ak_GH.utf8, am_ET.utf8, an_ES.utf8, anp_IN.utf8, ar_AE.utf8, ar_BH.utf8, ar_DZ.utf8, ar_EG.utf8, ar_IN.utf8, ar_IQ.utf8, ar_JO.utf8, ar_KW.utf8, ar_LB.utf8, ar_LY.utf8, ar_MA.utf8, ar_OM.utf8, ar_QA.utf8, ar_SA.utf8, ar_SD.utf8, ar_SS.utf8, ar_SY.utf8, ar_TN.utf8, ar_YE.utf8, as_IN.utf8, ast_ES.utf8, ayc_PE.utf8, az_AZ.utf8, az_IR.utf8, be_BY.utf8, bem_ZM.utf8, ber_DZ.utf8, ber_MA.utf8, bg_BG.utf8, bhb_IN.utf8, bho_IN.utf8, bho_NP.utf8, bi_VU.utf8, bn_BD.utf8, bn_IN.utf8, bo_CN.utf8, bo_IN.utf8, br_FR.utf8, brx_IN.utf8, bs_BA.utf8, byn_ER.utf8, ca_AD.utf8, ca_ES.utf8, ca_FR.utf8, ca_IT.utf8, ce_RU.utf8, chr_US.utf8, cmn_TW.utf8, crh_UA.utf8, cs_CZ.utf8, csb_PL.utf8, cv_RU.utf8, cy_GB.utf8, da_DK.utf8, de_AT.utf8, de_BE.utf8, de_CH.utf8, de_DE.utf8, de_IT.utf8, de_LI.utf8, de_LU.utf8, doi_IN.utf8, dsb_DE.utf8, dv_MV.utf8, dz_BT.utf8, el_CY.utf8, el_GR.utf8, en_AG.utf8, en_AU.utf8, en_BW.utf8, en_CA.utf8, en_DK.utf8, en_GB.utf8, en_HK.utf8, en_IE.utf8, en_IL.utf8, en_IN.utf8, en_NG.utf8, en_NZ.utf8, en_PH.utf8, en_SC.utf8, en_SG.utf8, en_US.utf8, en_ZA.utf8, en_ZM.utf8, en_ZW.utf8, eo.utf8, es_AR.utf8, es_BO.utf8, es_CL.utf8, es_CO.utf8, es_CR.utf8, es_CU.utf8, es_DO.utf8, es_EC.utf8, es_ES.utf8, es_GT.utf8, es_HN.utf8, es_MX.utf8, es_NI.utf8, es_PA.utf8, es_PE.utf8, es_PR.utf8, es_PY.utf8, es_SV.utf8, es_US.utf8, es_UY.utf8, es_VE.utf8, et_EE.utf8, eu_ES.utf8, fa_IR.utf8, ff_SN.utf8, fi_FI.utf8, fil_PH.utf8, fo_FO.utf8, fr_BE.utf8, fr_CA.utf8, fr_CH.utf8, fr_FR.utf8, fr_LU.utf8, fur_IT.utf8, fy_DE.utf8, fy_NL.utf8, ga_IE.utf8, gd_GB.utf8, gez_ER.utf8, gez_ET.utf8, gl_ES.utf8, gu_IN.utf8, gv_GB.utf8, ha_NG.utf8, hak_TW.utf8, he_IL.utf8, hi_IN.utf8, hif_FJ.utf8, hne_IN.utf8, hr_HR.utf8, hsb_DE.utf8, ht_HT.utf8, hu_HU.utf8, hy_AM.utf8, ia_FR.utf8, id_ID.utf8, ig_NG.utf8, ik_CA.utf8, is_IS.utf8, it_CH.utf8, it_IT.utf8, iu_CA.utf8, ja_JP.utf8, ka_GE.utf8, kab_DZ.utf8, kk_KZ.utf8, kl_GL.utf8, km_KH.utf8, kn_IN.utf8, ko_KR.utf8, kok_IN.utf8, ks_IN.utf8, ku_TR.utf8, kw_GB.utf8, ky_KG.utf8, lb_LU.utf8, lg_UG.utf8, li_BE.utf8, li_NL.utf8, lij_IT.utf8, ln_CD.utf8, lo_LA.utf8, lt_LT.utf8, lv_LV.utf8, lzh_TW.utf8, mag_IN.utf8, mai_IN.utf8, mai_NP.utf8, mfe_MU.utf8, mg_MG.utf8, mhr_RU.utf8, mi_NZ.utf8, miq_NI.utf8, mjw_IN.utf8, mk_MK.utf8, ml_IN.utf8, mn_MN.utf8, mni_IN.utf8, mr_IN.utf8, ms_MY.utf8, mt_MT.utf8, my_MM.utf8, nan_TW.utf8, nb_NO.utf8, nds_DE.utf8, nds_NL.utf8, ne_NP.utf8, nhn_MX.utf8, niu_NU.utf8, niu_NZ.utf8, nl_AW.utf8, nl_BE.utf8, nl_NL.utf8, nn_NO.utf8, nr_ZA.utf8, nso_ZA.utf8, oc_FR.utf8, om_ET.utf8, om_KE.utf8, or_IN.utf8, os_RU.utf8, pa_IN.utf8, pa_PK.utf8, pap_AW.utf8, pap_CW.utf8, pl_PL.utf8, ps_AF.utf8, pt_BR.utf8, pt_PT.utf8, quz_PE.utf8, raj_IN.utf8, ro_RO.utf8, ru_RU.utf8, ru_UA.utf8, rw_RW.utf8, sa_IN.utf8, sah_RU.utf8, sat_IN.utf8, sc_IT.utf8, sd_IN.utf8, se_NO.utf8, sgs_LT.utf8, shn_MM.utf8, shs_CA.utf8, si_LK.utf8, sid_ET.utf8, sk_SK.utf8, sl_SI.utf8, sm_WS.utf8, so_DJ.utf8, so_ET.utf8, so_KE.utf8, so_SO.utf8, sq_AL.utf8, sq_MK.utf8, sr_ME.utf8, sr_RS.utf8, ss_ZA.utf8, st_ZA.utf8, sv_FI.utf8, sv_SE.utf8, sw_KE.utf8, sw_TZ.utf8, szl_PL.utf8, ta_IN.utf8, ta_LK.utf8, tcy_IN.utf8, te_IN.utf8, tg_TJ.utf8, th_TH.utf8, the_NP.utf8, ti_ER.utf8, ti_ET.utf8, tig_ER.utf8, tk_TM.utf8, tl_PH.utf8, tn_ZA.utf8, to_TO.utf8, tpi_PG.utf8, tr_CY.utf8, tr_TR.utf8, ts_ZA.utf8, tt_RU.utf8, ug_CN.utf8, uk_UA.utf8, unm_US.utf8, ur_IN.utf8, ur_PK.utf8, uz_UZ.utf8, ve_ZA.utf8, vi_VN.utf8, wa_BE.utf8, wae_CH.utf8, wal_ET.utf8, wo_SN.utf8, xh_ZA.utf8, yi_US.utf8, yo_NG.utf8, yue_HK.utf8, yuw_PG.utf8, zh_CN.utf8, zh_HK.utf8, zh_SG.utf8, zh_TW.utf8, zu_ZA.utf8

Click discovered that you exported a UTF-8 locale
but the locale system could not pick up from it because
it does not exist. The exported locale is "C.UTF-8" but it
is not supported

pipenv cannot find python path

Specs

  • Leon version: last version (i download it today)
  • OS (or browser) version: Windows10 - 64bit
  • Node.js version: 10.15.0
  • Complete "npm run check" output:
    ➑ C:\WINDOWS\system32\cmd.exe /q /s /c "node --version"
    βœ” v10.15.0

➑ C:\WINDOWS\system32\cmd.exe /q /s /c "npm --version"
βœ” 6.4.1

➑ C:\WINDOWS\system32\cmd.exe /q /s /c "pipenv --version"
βœ” pipenv, version 2018.11.26

βœ– Error: Command failed: C:\WINDOWS\system32\cmd.exe /q /s /c "pipenv run python --version"
Warning: Python 3.6 was not found on your systemοΏ½
You can specify specific versions of Python with:
$ pipenv --python path\to\python

Expected Behavior

I expected that pipenv found the python. but seems pipenv cannot find it. I also add python to PATH variable and when I run where python.exe and the result is:
C:\Users\Home\AppData\Local\Programs\Python\Python37-32\python.exe

Actual Behavior

βœ– Error: Command failed: C:\WINDOWS\system32\cmd.exe /q /s /c "pipenv run python --version"
Warning: Python 3.6 was not found on your systemοΏ½
You can specify specific versions of Python with:
$ pipenv --python path\to\python

How Do We Reproduce?

Extra (like a sample repo to reproduce the issue, etc.)

nothing


I search too much but I cannot fix this error! can you help me to fix this?

Trends Package

One module for each platform.

Modules

Product Hunt module

Leon, what's trending on Product Hunt?

GitHub module

Leon, what's trending on GitHub?

Might be related to a another package.

Custom Commands

Hello,

I have seen many of these kinds of AI/Assistants.

What I am always looking for though, is a way to get them to perform specific actions on specific commands. I never see documentation on them. This is the kind of thing I mean:

"Leon, turn the lights on in the kitchen." == Leon will execute a pre-defined script I have to do this task.
"Leon, wake up MOHAWK." == Leon can execute a pre-defined script which sends a magic packet to a remote PC named MOHAWK.
"Leon, open my development tools." == Executes a simple batch file which launches App1, App2, App3.

Unable to install it in ubuntu 18.10

Specs

  • Leon version: commit d0ca87d
  • pipenv version - 2018.11.26
  • npm version - 5.8.0
  • python version - 3.6.7
  • OS - Ubuntu 18.10

Expected Behaviour
Leon Should build successfully

Actual Behaviour
Throwed an error While installing the python package

Error Message
βœ– Failed to install the Python packages: Error: Command failed: /bin/sh -c pipenv install

Any help would be appreciated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.