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.
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.
Clicking on the button below creates an IBM Cloud DevOps Toolchain and deploys EVA to IBM Cloud.
To get support from the EVA core team, you can join the "Cognitive Factory" Slack Workspace and visit the eva-support channel.
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
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.
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
},
To take over the changes from the database into your application, please restart the app under the IBM Cloud console.
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”.
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.
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.
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
- 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
- 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
- Added pagination for answer store
- Added asset copyright headers
- Fixed testing aggregations with MongoDB
- Fixed users without "editUsers" permission not being able to change their password
- 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"
- 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)
- Added import/export functionality for the variableStore
- Replaced deprecated method to create Buffer
- 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
- 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)
- Added retry attempt for message call in K-Fold testing
- Fixed error on MongoDB credentials without ca certificate (see IBM Cloud changes)
- added cloudant integration for Facebook and Alexa APIs
- 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
- Added learning opt-out to all Watson services by default
- 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
- Added confidence check in Jumphandler for few word intents
- Fixed dropdown in K-fold Cross Validation
- 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
- Critical bug fix: Invalid JSON file crashed initial auto deployment
- 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
- Added external API definition file (Swagger 2.0)
- Added new anaphora solution (see documentation)
- Formatted watson assistant workspaces
- 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
- 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
- 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
- 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
- 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)