Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Excerpt
hiddentrue

The Knowledge Base Skill gives the Digital Person the ability to answer end user questions based on your knowledge-base provided in a JSON file.

Overview

This Knowledge Base Skill gives the Digital Person the ability to answer end user questions based on a customer’s knowledge-base. The Knowledge base Skill data is provided in a JSON file with expected questions from the users and corresponding responses. If the there is a match the Digital person will pick one of the responses from the list randomly.

This skill is:

  • Built and owned by Soul Machines Ltd.

  • Only supported in English.

Limitations

  1. The Skill does not validate the JSON file. So an invalid JSON file can result in the Skill or project not working as expected.

  2. This skill does not work with Elegant Failure.

Skill Demo

KnowledgeBaseSkill_Demo.mp4

JSON File Format

The JSON file must be in it raw form or hosted on any static site.

  1. It needs to be publicly accessible (no login or other step)

  2. It needs to directly serve the .json file as raw text (not formatted to look nice, not served up in a viewer)

The knowledge base data is a JSON file containing an array of questions and answers. The format of the data is as follows:

  1. "intent" - Used as a unique identifier for each JSON object.

  2. "examples" - This is an array of strings that contain examples of different phrasings for the question.

  3. "metadata" - This contains an array of strings that are the responses to the question. If more than one value is found for a given intent, the skill will randomly pick one of the responses to reply with.

Code Block
languagejson
[
  {
    "intent": "WhatIsSoulMachines",
    "examples": [
      "what is soul machines",
      "tell me about soul machines",
      "who is soul machines",
      "who are soul machines",
      "what are soul machines",
      "what is soul machine",
      "who is soul machine",
      "who are soul machine",
      "what are soul machine",
      "tell me about soul machine",
      "explain soul machines to me"
    ],
    "metadata": [
      "Soul Machines is the world leader in humanizing AI to create astonishing Digital People. A little secret, they actually created me.",
      "Soul Machines is my creator"
    ]
  },
  {
    "intent": "HowAreYou",
    "examples": [
      "Hoe are you",
      "thow are you doing",
      "are you doing good today",
      "how are you feeling",
      "how are you going",
      "how are u",
      "how are you going today",
      "how do you feel today",
      "how do you do"
    ],
    "metadata": [
      "I'm good",
      "Great!"
    ]
  }
]

If there is not an exact match, a Natural Language Understanding (NLU) process will attempt to find the closest intent based on the examples. If no match is found, it will reply back with a the configurable No Match Response.

Best Practices

  1. Aim to add at least 10 phrases in the array for the best possible match for the question

  2. Get as many new people to test your Knowledge Base as you can so that you have a wide range of questions and answers. 

  3. Make sure your JSON file is validated before you configure the Knowledge Base skill.

Configurations

Provide the following information in the Knowledge Base Skill configuration screen in Digital DNA Studio. See Adding Skills to your Digital Person for detailed instructions:

Image Added

 

Field

Type

Description

URL Pointing to the JSON file Containing the Data

TEXT

This should be a publicly available URL that points to a raw file containing the FAQ JSON data.
For example, the JSON file can be hosted on Google drive, like this.

JSON Data Pasted Directly In

TEXT

This is the Knowledge Base JSON data pasted directly in. If you supply both the parameters the JSON DATA parameter will win out.

No Match Response

TEXT

This is an optional field to set the response from the Digital Person in case there is no match. The default is Sorry, I don't have an answer for that.