Git Product home page Git Product logo

leopard-chat-ui-teneo's Introduction

Leopard Chat

A Feature Rich Chat Client for Teneo

AboutInstallationFeaturesDocumentationDemoContributingAuthorSupportLicense


About

Leopard Chat UI is a feature rich chat client for Teneo. Teneo is capable of returning rich data along with each response and Leopard leverages these responses to present an interactive chat experience.

Leopard can be used in both production and in a Sales Engineering mode. The Sales Engineering mode allows for numerous conversational demonstrations to be easily configured, deep linked to or shared.

An administration interface is provided where you can tweak the look and feel of the chat UI per conversational solution.

Leopard Chat

Built with

Installation

Windows Users

If you're developing on windows you will most likely have to install node-gyp before you attempt to run npm install. You will need to compile some native node modules. To enable this on Windows you can run this one liner. It's going to take a while to complete but it only has to be run once. Start PowerShell as Administrator and run:

npm install --global windows-build-tools

Downloading and installing steps:

git clone https://github.com/jolzee/leopard-chat-ui-teneo
cd leopard-chat-ui-teneo
npm install

Configuration

Leopard is configured using /config/default.js which is a commented JavaScript module. You can either directly add your configuration to default.js or to an adjacent local.js which takes precedence and is added to .gitignore. The conversational solutions are configured through the .env.solution.json file in the root of the project. If you want to make some changes prior to running/building Leopard then do so now.

Run Locally in Development Mode

npm run serve

Build for production

The build process runs the source code through Webpack and produces the final build into the /dist folder.

npm run build

Deployment

Copy all the files within /dist to any web server - For example https://mydomain.com/leopard/.

The Chat UI can then be used in Sales Engineering mode by visiting https://mydomain.com/leopard/

Embed in Production

You can inject Leopard Chat UI into a specific element on a page. This might be beneficial if you want to place it in a specific tab order. To enable this add a <div id="leopardChatWindow"></div> anywhere on the page. This is not required though and if absent the UI will automatically be injected at the beginning of the body.

<script type="text/javascript">
  window.TENEOCTX || (TENEOCTX = {});
  TENEOCTX = {
    init: {
      trustedDomain: "", // something like http://localhost:8080 // "" = receive and post messages to all domains
      allowScripts: true // false = if you want to disable potential eval
    },
    ctx: {
      eventSource: "leopard-embed",
      pageTitle: document.title,
      pageUrl: window.location.href,
      pageTopic: "Help",
      message: "This was sent from the customer's web site"
    }
  };
</script>

<div id="leopardChatWindow"></div>

<script src="https://mydomain.com/leopard/static/embed-leopard.js"></script>

Features

Supported
ASR & TTS ✔️
Alerts ✔️
All modern browsers & IE 11 ✔️
Answer Text Formatting - HTML and Markdown ✔️
Audio Player ✔️
Auto Switch Solutions ✔️
Buttons ✔️
Cards ✔️
Custom Forms ✔️
Custom HTML Modals ✔️
Custom Response Icons ✔️
Dark Mode ✔️
Date and Time Pickers ✔️
Deep Link to Question ✔️
Dynamic Theme Changes ✔️
Emergency Button ✔️
Expensive Operations ✔️
Extension Helper (Groovy) ✔️
Feedback Forms ✔️
Field Masks ✔️
Field Types - [email / password / location / upload] ✔️
Firebase Social Authentication ✔️
Geo Context Capture ✔️
Hyperlinks that send input back to Teneo ✔️
Image Carousels ✔️
Images ✔️
Input Field Help Text ✔️
LiveChatInc.com ✔️
Maps ✔️
Proactive Dialogs ✔️
Sentry and LogRocket - Logging and Reporting ✔️
Split Answers ✔️
Tables ✔️
Themeable ✔️
Toasts ✔️
Video Player (YouTube, Vimeo, mp4) ✔️
i18n ✔️

Screenshots

Leopard Chat

Documentation

Do you need some help? Check the complete documentation.

Contributing

Got something interesting you'd like to share? Learn about contributing.

Author

Peter Joles
Peter Joles

Support

Reach out to me at one of the following places:

License

Distributed under the Apache License 2.0. See LICENSE for more information.

Attributions

Icons made by Pixel perfect from www.flaticon.com

leopard-chat-ui-teneo's People

Contributors

depfu[bot] avatar jolzee 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

Watchers

 avatar  avatar  avatar  avatar  avatar

leopard-chat-ui-teneo's Issues

Integration with Dialogflow

I would like to be able to use the template to deploy a Dialogflow bot, but I am not used at all to Vue.js and there is no enough documentation. Is there a way I can send requests to Dialogflow instead of Teneo?

How to disable the side menu?

I think that it would be interesting to have the possibility of replacing the menu button in the chat with a down arrow that closes the chat directly. In my opinion, this way it is more compact and cleaner. However, I do not find where it is declared.

I found the side menu in App.vue, but what I want do disable is the button.

Install fails

Hi guys,

Any help with this? It always crash on load_balancer_api.o.
I run om Arch Linux

{
'leopard-chat-teneo-vue': '0.1.0',
npm: '6.10.2',
ares: '1.15.0',
brotli: '1.0.7',
cldr: '35.1',
http_parser: '2.8.0',
icu: '64.2',
llhttp: '1.1.4',
modules: '72',
napi: '4',
nghttp2: '1.39.2',
node: '12.9.1',
openssl: '1.1.1c',
tz: '2019a',
unicode: '12.1',
uv: '1.31.0',
v8: '7.6.303.29-node.15',
zlib: '1.2.11'
}

Here the output from the terminal.

Thank you in advance.

Cheers!

CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.o
../deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc: In function ‘grpc_grpclb_request* grpc_grpclb_request_create(const char*)’:
../deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc:70:10: error: ‘char* strncpy(char*, const char*, size_t)’ specified bound 128 equals destination size [-Werror=stringop-truncation]
   70 |   strncpy(req->initial_request.name, lb_service_name,
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   71 |           GRPC_GRPCLB_SERVICE_NAME_MAX_LENGTH);
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make: *** [grpc.target.mk:492: Release/obj.target/grpc/deps/grpc/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.o] Error 1
make: Leaving directory '/home/hinw/Dev/projects/leopard/node_modules/grpc/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/hinw/Dev/projects/leopard/node_modules/node-gyp/lib/build.js:196:23)
gyp ERR! stack     at ChildProcess.emit (events.js:209:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Linux 5.2.11-arch1-1-ARCH
gyp ERR! command "/home/hinw/.nvm/versions/node/v12.9.1/bin/node" "/home/hinw/Dev/projects/leopard/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--library=static_library" "--module=/home/hinw/Dev/projects/leopard/node_modules/grpc/src/node/extension_binary/node-v72-linux-x64-glibc/grpc_node.node" "--module_name=grpc_node" "--module_path=/home/hinw/Dev/projects/leopard/node_modules/grpc/src/node/extension_binary/node-v72-linux-x64-glibc" "--napi_version=4" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v72"
gyp ERR! cwd /home/hinw/Dev/projects/leopard/node_modules/grpc
gyp ERR! node -v v12.9.1
gyp ERR! node-gyp -v v5.0.3
gyp ERR! not ok 
node-pre-gyp ERR! build error 
node-pre-gyp ERR! stack Error: Failed to execute '/home/hinw/.nvm/versions/node/v12.9.1/bin/node /home/hinw/Dev/projects/leopard/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --library=static_library --module=/home/hinw/Dev/projects/leopard/node_modules/grpc/src/node/extension_binary/node-v72-linux-x64-glibc/grpc_node.node --module_name=grpc_node --module_path=/home/hinw/Dev/projects/leopard/node_modules/grpc/src/node/extension_binary/node-v72-linux-x64-glibc --napi_version=4 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/home/hinw/Dev/projects/leopard/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:209:13)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:1021:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
node-pre-gyp ERR! System Linux 5.2.11-arch1-1-ARCH
node-pre-gyp ERR! command "/home/hinw/.nvm/versions/node/v12.9.1/bin/node" "/home/hinw/Dev/projects/leopard/node_modules/grpc/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" "--library=static_library"
node-pre-gyp ERR! cwd /home/hinw/Dev/projects/leopard/node_modules/grpc
node-pre-gyp ERR! node -v v12.9.1
node-pre-gyp ERR! node-pre-gyp -v v0.12.0
node-pre-gyp ERR! not ok 
Failed to execute '/home/hinw/.nvm/versions/node/v12.9.1/bin/node /home/hinw/Dev/projects/leopard/node_modules/node-gyp/bin/node-gyp.js build --fallback-to``

Unable to install on Linux

Describe the bug
When I try to run npm install I get some warnings related to the OS (It seems like it is expecting Mac OS), and optional packages are not installed. After that, I get some errors that audit can not fix and can not serve neither because of ESLint. I do not know if it is related of if there are three independent problems.

To Reproduce
Steps to reproduce the behavior:

  1. Clone the project from GitHub on a LInux Desktop
  2. Go to the project folder
  3. Run npm install
  4. See error

Expected behavior
I expect the project to be installed.

Logs
npm install

> [email protected] install /home/msole/Documents/code/tfg/chat-teneo-vue/node_modules/grpc
> node-pre-gyp install --fallback-to-build --library=static_library

node-pre-gyp WARN Using request for node-pre-gyp https download 
[grpc] Success: "/home/msole/Documents/code/tfg/chat-teneo-vue/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc/grpc_node.node" is installed via remote

> [email protected] install /home/msole/Documents/code/tfg/chat-teneo-vue/node_modules/yorkie
> node bin/install.js

setting up Git hooks
done

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 1963 packages from 1722 contributors and audited 36899 packages in 39.615s
found 12 high severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details

npm audit fix

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

up to date in 9.464s
fixed 0 of 12 vulnerabilities in 36899 scanned packages
  12 vulnerabilities required manual review and could not be updated

npm run serve

> [email protected] serve /home/msole/Documents/code/tfg/ptolomeo-frontend
> vue-cli-service serve --open

 INFO  Starting development server...
 98% after emitting CopyPlugin                                                 

 ERROR  Failed to compile with 1 errors                                                                     12:02:06

Module build failed (from ./node_modules/eslint-loader/index.js):
Error: No ESLint configuration found.
    at Config.getLocalConfigHierarchy (/home/msole/Documents/code/tfg/ptolomeo-frontend/node_modules/eslint/lib/config.js:268:39)
    at Config.getConfigHierarchy (/home/msole/Documents/code/tfg/ptolomeo-frontend/node_modules/eslint/lib/config.js:192:43)
    at Config.getConfigVector (/home/msole/Documents/code/tfg/ptolomeo-frontend/node_modules/eslint/lib/config.js:299:21)
    at Config.getConfig (/home/msole/Documents/code/tfg/ptolomeo-frontend/node_modules/eslint/lib/config.js:342:29)
    at processText (/home/msole/Documents/code/tfg/ptolomeo-frontend/node_modules/eslint/lib/cli-engine.js:181:33)
    at CLIEngine.executeOnText (/home/msole/Documents/code/tfg/ptolomeo-frontend/node_modules/eslint/lib/cli-engine.js:690:40)
    at lint (/home/msole/Documents/code/tfg/ptolomeo-frontend/node_modules/eslint-loader/index.js:263:17)
    at transform (/home/msole/Documents/code/tfg/ptolomeo-frontend/node_modules/eslint-loader/index.js:237:18)
    at /home/msole/Documents/code/tfg/ptolomeo-frontend/node_modules/loader-fs-cache/index.js:127:18
    at ReadFileContext.callback (/home/msole/Documents/code/tfg/ptolomeo-frontend/node_modules/loader-fs-cache/index.js:31:14)
    at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:420:13)

You may use special comments to disable some warnings.
Use // eslint-disable-next-line to ignore the next line.
Use /* eslint-disable */ to ignore all warnings in a file.

Desktop (please complete the following information):

  • OS: Kubuntu 17.10 64-bit
  • NPM Version: 6.4.1
  • Project Version: 0.1.0

Need to set a value to a global variable in Teneo

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Authentication thorough Amazon Cognito

Is your feature request related to a problem? Please describe.
No.

Describe the solution you'd like
I have seen that Firebase Authentication is possible, or, at least, mentioned, and I would like to know if Cognito Authentication is something you have in mind. I have never used any of them, but currently I need to make use of the Cognito solution.

If it is not that hard, I could do it myself and send you a PR. I would like to help as much as possible.

Problem with embedded chat on mobile

Describe the bug
I'm testing the embedded chat on a smartphone, but the floating button is not being shown.

To Reproduce
Steps to reproduce the behavior:

  1. I changed the tieUrl value on embed-leopard.js to my URL: http://192.168.200.249:8080/
  2. I Ran npm run build
  3. I exposed the dist folder on port 8080.
  4. I access http://192.168.200.249:8080/embed.html

Expected behavior
A floating button should show as in desktop. It would be ideal to then have the chat cover the whole page when clicking on the button.

Smartphone (please complete the following information):

  • Device: Samsung Galaxy S10+
  • OS: Android 9
  • Browser: Chrome
  • Version: 74.0.3729.157

Additional context
If I check "Desktop Site" on Chrome, the floating button is shown, so that discards any networking issues. Is this expected behavior for the embedded chat on mobile?

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.