Giter VIP home page Giter VIP logo

node-red-contrib-viseo's Introduction

- Node-RED open-source nodes -

This project contains a set of Node-RED nodes open-sourced by VISEO to build smart applications and conversational assistants.


The VISEO Bot Maker

VISEO Bot Maker is a framework built on top of Node-RED. The project's repository is available here.

Getting Help

For bug reports, feature requests, further help or general discussion, please use the github issue tracker. In order to label your issue with the question tag, please specify:

  • if your message is a question / discussion
  • the module or the node name

Contributing

This project adheres to the Contributor Covenant 1.4. Before raising a pull-request, please read this code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to any of the project's core team.

Copyright and license

Icons are from Freepik or from Flaticon, licensed by CC 3.0 BY.

Copyright 2016-2019 VISEO under the Apache 2.0 license.

node-red-contrib-viseo's People

Contributors

ana3787 avatar antoinegittonviseo avatar arimk avatar gasolin avatar jbinard avatar jpencausse avatar jpencausseviseo avatar klervix avatar m-brunet avatar pablojimeno avatar pierlag avatar rcarmo avatar remyruzafa avatar siyaod avatar tellenn avatar tothiviseo 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

node-red-contrib-viseo's Issues

Override SessionId with ChatBot Session

SessionId can be set as a node parameter.

  • If the session is really tied to the overall bot purpose it's ok.
  • If the session is tied to the user chat, then it shoudl be overrided by ChatBot session Id ?

So:

  • This field should be overrided (using helper)
  • May be it could be smart enought to retrieve something from user's message ? (even if api.ai can be use in an other context)

Node to query Cards

As a Developper
I need to query all Cards matching given criteria (a column, a label, ....)
Then iterate to work on them

Improve the way to handle Prompt events

As a developper
I want to intercept all prompt
In order to perform an NLP and override user input

UseCase:

  • A prompt message yes/no is sent
  • A user write "oui"
  • A Prompt event is triggered
  • A NLP on "oui" is performed and state it's a yes intent
  • A code replace "oui" with "yes"
  • The prompt message correctly process "yes" (it would fail with "oui")

Note
Button algorithm is performed before the Prompt and bypass the Prompt

With the new implementation:

  • Button should still by pass prompt
  • Otherwise if prompt is performed the Button algorithm should be replayed
  • And the setByString() should also be called
  • The unexpected may no longer be usefull
  • But the assert feature is still usefull

Node Chrome Castv2

As a developper
I want to play a given media to a given Cast device (aka GoogleHome)
In order to send custom notification or text2speech

Note:
It seems CastV2-client provides basic features and hasbeen updated few months ago. It is used by CastV2Player but I don't like the code

Prototyping Look and Feel

As a flow designer
I want to bootstrap flow with UI very close to Messenger
In order to "see" the conversation with Node-RED in a workshop

Implementation

  • Add toggle button in Node-RED editor
  • The button switch a CSS class + JS on each Message node (already prototyped)
  • Each card should look like a messenger card (off course node will be largere but it helps bootstraping simple flows)
  • Inline editing of text and feature could be a bonus

Inspiration
https://chatfuel.com/

Buttons are cached in cards

When we reuse a card several times (eg : within a loop), the buttons are processed once for all the instances of this card.
This can be a problem if one of the parameters of the buttons is dynamic and changes for each instance.

NoSQL Database Node

Create a generic node for database handling regardless of the DB system behind it.
See if it's possible to choose the type of database through configuration nodes.

Store metadata in cards

As a developer
I need to store custom / hidden data in cards
in order to link them with Node-RED

Note:
At last it can be a JSON in a Comment of the card but's it's very ugly ...

Node-RED Helper

A library to handle common issues with Node-RED.

For instance, nodes should resolve {path.to.property} in many cases to avoid Function node.

Node: PhantomJS

This node take a snapshot of a given URL.

Usecases

  • Generate D3JS Graphs
  • Generate Google Static Maps
  • Generate Image + Message

Warning
Might have scalability issues, "make it work then make it fast".

Bug - can't find handleData / phantomjs

Greetings,

I've installed node-red-contrib-phantomjs and am having problems with the demo flow... seems handleData can not be found...

22 Sep 17:36:52 - [info] stderr:Console: ReferenceError: Can't find variable: handleData (from line # in "")

The resulting PNG is the right size, but it is black. Accessing /chart renders a chart.

One thing I do plan on changing is supporting URL to be passed in a msg...

Load a DataBase from Payload

The idea is to fill a database NeDB from a JSON Payload to avoid access to the server.
This will also require to handle multiple database

Add support to an Empathy Feature

As a BotMaker
I want to reply to a user with a given empathy level
In order to feel more human

Note:

  • Think about empathy map,
  • So may be 6 variables for each user profile
  • So may be 6 variable also for each Message node
  • And a way to choose the closest match

My first Node-RED node

Add a wiki page to describe how to create a new Node-RED node inspired by QRCode or Trello node.

Enable "repeat" after prompt events

The node "continue" should be called "resume".
It should be of sort "continue" or "repeat"

If it is a "repeat", then we use the node.receive() method to the current node (in the _continue method).

On Windows 10, install instructions FAIL to allow framework to run

I've followed the install instructions in the WIKI but when I come to run, it fails.

Windows 10, Node.js v6.11.3

Truth is that your Windows start.bat file is completely wrong!

Here is one that is at least close to working:

SET NODE_TLS_REJECT_UNAUTHORIZED=0
SET PORT=1881
SET NODE_ENV=dev
@REM SET NODE_ENV=production

SET CUR_DIR=%CD%
SET SOURCE=%~dp0

SET FRAMEWORK_ROOT=%SOURCE%
SET BOT_ROOT=%CUR_DIR%
SET CONFIG_PATH=%CUR_DIR%\conf\config.js
SET APP=viseobot

pm2 start %SOURCE%\node_modules\node-red\red.js --name %APP% -- -s %SOURCE%\conf\node-red-config.js

However, there are other issues as well.

Your node-red-config.js file is full of assumptions. Firstly you haven't used path.join for local paths:

userDir: process.env.BOT_ROOT + '/data/',

should be:

userDir: path.join(process.env.BOT_ROOT, 'data'),

and so on.

Secondly, you are assuming that the environment variables contain safe data which is a terrible mistake for anyone wanting to use this in production.

Thirdly, I am getting a warning that a node cannot be loaded:

9 Sep 16:36:16 - [warn] [msbot-attachment] SyntaxError: Unexpected token function

Not sure what the impact of that is.

Node-RED vs Cookies

It seems to be a bug with latest version of Node-RED 0.17
When multiple server running on the same VM rooting with NGinx. Login to Server1 will logout on server2.
I assume the cookie set by the server override previous one

Possibility to backup a chat bot

We should be able to back up a project on a git server with the node-red interface.
We should be able to :

  • save the current version with an optional log message (eg : "added search feature" or "corrected bug on results display")
  • revert to a specific version temporarily
  • revert to a specific version permanently

Add suport to Facebook Menu

Facebook can display a custom menu. There is already an implémentation in the code. But the menu didn't show up.

New node : Switch in an array

Possibility to search a set of values in an array.
Parameters :

  • array (eg: payload.entities)
  • key (eg: entity.name)
  • possibile values

The comparison would work like a "switch".

Use case : search of entities in LUIS json result.

Set a value to a path that doesn't exists throw an error

How to Reproduce:
Retrieve from NeDB an Object with id 123 and set it to a.b.c but only a exists.

data.payload.item=[object Object]
                              ^^^^^^
SyntaxError: Unexpected identifier  at Object.exports.setByString.ex [as setByString] 

Merging Bot Channel Account

As a Developper,
I want to retrieve data from multiple bot channel (aka Messenger, GoogleHome)
In order to ask a question on a channel (voice) then get the answer from an other channel (photo on messenger)

Update XLSX with NeDB

Current XLSX Node override and create a new XLSX file
The idea is to update (override or happend) a given XLSX Tab, so other tabs can be configured to display graphics

Add support to "..."

The bot.typing() is buggued and may appear after the message is sent on Facebook Messenger.

Add support to Emoji

The bot should be able to display Facebook Emoji (warning: there is multiple kind of Emoji in Facebook)
Emoji seems to be images

Loop node

Create a node that performs a sequential loop over an array.

use cases :

  • A list a messages that can be sent one at a time (and respect the delay time)
  • The display of a carousel of cards

Add multilang support (UTF-8)

  • Handle a list of available locales
  • Handle the main locale
  • UI: duplicate widgets for each locale (display hidden)
  • UI: display a flag to switch locale
  • UI: on submit store data according to locale
  • On config retrieve data according to locale, default on default locale

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.