GithubHelp home page GithubHelp logo

botpress / v12 Goto Github PK

View Code? Open in Web Editor NEW
63.0 6.0 74.0 276.28 MB

Botpress OSS – v12

Home Page: https://v12.botpress.com

License: GNU Affero General Public License v3.0

JavaScript 5.24% Dockerfile 0.06% TypeScript 82.12% Shell 0.06% Handlebars 0.05% SCSS 9.53% CSS 2.67% HTML 0.27%
botpress chatbot chatbots nlp v12

v12's Introduction

Botpress — The building blocks for building chatbots

IMPORTANT: With the launch of Botpress Cloud, the documentation for Botpress v12 can now be found here.

What is Botpress?

Botpress is the standard developer stack to build, run, and improve conversational AI applications. Powered by natural language understanding, a messaging API, and a fully featured studio, Botpress allows developers and conversation designers around the globe to build remarkable chatbots without compromise.

The fastest & easiest way to get started with Botpress is by signing up for free to Botpress Cloud. Alternatively, continue reading for more information about Botpress v12.

Out of the box, Botpress v12 includes:

  • Administration panel to orchestrate and monitor your chatbots
  • Conversation Studio to design a conversation, manage content, code custom integration
  • Easy integration with messaging channels (Messenger, WhatsApp, Slack, Teams, Webchat, Telegram, SMS & more)
  • Natural Language Understanding
  • Complete list of features and specs here

Getting Started

There are a few ways to get started with Botpress v12:

Documentation

Community

  • Discord - Get community support and find answers to your questions
  • Issues - Report bugs and file feature requests
  • Blog - How to's, case studies, and announcements
  • Contributing - Start contributing to Botpress
  • Partners - List of agencies who can help you with Botpress

License

Botpress is dual-licensed under AGPLv3 and the Botpress Proprietary License.

By default, any bot created with Botpress is licensed under AGPLv3, but you may change to the Botpress License from within your bot's web interface in a few clicks.

For more information about how the dual-license works and why it works that way, please see the FAQS.

v12's People

Contributors

allardy avatar asashour avatar botpress-bot[bot] avatar bpmjoannette avatar charlescatta avatar daehli avatar davidvitora avatar dependabot[bot] avatar eff avatar emirotin avatar epaminond avatar franklevasseur avatar hugojosefson avatar jsalwen avatar justinwatson avatar larrymatte avatar laurentlp avatar matheusmatos avatar maxcloutier avatar maximelaboisson avatar michael-n-m avatar rayshih avatar rndlaine avatar samuelmasse avatar sebburon avatar sindresorhus avatar slvnperron avatar spg avatar ssmale avatar xavierbriole 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

v12's Issues

Facebook Messenger location

This piece of code produce the intended effect of creating a location button:

bp.hear({ text: /location/i, type: 'message' }, (event, next) => {
    payload = {
      quick_replies: [
        {
          title: 'location',
          content_type: 'location'
        }
      ],
      typing: true
    }

    bp.messenger.sendText(event.user.id, 'Where do you live?', payload)
})

But then when the user selects its location, the response from FB produces the following error:

error: Unhandled Rejection in Promise:  Promise {
  _bitField: 18087936,
  _fulfillmentHandler0:
   TypeError: Expected event to contain (type: string), (platform: string), (text: string), (raw: any)
       at Object.dispatch (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/botpress/src/middlewares.js:37:13)
       at Object.sendIncoming (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/botpress/src/middlewares.js:157:8)
       at /Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/botpress-messenger/bin/webpack:/src/incoming.js:56:24
       at Array.forEach (native)
       at /Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/botpress-messenger/bin/webpack:/src/incoming.js:55:29
       at tryCatcher (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/util.js:16:23)
       at Promise._settlePromiseFromHandler (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/promise.js:510:31)
       at Promise._settlePromise (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/promise.js:567:18)
       at Promise._settlePromiseCtx (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/promise.js:604:10)
       at Async._drainQueue (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/async.js:143:12)
       at Async._drainQueues (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/async.js:148:10)
       at Immediate.Async.drainQueues [as _onImmediate] (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/async.js:17:14)
       at tryOnImmediate (timers.js:543:15)
       at processImmediate [as _immediateCallback] (timers.js:523:5),
  _rejectionHandler0: undefined,
  _promise0: undefined,
  _receiver0: undefined } Reason: TypeError: Expected event to contain (type: string), (platform: string), (text: string), (raw: any)
    at Object.dispatch (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/botpress/src/middlewares.js:37:13)
    at Object.sendIncoming (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/botpress/src/middlewares.js:157:8)
    at /Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/botpress-messenger/bin/webpack:/src/incoming.js:56:24
    at Array.forEach (native)
    at /Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/botpress-messenger/bin/webpack:/src/incoming.js:55:29
    at tryCatcher (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/promise.js:510:31)
    at Promise._settlePromise (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/promise.js:567:18)
    at Promise._settlePromiseCtx (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/promise.js:604:10)
    at Async._drainQueue (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/async.js:143:12)
    at Async._drainQueues (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/async.js:148:10)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/async.js:17:14)
    at tryOnImmediate (timers.js:543:15)
    at processImmediate [as _immediateCallback] (timers.js:523:5)
14:23:49 - error: TypeError: Expected event to contain (type: string), (platform: string), (text: string), (raw: any)
    at Object.dispatch (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/botpress/src/middlewares.js:37:13)
    at Object.sendIncoming (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/botpress/src/middlewares.js:157:8)
    at /Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/botpress-messenger/bin/webpack:/src/incoming.js:56:24
    at Array.forEach (native)
    at /Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/botpress-messenger/bin/webpack:/src/incoming.js:55:29
    at tryCatcher (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/promise.js:510:31)
    at Promise._settlePromise (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/promise.js:567:18)
    at Promise._settlePromiseCtx (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/promise.js:604:10)
    at Async._drainQueue (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/async.js:143:12)
    at Async._drainQueues (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/async.js:148:10)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/pdionne/Dev/dialog/dialog-examples/node/botpress-example/node_modules/bluebird/js/release/async.js:17:14)
    at tryOnImmediate (timers.js:543:15)
    at processImmediate [as _immediateCallback] (timers.js:523:5)

Throw when calling getRouter with an invalid router name

Routers must start with botpress- otherwise they aren't working. This is by design.

We should:

  1. Also add bp- as a valid router prefix
  2. Throw when calling getRouter with an invalid name
  3. Add this restriction in the getRouter documentaton

Error When I Click ngrok

I get this error when I click the ngrok checkbox (windows)

12:09:24 - error: (fatal) An unhandled exception occured in your bot Error: spawn ./ngrok.exe ENOENT at exports._errnoException (util.js:1026:11) at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32) at onErrorNT (internal/child_process.js:359:16) at _combinedTickCallback (internal/process/next_tick.js:74:11) at process._tickCallback (internal/process/next_tick.js:98:9) 12:09:24 - error: Error: spawn ./ngrok.exe ENOENT at exports._errnoException (util.js:1026:11) at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32) at onErrorNT (internal/child_process.js:359:16) at _combinedTickCallback (internal/process/next_tick.js:74:11) at process._tickCallback (internal/process/next_tick.js:98:9)

Integrate with Botkit

Botpress lacks conversation management, we should have an easy Botkit support built-in

License?

The site says, it is dual licensed. But, here at github, only AGPL is mentioned, which is useless for commercial use of most kinds and completely unlike WordPress for that matter. What's the other license under the dual license that is advertised on the official website?

Thanks!

Watch code and run

Hey!
I'm having a lot of fun while playing with botpress. really cool idea and implementation.

I offer a feature, but there is a chance i can do it and just need to RTFM.

Instead of run bp start each time i change my code, the process will watch my code and restart/update himself.

tnx

Error on windows

Once I bp init i get this error

name: (kk) (node:6784) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Error while obtaining machine id: Error: Command failed: REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography /v MachineGuid
ERROR: The system was unable to find the specified registry key or value.

Document on how to use transpiled code with botpress

This shouldn't be a problem for many but it would be convenient to document on how to use transpiled code with a botpress application, allowing use of things like import/export or async/await in the node.js part of the codebase.

I'd be happy to document this in a separate .md on the Advanced Topics, for example. Let me know if this kind of thing is desirable and, if so, I'll submit a quick PR with a babel example.

minify web.bundle.js

The actual web.bundle.js file is 3.3MB, which is huge. A simple JS minification of the web.bundle.js code could reduce to 1.1MB ... which is significantly better.

Just adding the following plugin to webpack.js :

new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false } })

Would you want a PR for this?

Display bot's current time and allow Time zone override

In node, setting the TZ environment variable will override the Timezone. We should:

  1. Add the current timezone in the menu
  2. Allow to change the current TZ by setting environment variable and restarting the bot
  3. We should have a Settings panel

Botpress changes cwd, causing issues with node-config

When Botpress is used with node-config, the config path is set to WARNING: No configurations found in configuration directory: <...>/node_modules/botpress/config. This causes node-config not to find its own configuration files.

For others having this issue: easy to work around by overriding process.env.NODE_CONFIG_DIR using something like

var path = require('path')
process.env.NODE_CONFIG_DIR = path.resolve(process.cwd()+'/../../config')

Since, for this case there is an easy (albeit hacky) workaround I believe this should be considered as low priority.

However, there may be other modules relying on process.cwd() which will then likely experience similar breaking issues. A proper fix then might be to avoid having process.cwd changed to the botpress dir inside node_modules.

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.