Skip to content

Michael-frommelt/https-github.ibm.com-CognitiveAssetFactory-EVA

Repository files navigation

EVA logo

EVA, the Enhanced conVersation Asset, enables you to start your chatbot within hours instead of days by providing the things you'll need besides Watson Conversation Service.

Important: EVA is in the development phase of its next major release - 2.0 - which we plan to finish by the end of Q3 2019. For the 1.x versions, we will only accept new feature requests up until 1st of June and can provide bug fixes until the end of 2019.

How to run a Project with EVA

EVA is property of IBM GBS. Please contact Rainer Groesser or Mascha Lentz regarding terms and conditions for using EVA in a client engagement.

Once you start, be sure to have a look at the EVA Best Practices! This readme will only describe the technical parts.

Deploy EVA using the Deploy to IBM Cloud button

Clicking on the button below creates an IBM Cloud DevOps Toolchain and deploys EVA to IBM Cloud.

Deploy to IBM Cloud

Support

To get support from the EVA core team, you can join the "Cognitive Factory" Slack Workspace and visit the eva-support channel.

How to run EVA locally

EVA requires Node.JS. After the installation and provision of the source code, you can start EVA with the following commands in your terminal/command line (navigate to your application root folder first): If you are using a windows machine do the following (otherwise proceed with step2):

Step 1: open a cmd with admin rights and execute:

npm install --global --production windows-build-tools

Step 2: Install Node.js dependencies

npm install

npm install -g gulp

npm rebuild node-sass

gulp build

Step 3: To start your application just type

gulp

How to configure basic Services

EVA comes with a basis set of services already integrated into the pipeline. To use them you can simply change the configuration in the database.

Change the configuration in the database.

The other Services (Conversation, Spell Checker, Retrieve&Rank, Speech2Text) can be configured easily in the config collection such the following document.

"conversation": {
    "url": "https://gateway-fra.watsonplatform.net/conversation/api",
    "username": "a5e6bb7f-e0c9-45fd-9293-5efc0eece657",
    "password": "M2T61aztUELz",
    "show_alternate_intents": true
},

Submit the changes

To take over the changes from the database into your application, please restart the app under the IBM Cloud console.

Screenshot of cloud foundry apps

How to change the UI

Create Clients in Database

EVA supports multiple clients which is interesting as well for one client and multiple use cases or even designs. To create a client go to the “config” collection in Mongo DB with a tool as MongoBooster. Clients have the following structure:

{
    "id": "standard",
    "name": "Standard",
    "language": "de",
    "conversation_workspace_id": "b6e35506-826e-493e-b50f-ae11ed69d95e",
    "rar_collection": "",
    "answers_database": "answers_standard",
    "hidden": false
},

In MongoBooster, select config > clients > edit document. Copy the JSON structure of a client as depicted above and change id, name as well as the conversation workspace ID. If you want to set up a net answer store for this client, you can also change the answers_database variable. When you are finished click “run”.

Screenshot of users collection

As a second action in MongoBooster you have to give the admin user access to the new client. In order to do so, select users > clients and add your new client to the list of existing clients. Please do not do further changes to this user.

Change the UI

Screenshot of users collection

Next, in the following folders you have to copy the folder of an existing client (e.g. “standard”) and rename it to the id you set in MongoDB (e.g. “rente”). Please choose an existing client as you like to have the template.

  • Frontend/src/sass/
  • Frontend/src/views/

Important: Every client has his primary Conversation and Retrieve and Rank workspace. You need to insert the workspace/service ID there. If you need guidance please have a look at our example configuration in appendix.

Further Information needed?

Have a look at our wiki (Cognitive Asset Factory): http://ibm.biz/eva-asset Or read our technical documentation: https://apps.na.collabserv.com/wikis/basic/api/wiki/5f5e6b89-23d2-41b7-86a8-c3e708f5ec01/page/b405ea70-d3d0-4314-af49-aaafbfb17ec6/attachment/b00cde56-c1dc-47f2-a7d5-826c92f9d3da/media/EVA_Documentation_1.x.pdf

Changelog

v1.6.0 (2019-05-20)

  • Improved stability of "Deploy to IBM Cloud" feature
  • Added language choice on deploy & english default workspaces (BREAKING: changed internal answer IDs to be consistent between languages)
  • Fixed minor translation & display bugs

v1.5.0 (2019-04-02)

  • Fixed "Deploy to IBM Cloud"-Button: Moved to Resource Groups (from CF)
  • Added script to update the dialog nodes of the Watson Assistant with the answer text stored in the answer store

v1.4.3 (2019-03-12)

  • Added pagination for answer store

v1.4.2 (2019-02-22)

  • Added asset copyright headers
  • Fixed testing aggregations with MongoDB
  • Fixed users without "editUsers" permission not being able to change their password

v1.4.1 (2019-02-08)

  • Fixed unescaped '_' characters in Readme
  • Dialog test: cells in test overview have colors depending on value
  • Dialog test: in test details, view cells are colored and filter option to only show failed test cases
  • KFold: adjusted colors to match dialog test
  • Testing: default value in radio buttons changed to "answerId" from "confidence"

v1.4.0 (2019-02-04)

  • Fixed "Deploy to IBM Cloud" button - 1-click auto deployment working again
  • Fixed version numbers to be IBM OSS approved
  • Fixed several deprecation warnings
  • Prepared EVA for multi-language deployment (not working yet)

v1.3.2 (2019-02-04)

  • Added import/export functionality for the variableStore
  • Replaced deprecated method to create Buffer

v1.3.1 (2018-12-07)

  • Redirect all http-requests to https, if not running local
  • Changed filtering for username in reporting to improve performance with huge amounts of usernames
  • Deleted unused images
  • Prevent timing attacks (double HMAC) in external frontend API
  • Fixed some errors with external frontend API
  • Removed extended feedback components
  • Changed link to technical documentation to ensure general access to file
  • Replaced standard session store to prevent memory leaks
  • Improved error resistance when Assistant requests fail

v1.3.0 (2018-11-13)

  • Breaking Change: Fixed inconsistencies in the data model of the external frontend API
  • Added Swagger documentation feature to external frontend API (further documentation under docs/external_api.md)

v1.2.11 (2018-11-13)

  • Added retry attempt for message call in K-Fold testing

v1.2.10 (2018-11-09)

  • Fixed error on MongoDB credentials without ca certificate (see IBM Cloud changes)

v1.2.9 (2018-10-24)

  • added cloudant integration for Facebook and Alexa APIs

v1.2.8 (2018-10-24)

  • Fixed Test Comparison Controller by changing $scope to this
  • Created translation for Entry 'NAV_TEST' and renamed test in Dialog Test
  • Changed Flow test behaviour: now answerId must be in answer exactly once
  • Added Dialog Test Examples
  • Fixed Dialog test for Cloudant (swapped group by file and intent)
  • Fixed Dialog test statistics: now correct sorting of results in detail view
  • Changed Confidence calculation in dialog test (wrong topIntent now equals 0) and added description field
  • Fixed loading of Dropdown elements in Confusion matrix for Cloudant, enhanced for MongoDB
  • correctly replace object variables in the answerStore (if entered in dot notation), dot not allowed as character for variables in the variableStore
  • prevent duplicate answer_proposals
  • all frontend pages (including reporting) will only show clients that the current user has the right to see
  • fixed client filtering
  • fixed uri encoding of answerIds
  • support for custom database names

v1.2.7 (2018-10-10)

  • Added learning opt-out to all Watson services by default

v1.2.6 (2018-10-10)

  • Fixed handling with non self-signed certificates on MongoDB (see IBM Cloud changes)
  • Fixed caching problems on Internet Explorer (e.g. reporting export getting stuck)
  • Fixed size of trend overview chart on "testing" page in Internet Explorer

v1.2.5 (2018-08-30)

  • Added confidence check in Jumphandler for few word intents
  • Fixed dropdown in K-fold Cross Validation

v1.2.4 (2018-08-03)

  • Fixed dropdown list containing test runs for the confusion matrix
  • Fixed sorting and grouping of detailed test results view (modal) for MongoDB and Cloudant
  • Moved data validation from frontend to backend for detailed test results

v1.2.3 (2018-05-23)

  • Critical bug fix: Invalid JSON file crashed initial auto deployment

v1.2.2 (2018-05-23)

  • Security fix: Deactivate external frontend test proxy on non local instances
  • Critical bug fix: Set angular version to 1.6.8 (1.7.0 will crash the frontend!)
  • Fixed bug: Fixed error handling for answer store import

v1.2.1 (2018-05-23)

  • Added external API definition file (Swagger 2.0)

v1.2.0 (2018-05-09)

  • Added new anaphora solution (see documentation)
  • Formatted watson assistant workspaces

v1.1.2 (2018-05-03)

  • Fixed bug: Added missing second quotation mark for CC_Chatten_Wer - answer in chitchat.json
  • Fixed bug: User could not get permission 'isAdmin' when the users client array is already enhanced

v1.1.1 (2018-04-10)

  • Removed unused container "external_frontend" from automatic set-up script
  • Enhancement: Answer store import now shows answers that were not imported due to them being invalid
  • Fixed bug: Corrected infinite answer import process when file contained invalid / badly formatted answers
  • Fixed bug: Corrected saveFeedback function in conversationController to prevent need for double clicking on save Feedback button in oneColumn view
  • Fixed bug: Corrected cloudant function of saveFeedback to return _id of inserted document (user feedback will be assigned to correct reporting entry now)
  • Fixed bug: external frontend api always sent 500 error instead of correct error code

v1.1.0 (2018-02-22)

  • NEW FEATURE: Added APIs to connect EVA with Facebook and Alexa
  • You can find the documentation for these new features in this repository: /docs/Documentation_Facebook_and_Alexa_Integration_for_EVA_v1.1.pdf

v1.0.2 (2018-02-22)

  • Fixed error handling in dialog testing
  • Show error message in frontend for dialog tests
  • Removed styling from default answers
  • Changed "jumpTo" to "skip user input" in business workspace
  • Fixed bug: profanity list using _rev from cloudant
  • Fixed bug: Avoid crashing on testing when testing workspaces are not defined
  • Fixed bug: Corrected cloudant implementations of getVersionsMarkedForDeletion and deleteAnswerProperty
  • Fixed bug: Prevent answer schema json from becoming polluted
  • Answer store: Added answer tags and answer option tags to import & export functionality

v1.0.1 (2018-02-07)

  • Fixed cloudant bug: Server crashing on wrong credentials when using cloudant db
  • Fixed cloudant bug: Cloudant database functions checking for empty results in a wrong way
  • Fixed frontend bug: Answer store import setting status correctly
  • Fixed bugs in conversation workspaces: Changed is_zzv_question occurrences to is_business_question
  • Fixed bug: Now storing kfold-test result in Cloudant in separate files to omit exceedance of maximum file size
  • Fixed bug: One column design not using 2 input fields anymore (fixed error user can not send message by hitting enter)
  • Fixed bug: On one column design chat & debug mode are too big on small desktop screens (not scrollable)
  • Added refreshCloudantSetup-Bashscript, which adds cloudant design documents if not present (should be executed after every upgrade if using cloudant!)
  • Feedback export now working as stream in cloudant database to omit errors on big sized files
  • One column design: Buttons size not depending on chat input (always full size)
  • Optimized status check for running answer store imports
  • Deactivated extended feedback modal on standard installation
  • Removed jargon-check for "getQuestionsByIntent" and "getQuestionsByEntity" (not implemented, can cause errors)
  • Library upgrade: Minimatch to version 3.0.4 (fixes DoS security issue)