Giter Site home page Giter Site logo

opla / opla-v2 Goto Github PK

View Code? Open in Web Editor NEW
51.0 7.0 8.0 17.15 MB

:rocket: :robot: Your open chatbot builder. Start here to install Opla. :sparkles:

Home Page: https://opla.ai

License: GNU General Public License v2.0

Dockerfile 0.21% Shell 1.44% JavaScript 92.29% HTML 0.15% SCSS 5.91%
chatbot builder react redux es2018 nodejs javascript docker kubernetes ai nlp virtual-assistant

opla-v2's Introduction

[Deprecated] Opla

An amazing solution for creating chatbots 🤖 or virtual assistants without coding.
FULLY opensource

CircleCI

FeaturesHow To installContributingLicense

Actual release is : v0.2 - Blooming Barboiry

Features

We want to create the most powerful and easiest tool for chatbot and virtual assistants creation, nurturing, analyzing and management. It gives you a total control on your robot, using transparent and free technology.

It combines:

  • A cool graphical interface
  • In-house NLP engine embedded 🔥 (openNLX), transparency : no dependencies to any NLP api nor black tricks
  • Connectors to publish to Webchat and Facebook Messenger (soon available other platforms)
  • webhooks and plugins integration
  • Playground to instantly test your intents
  • Analytics

We are working hard to add new features:

  • Entities editor
  • An interactive flow and scenarios display
  • A better playground debugger
  • other conversational UI components
  • And more candies
  • You could also request a feature

Development

Opla is framed by a frontend and a backend. For details about development in each of those, please see front/README.md and backend/README.md.

We are using Javascript ES2018+, React, Node.js and other top notch tools.

How to install

Run locally with docker-compose

The quickest way to run opla locally is to follow this guide

Deploy to your own Kubernetes cluster

Requirements

You will need :

  • (required) a Kubernetes cluster with LoadBalancer support.
  • (required) nginx-ingress-controller with an IP. Even better if you have a domain name pointing to that IP.
  • (required) kubectl locally
  • (required) myke (a yaml version of make/Makefile) locally. See here for installation.`
  • (required) tiller, helm
  • (optional) cert-manager for let's encrypt certificates, if needed.
  • (optional) external-storage/snapshots for snapshots and backups of your database, if you need them.

Helm charts

Helm charts get published at https://opla.github.io/opla You can fetch charts this way :

helm repo add opla https://opla.github.io/opla
helm repo update
helm fetch opla/opla-front opla/opla-backend

Install and deploy with helm You can then install opla like any other helm application, and edit configuration by specifying your values.yaml or using helm --set ....

export API_DOMAIN=<YOUR_API_DOMAIN>
export FRONT_DOMAIN=<YOUR_FRONT_DOMAIN>
export NAMESPACE=test #to change if needed 
helm upgrade --install --namespace ${NAMESPACE} \
  --set namespace=${NAMESPACE} \
  --set api.domain=${API_DOMAIN} \
  --set front.domain=${FRONT_DOMAIN} \
  front opla/opla-front

helm upgrade --install --namespace ${NAMESPACE} \
  --set namespace=${NAMESPACE} \
  --set api.domain=${FRONT_DOMAIN} \
  backend opla/opla-backend

You can use --set api.domain=$IP.xip.io --set front.domain=$IP.xip.io as domain name if you only have an IP for your loadbalancer.

Your app is then available at http://${NAMESPACE}.${FRONT_DOMAIN}

In general, if you need more details about how we deploy opla, you can have a look at our CircleCI config.yaml, where we run commands to deploy it.

Contributing

Please, see the CONTRIBUTING.md file.

Contributor Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. See CODE_OF_CONDUCT.md file.

License

opla-front is released under the GPL v2.0+ License. See the bundled LICENSE file for details.

opla-v2's People

Contributors

agardou avatar arnaud-moncel avatar craaftx avatar damien-citaire avatar dependabot[bot] avatar dta-63 avatar e1000y avatar jeffladiray avatar julienusson avatar licarth avatar lodelestra avatar lunika avatar mikbry avatar remipassmoilesel avatar thenkei avatar willdurand avatar williamdaconceicao 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

opla-v2's Issues

Remove selectedIntent store duplication

The store app.selectedIntent is a duplication of app.intents[index].

Expected:

use redux mapStateToProps to load app.intents[selectedIntentIndex] as props.selectedIntent

Docker compose

From @mikbry on February 24, 2018 18:36

Create a commandline simple install using docker composer. It will install opla-front and opla-back and configure them. See opla-front or backend ./bin directory how to start

Copied from original issue: Opla/community-edition#1

less verbose deployment notifications

  • Rearrange workflow to deploy frontend and backend together in one job.
  • make notifications less verbose, and link to the workflow instead of the individual jobs

FACTORY> Picture > no upload of a picture available

From @julieopla on May 17, 2018 12:31

As a user I want to upload directly my logo from the admin section in order to personalize my chatbot and test its rendering in the playground

CURRENTLY
capture d ecran 2018-05-17 a 14 28 23

As mentionned in issue 91 the picture doesn't show at all
I don't think it's manageable by the user anyway

SHOULD BE
Allow upload of correct size and format for a bot picture and let the user do it if wanted

Copied from original issue: Opla/community-edition#22

CREATE FORM> Confirmation account creation

From @julieopla on May 16, 2018 14:2

As a user I want to know if the account I just created is valid so that I can connect to the tool and start creating my chatbot

CURRENTLY
Once the form is completed, "brutal" redirection to the connexion page with no confirmation of the account creation

SHOULD BE
Add a message to the connexion page once the account is created saying something like "your account has been created, you can now connect with this page and create your bot!"

Copied from original issue: Opla/community-edition#11

Docker compose

From @mikbry on February 24, 2018 18:36

Create a commandline simple install using docker composer. It will install opla-front and opla-back and configure them. See opla-front or backend ./bin directory how to start

Copied from original issue: Opla/community-edition#1

Builder>Add features>Intents' list

CURRENTLY

  1. Long intents' list
  2. I have to scroll all the way up to create another intent
    image

SHOULD BE

  1. Option to agrupate intents
  2. Fix the intent's add button/bar (+) while it's opened.

All this as a ux recommendation. It makes the building process way easier.

/front/package.json : wrong url

Since the migration url in package.json are wrong:

  "homepage": "https://github.com/Opla/front",
  "bugs": "https://github.com/Opla/front/issues",
  "repository": "github:opla/front",

Should be

  "homepage": "https://github.com/Opla/opla",
  "bugs": "https://github.com/Opla/opla/issues",
  "repository": "github:opla/opla",

Get rid of OPLA_BACKEND_DOMAIN

What is the purpose of this env variable / config entry in default.json ?

It apparently tells the frontend where our backend api sits. From experience, this leads to hell in deployments configurations, etc.

Alternative : just use the relative api/ in frontends. We will take care of routing that properly.

Enhance e2e tests : use cypress

From @licarth on August 6, 2018 8:2

Currently, our e2e tests are minimalistic. A POST request with cURL against the backend to check that we are able to create a user. See https://github.com/Opla/backend/blob/master/myke.yml#L51

To make this more reliable, we could use some more evolved tools to check user scenarii directly from the frontend.

Example of scenario :

  • create a new user
  • login
  • create an intent
  • check that bot's reply is respecting the intent
  • publish the bot
  • try it

Copied from original issue: Opla/front#283

Intent previous implementation

Intent previous is ready on openNLX. We need to implement it on the front.
screen shot 2018-06-27 at 19 04 36
intent.previous is an array of available intent.id or a single intent.id
We display using chips with a "#" and the intent name
We need to find a way to display autocompletion list of intent's name when we type

Builder : entities are coming !

We need to add entities to the builder:
screen shot 2018-07-12 at 11 18 35

  • Systems : display all system entities and we could activate them (any, email, date, number, ...)
  • A non system entity is a list of terms and each terms are associated to synonyms

[WIP] Feature/install script

From @licarth on May 4, 2018 12:12

Please don't merge this before #3.

Single line script to run Opla locally with docker and docker-compose.

  • checks currently available versions of docker docker-compose.
  • installs docker and docker-compose if missing.
  • builds and runs opla back and front.
  • opens browser at the end with opla front.

Todo

  • download and extract bundle
  • run docker-compose up
  • adapt travis tests.
  • make ENV variables configurable through prompts.
  • check currently installed versions. Warn and exit if too old. Need docker-compose yaml v2 support.
  • add OSX travis job and adapt script to make it green (fix mktemp and potential other issues) Won't do
  • add linux without docker and docker-compose job to test their installation by script
  • make Yes default answer to questions
  • open opla front in browser at the end of install

Manual testing

  • @mikbry Test on Mac that temp dir works fine
  • @mikbry Test on Mac that opla runs fine
  • @mikbry Test on Mac that it opens browser

Enhancements

  • Add error handling/reporting via HTTP calls, like done in https://install.sandstorm.io/, to get statistics about who installs opla, and the success/error rate.

Copied from original issue: Opla/community-edition/pull/4

Metrics : don't include playground conversation if more than 1 conversation

Actually

If you go to Front :

  • you create a bot
  • chitchat in playground
  • go to dashboard

-> It displays data from playground

  • If you publish to webchat
  • and start conversation in it.
  • go to dashboard

-> Data from all conversations are displayed, including playground.

TODO

We need to exclude playground's conversation if it is not the only one in metrics calculations.

BUILDER> Impossible to insert something between 2 entities

From @julieopla on June 12, 2018 7:35

CURRENTLY
Once two entities are next to one another, you can't dissociate them to enter something in between
capture d ecran 2018-06-12 a 09 31 02

SHOULD BE
You should be able to click in between and add something (text, space, other entity...etc)

Copied from original issue: Opla/community-edition#33

Backend logs verbosity. Leak.

Seen in the backend logs :

2018-05-28T17:32:43.033Z - info: contextParams= agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG, agentId=vFFymXRB97xsxkYJKl0BJ439Gps1qV8hCLEgPH9ICqmQe8Tw, parentName=default, name=KlLEkPSNN4acDS2hTZ3BLtxSAwbw39xAEXvc3tBVXpL3oNZG,

Every message seems to produce one more entry and output all the preceeding ones. That's some form of leak.

Builder> Examples disturb administration, has to be deleted

CURRENTLY
When creating an intent, in input / output, examples are displayed (Intent / I don't understand). They don't disappear when you start administrating your intent so you have to delete them everytime.

  • if you don't delete the example in the output section you are not able to add a condition on the output

capture d ecran 2018-08-22 a 17 47 12

SHOULD BE
Either :

  • delete the examples
  • make them disappear automatically when the administration has started
  • try to find something else to show that there is a field for creating and one for modifying existing content

CREATE> IMPORT> Unclear result of the import on the Create page

From @julieopla on June 12, 2018 7:7

CURRENTLY
Once you import your file (json or csv) in the Create part, when you come back to the page, the "Empty" section gets highlighted, so you might think that you're going to start your chatbot empty
capture d ecran 2018-06-12 a 09 02 52

SHOULD BE
A message should tell the user that the import was correctly made, moreover, maybe an other icon could appear named "Your import" or with the file's name

Copied from original issue: Opla/community-edition#30

Factory > "Save" button doesn't seem to work

CURRENTLY
When you click the "Save" Button on the admin section, the modification made doesn't seem to be saved when you come back on the section
capture d ecran 2018-08-22 a 17 28 20
capture d ecran 2018-08-22 a 17 28 26

SHOULD BE
First of all when clicking on the save button a confirmation message should be displayed + the modifications should be saved

Builder>add to current input>adds blank field

CURRENTLY
When in the Playground and you type an input that has not been added, you click on "add to current intent's input" to add it. Currently, it adds a blank field.
capture d ecran 2018-08-23 a 14 06 33

SHOULD BE
The element in the playground should be added in the input list

Intent topic inline implementation

Topic is implemented in openNLX.
We need to edit inline the topic.
If no topic a star is displayed
We need a list auto completion from already created topics

Intent output link are not rendered properly

In bot builder, for an intent output with an html link in it, it's not render properly in the action editor.
The link is parsed as a "/a" action entity type for exemple.

screen shot 2018-05-29 at 10 40 03

But it's ok in the playground chat.

Builder > Playground > automatic scroll doesn't work

CURRENTLY
When testing the conversation in the playground, the conversation get stuck at the top and doesn't scroll automatically to show the last answer at the end of the window
capture d ecran 2018-08-21 a 11 00 31

SHOULD BE
The Playground should show the last tested steps

Playground : goto intent's input/ouput item

In output message, the edit icon and the link #intent.output.x should display the selected intent and select output item
screen shot 2018-07-05 at 12 18 57
In input message, the link #intent.input.x should display the selected intent and select input item
screen shot 2018-07-05 at 12 19 13
The link icon is another issue

BUILDER>Import> French text

From @julieopla on May 18, 2018 8:10

CURRENTLY
capture d ecran 2018-05-18 a 10 09 24
Some items are in french language

SHOULD BE
Put that text in english

Copied from original issue: Opla/community-edition#27

ADMIN> no confirmation when saving edition

From @julieopla on May 17, 2018 12:44

As a user I want to know if the editing I've made on my profile are saved so that I don't have to re-enter these information again and go check another part of the tool

CURRENTLY
capture d ecran 2018-05-17 a 14 43 23

When clicking on "SAVE" nothing happens and you're tempted to click on it again just to be sure
To make sure your edition is saved you have to get out of the section and come back in it

SHOULD BE
A message should tell the user the editing is saved

Copied from original issue: Opla/community-edition#23

backend is not resilient to new application creation

To Reproduce

Expected

Talking to the bot should work without a restart

Messenger: add Slack provider

From Facebook Messenger provider code, we create a Slack connector.

See
https://api.slack.com/

Note
For the webhook callback we need an https connection, for test/dev you need to use LocalTunnel see Zoapp-backend how it works.

Log levels in backend

Seen in the backend logs

2018-05-28T17:36:42.616Z - info: OpenNLX onDispatch:  bot createBot
2018-05-28T17:36:42.620Z - info: data.intents id=5d6f37cc-fcb7-404d-81eb-a97481581d09, name=test pbl 5, intents=[id=bEi6l7q0MytDach6OcvYvFhLG704lHYZyVE3sxOwfckWW8Nx, botId=D4Dn3UnTQtangYQtYwRwQIFj7uIaQslOfSYZUV5o4CLJjBMX, name=DATE NAISSANCE, input=[né quand, date de naissance, né, date ou il est né, date à laquelle il est né, quand il est né, quand né, né quand *, date de naissance *, né *, date ou il est né *, date à laquelle il est né *, quand il est né *, quand né *, * né quand *, * date de naissance *, * né *, * date ou il est né *, * date à laquelle il est né *, * quand il est né *, * quand né *, * né quand, * date de naissance, * né, * date ou il est né, * date à laquelle il est né, * quand il est né, * quand né], output=[La date de naissance de{{joueurs}}est le 6 décembre 1995. <br/>Souhaitez vous une autre information ?, <<question=autre>>], id=E0UxxeEepsXmu7hl1Cp9Ez3DgHRAjFQejGRIQskWnMaIXb9w, botId=D4Dn3UnTQtangYQtYwRwQIFj7uIaQslOfSYZUV5o4CLJjBMX, name=OUI JOUEURS, input=[oui, ya, oui, yah, yop, yala, o, y, yup, bien sur, ok, yep, ys, ha, da, great, thanks, absolutely, noproblemo, do, do it, a priori, A priori oui, Bien sur, c'est ca, c'est correct, C'est exactement ca, C'est parfait, C'est parfaitement exact, C'est sur, Ca marche, correct, D'acc, D'accord, En effet, evidamment, Exactement, il me semble, je crois, je pense, Ok c'est ca, ouais, ouep, oui, oui bien sur, Oui c'est ca, Oui d'accord, Oui je crois, Oui je pense, Yes, yes, yop, yep, exact, exactly, si, of course, ca c'est sur, ça c'est sur, ca c'est sûr, ça c'est sûr, ok, ok ok, oui oui, ouaip, carément, carrément, carrement, volontiers, volontiers, oui merci, evidemment, évidemment, si, sisi, si si, salut, d'ac, dac, daccord, d'accord, k, kk, kay, klr, clair, klair, oki, ouer, ué, uè, vi, mui, moui, wé, woué, yep, ouep, ouè, oué, oé, oè, ui, wé, uep, vui, voui, vouis, yup, wi, we, wé, wè, wai, dak, affirmatif, amen, o, O, oui *, ya *, oui *, yah *, yop *, yala *, o *, y *, yup *, bien sur *, ok *, yep *, ys *, ha *, da *, great *, thanks *, absolutely *, noproblemo *, do *, do it *, a priori *, A priori oui *, Bien sur *, c'est ca *, c'est correct *, C'est exactement ca *, C'est parfait *, C'est parfaitement exact *, C'est sur *, Ca marche *, correct *, D'acc *, D'accord *, En effet *, evidamment *, Exactement *, il me semble *, je crois *, je pense *, Ok c'est ca *, ouais *, ouep *, oui *, oui bien sur *, Oui c'est ca *, Oui d'accord *, Oui je crois *, Oui je pense *, Yes *, yes *, yop *, yep *, exact *, exactly *, si *, of course *, ca c'est sur *, ça c'est sur *, ca c'est sûr *, ça c'est sûr *, ok *, ok ok *, oui oui *, ouaip *, carément *, carrément *, carrement *, volontiers *, volontiers *, oui merci *, evidemment *, évidemment *, si *, sisi *, si si *, salut *, d'ac *, dac *, daccord *, d'accord *, k *, kk *, kay *, klr *, clair *, klair *, oki *, ouer *, ué *, uè *, vi *, mui *, moui *, wé *, woué *, yep *, ouep *, ouè *, oué *, oé *, oè *, ui *, wé *, uep *, vui *, voui *, vouis *, yup *, wi *, we *, wé *, wè *, wai *, dak *, affirmatif *, amen *, o *, O *], output=[type=condition, children=[name=question, value=savoir, text=Que voulez vous savoir sur{{joueurs}}?, type=item, name=question, value=undefined, text=Quel Joueur ?, type=item, name=question, value=autre, text=OK !, type=item]], id=o6Eyqqt9kCg9DlHsoaxsuKm6yKbNyPKWmFecZRdsMelnlPjM, botId=D4Dn3UnTQtangYQtYwRwQIFj7uIaQslOfSYZUV5o4CLJjBMX, name=bonjour, input=[bonjour, salut, oui, yo, hello, hey, helo, hola, ola, he, hlo, good morning, good evening, hello, hi, slt, slut, bijour, bjr, bnjr, salamalec, hi, hello, helo, bonjou, bijour, bien le bonjour, bj, BJ, ola, allo, allo quoi, ca va ?, ça va ?, cava ?, çava ?, bjr, coucou, koukou, kikoo, kikou, hola, rebonjour, re-bonjour, slt, slu, lu, lut, slt, salut, cc, coucou, re, re-bonjour, re-salut, salut, bienvenue, bonsoir, bonne journée, bonsoir bot, hello toi, bonsoir :-), hey bro, Hey fréro!, comment t'appelles tu ?, Bonjour :-), yo ma gueule, Hello bot, coucouuu, wesh gros, couco, Kikou, bonjou, Yop, yo man, wesh wesh, wesh, waiche, Sup, Salutation, salut loustic, salu toi, salu, Ouech cousin, Lu, kikoo, Je vous salue M. le bot, je vous salue, Je veux te dire bonjour, Hi !, hey, Bianca, Hey you, hey yo, Greetings, Enchanté, Cordialement, commençons, commencer, Buenos Dias, bonzour, Bonjour à toi, bonjour vous, bonjour monsieur, Bonjour Madame, bonjour l'ami, Bijour, B'jour, Aloa, Mes sincères salutations, salut salut, yo, Yo!, hello, salut, salutations, bonjour bonjour, Bien le bonjour, Salut le bot, bonjour *, salut *, oui *, yo *, hello *, hey *, helo *, hola *, ola *, he *, hlo *, good morning *, good evening *, hello *, hi *, slt *, slut *, bijour *, bjr *, bnjr *, salamalec *, hi *, hello *, helo *, bonjou *, bonjour *, bijour *, bien le bonjour *, bj *, BJ *, ola *, allo *, allo quoi *, ca va ? *, ça va ? *, cava ? *, çava ? *, bjr *, coucou *, koukou *, kikoo *, kikou *, hola *, rebonjour *, re-bonjour *, slt *, slu *, lu *, lut *, slt *, salut *, cc *, coucou *, re *, re-bonjour *, re-salut *, salut *, bienvenue *, bonjour *, bonsoir *, bonne journée *, bonsoir bot *, hello toi *, bonsoir :-) *, hey bro *, Hey fréro! *, comment t'appelles tu ? *, Bonjour :-) *, yo ma gueule *, Hello bot *, coucouuu *, wesh gros *, couco *, Kikou *, bonjou *, Yop *, yo man *, wesh wesh *, wesh *, waiche *, Sup *, Salutation *, salut loustic *, salu toi *, salu *, Ouech cousin *, Lu *, kikoo *, Je vous salue M. le bot *, je vous salue *, Je veux te dire bonjour *, Hi ! *, hey, Bianca *, Hey you *, hey yo *, Greetings *, Enchanté *, Cordialement *, commençons *, commencer *, Buenos Dias *, bonzour *, Bonjour à toi *, bonjour vous *, bonjour monsieur *, Bonjour Madame *, bonjour l'ami *, Bijour *, B'jour *, Aloa *, Mes sincères salutations *, salut salut *, yo *, Yo! *, hello *, salut *, salutations *, bonjour! *, bonjour bonjour *, Bien le bonjour *, Salut le bot *], output=[Bonjour.<br/>Veux tu des infos sur un joueur en particulier ?{{question=*}}], id=vNA4OcEUxa9YmczmmE49ufcJo0Wy6JS9APqtGFai1B0bfBMj, botId=D4Dn3UnTQtangYQtYwRwQIFj7uIaQslOfSYZUV5o4CLJjBMX, name=JOUEURS, output=[Tu veux bien des infos sur {{joueurs=*}}, <<question=savoir>>], input=[joueurs], id=DKXxLdfJ3yhiPMQsg9O59wQ3sp7fdzswb2cjlOWCN5wZyT4v, botId=D4Dn3UnTQtangYQtYwRwQIFj7uIaQslOfSYZUV5o4CLJjBMX, name=HABITATION, output=[L'adresse de {{joueurs}}est : 24 chemin du petit Bois. <br/>Mais je ne peux pas te donner la ville...trop indiscret !<br/>As tu une autre question ?, <<question=savoir>>], input=[hab], id=R8fvQrxrCzjoMmzqwkKszGjo1ZTdJvvPxrghqIltLTfnDt7s, botId=D4Dn3UnTQtangYQtYwRwQIFj7uIaQslOfSYZUV5o4CLJjBMX, name=au revoir, input=[au revoir, bye, salut, ciaio, a ciao, ciao ciao, bye bye, a ciao bonsoir, ok salut, ok bye, adieu, a12c4, alp, a+, a plus, a +, a un de ces, slt, salut, @+, @plus, @ plus, CU, au revoir, à bientôt, à tout à l'heure, A plus bot!, A++, bonne semaine, Excellente journee, Tchao, bonne journee, Bon week end, Bye-Bye, Bonne journee, Je te souhaite un bon week-end, adieu, je te dis à la prochaine, On se dit à demain, Ciao, A la semaine prochaine !, à demain, à très vite, salut, Tcho, Ok merci bonne nuit, je pars, merci, je m'endors, bonne nuit, je dois m'en aller, J'en ai marre, j'arrive, J'ai terminé, cordialement, ciao, chusss, chuss, chao chao, chao bye, chao, bonsoir, bonne nuit, bonne jounrée, bonne après-midi, bisous, Au revoir M. le bot, Au revoir le bot, au plaisir, allez ciao, Adieux., Adieux, a toutes, a toute à l'heure, a toute de suite, a plus tard, A plus, a chao bonsoir, a++, passe une bonne journée, bonne journée à toi, Bonne journée toi, bonne soirée, Bonne soiree, à la revoyure, A bientôt], output=[Au revoir ! Ravi d'avoir pu vous aider. Bonne soirée avec l'OL !], id=ssfBXil6tbnXSopTiISWXKDQ4sV3EEdM0zK19jXEuzwCGaHH, botId=D4Dn3UnTQtangYQtYwRwQIFj7uIaQslOfSYZUV5o4CLJjBMX, name=non, input=[non, nope, non, no, ne pas, ne fais pas, n, pas du tout, nop, no, a mon avis non, Absolument pas, C'est pas du tout le cas, Clairement pas, En fait non, En vrai non, Euh non, Jamais de la vie !, Jamais!, je crois pas, mille fois non, Nan, nan merci, nan nan, nan nan nan, négatif, nein, niet, nn, No, Non, Non c'est clairement pas le cas, Non c'est non, Non c'est une erreur, non je peux pas, Non merci, je n'y tiens pas, non non, non non non, non pas du tout, non vas-y toi, non, arrète, non, sans façon, Nope, Pas du tout, pas possible, pas vraiment, Trop pas, Vraiment pas, KO, niet, que neni, nein, nonono, nono, nan, oublie, oublie ca, oublie ça, negatif, négatif, nn, na, n, N, non non, nan nan, Non c'est non, nan merci, Nope, Jamais de la vie !, non non non, Jamais!, nan nan nan, non, arrête, non, sans façon, mille fois non, Non merci, je n'y tiens pas, nein, Vraiment pas, pas possible, négatif, non vas-y toi, non je peux pas, Non c'est une erreur, nn, niet, je crois pas, a mon avis non, Pas du tout, En vrai non, Clairement pas, No, Nan, Trop pas, Absolument pas, En fait non, pas vraiment, C'est pas du tout le cas, Non c'est clairement pas le cas, Euh non, Non, non pas du tout, non *, nope *, non *, no *, ne pas *, ne fais pas *, n *, pas du tout *, nop *, no *, a mon avis non *, Absolument pas *, C'est pas du tout le cas *, Clairement pas *, En fait non *, En vrai non *, Euh non *, Jamais de la vie ! *, Jamais! *, je crois pas *, mille fois non *, Nan *, nan merci *, nan nan *, nan nan nan *, négatif *, nein *, niet *, nn *, No *, Non *, Non c'est clairement pas le cas *, Non c'est non *, Non c'est une erreur *, non je peux pas *, Non merci, je n'y tiens pas *, non non *, non non non *, non pas du tout *, non vas-y toi *, non, arrète *, non, sans façon *, Nope *, Pas du tout *, pas possible *, pas vraiment *, Trop pas *, Vraiment pas *, KO *, niet *, que neni *, nein *, nonono *, nono *, nan *, oublie *, oublie ca *, oublie ça *, negatif *, négatif *, nn *, na *, n *, N *, non non *, nan nan *, Non c'est non *, nan merci *, Nope *, Jamais de la vie ! *, non non non *, Jamais! *, nan nan nan *, non, arrête *, non, sans façon *, mille fois non *, Non merci, je n'y tiens pas *, nein *, Vraiment pas *, pas possible *, négatif *, non vas-y toi *, non je peux pas *, Non c'est une erreur *, nn *, niet *, je crois pas *, a mon avis non *, Pas du tout *, En vrai non *, Clairement pas *, No *, Nan *, Trop pas *, Absolument pas *, En fait non *, pas vraiment *, C'est pas du tout le cas *, Non c'est clairement pas le cas *, Euh non *, Non *, non pas du tout *], output=[ok. Avis de vous avoir aidé. Passez une bonne soirée avec L'OL !], id=Zz9fuplj8U34MphASnyxWJqrU2h7AAtgoWO1SsMxkTeUxXwk, botId=D4Dn3UnTQtangYQtYwRwQIFj7uIaQslOfSYZUV5o4CLJjBMX, name=NUM TEL, output=[Le numéro de tel de {{joueurs}}est le 06 45 82 58 ...Mince, il memanque les 2 derniers numéros ! <br/>Bon pose moi une dernière question si tu veux., <<question=savoir>>], input=[toto]]

Printing all intents should be DEBUG level.

add build date commit sha to an endpoint in backend

Under /api/v1/, we currently have :

{
    "version": "0.1.0",
    "name": "Opla.ai"
}

I suggest we have :

{
    "version": "0.1.0",
    "name": "Opla.ai",
    "build": {
        "date": "2018-08-16T08:40:46+02:00",
        "ci_id": "2345",
        "name": "PREPROD",
        "commit_sha": "2hj3g2e"
    }
}

@mikbry WDYT

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.