EDDI's Extensions

In this article we will talk about EDDI's extensions.

In an instance of EDDI there are multiple extensions that come to play, the list of  these supported extensions that you can use to configure/develop your chatbot with can be retrieved by calling the following api endpoint it will allow you to have an overview of what is enabled in your current instance of EDDI.

Note

All eddi's resources start with eddi:// this is used to distinguish if the resource is an eddi extension, e.g : callbacks,httpcalls,outputsets,bot packages, etc..

The API Endpoint :

HTTP MethodGET
API Endpoint
extensionstore/extensions

The Model:

[
  {
    "type": "string",
    "displayName": "string",
    "configs": {},
    "extensions": {}
  }
]

Description  :

type(String) the type of the extension
displayName(String) a given name to the extension
configs(Object) configuration of the extension
extensions(Object) extensions of the extension

Example 

More about regular dictionaries can be found  here .

Creating the regular dictionary
Request URL
	GET		http://localhost:7070/extensionstore/extensions

Response Body
[
  {
    "type": "ai.labs.normalizer",
    "displayName": "Input Normalizer",
    "configs": {
      "convertSpecialCharacter": {
        "displayName": "Convert Special Characters",
        "fieldType": "BOOLEAN",
        "defaultValue": true,
        "optional": true
      },
      "allowedChars": {
        "displayName": "Allowed Characters",
        "fieldType": "STRING",
        "defaultValue": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz <=>#€+&.,:;!?1234567890äÄüÜöÖßéáß",
        "optional": true
      }
    },
    "extensions": {}
  },
  {
    "type": "ai.labs.parser",
    "displayName": "Input Parser",
    "configs": {
      "includeUnknown": {
        "displayName": "Include Unknown Expressions",
        "fieldType": "BOOLEAN",
        "defaultValue": true,
        "optional": true
      },
      "includeUnused": {
        "displayName": "Include Unused Expressions",
        "fieldType": "BOOLEAN",
        "defaultValue": true,
        "optional": true
      },
      "appendExpressions": {
        "displayName": "Append Expressions",
        "fieldType": "BOOLEAN",
        "defaultValue": true,
        "optional": true
      }
    },
    "extensions": {
      "corrections": [
        {
          "type": "ai.labs.parser.corrections.levenshtein",
          "displayName": "Damerau Levenshtein Correction",
          "configs": {
            "distance": {
              "displayName": "Distance",
              "fieldType": "INT",
              "defaultValue": 2,
              "optional": true
            }
          },
          "extensions": {}
        },
        {
          "type": "ai.labs.parser.corrections.stemming",
          "displayName": "Grammar Stemming Correction",
          "configs": {},
          "extensions": {}
        },
        {
          "type": "ai.labs.parser.corrections.phonetic",
          "displayName": "Phonetic Matching Correction",
          "configs": {},
          "extensions": {}
        },
        {
          "type": "ai.labs.parser.corrections.mergedTerms",
          "displayName": "Merged Terms Correction",
          "configs": {},
          "extensions": {}
        }
      ],
      "normalizer": [
        {
          "type": "ai.labs.parser.normalizers.punctuation",
          "displayName": "Punctuation Normalizer",
          "configs": {
            "removePunctuation": {
              "displayName": "Remove Punctuation",
              "fieldType": "BOOLEAN",
              "defaultValue": false,
              "optional": true
            },
            "punctuationRegexPattern": {
              "displayName": "Punctuation RegEx Pattern",
              "fieldType": "STRING",
              "defaultValue": "!?:.,;",
              "optional": true
            }
          },
          "extensions": {}
        },
        {
          "type": "ai.labs.parser.normalizers.specialCharacter",
          "displayName": "Convert Special Character Normalizer",
          "configs": {},
          "extensions": {}
        },
        {
          "type": "ai.labs.parser.normalizers.contractedWords",
          "displayName": "Contracted Word Normalizer",
          "configs": {},
          "extensions": {}
        },
        {
          "type": "ai.labs.parser.normalizers.allowedCharacter",
          "displayName": "Remove Undefined Character Normalizer",
          "configs": {},
          "extensions": {}
        }
      ],
      "dictionaries": [
        {
          "type": "ai.labs.parser.dictionaries.integer",
          "displayName": "Integer Dictionary",
          "configs": {},
          "extensions": {}
        },
        {
          "type": "ai.labs.parser.dictionaries.decimal",
          "displayName": "Decimal Dictionary",
          "configs": {},
          "extensions": {}
        },
        {
          "type": "ai.labs.parser.dictionaries.ordinalNumber",
          "displayName": "Ordinal Numbers Dictionary",
          "configs": {},
          "extensions": {}
        },
        {
          "type": "ai.labs.parser.dictionaries.punctuation",
          "displayName": "Punctuation Dictionary",
          "configs": {},
          "extensions": {}
        },
        {
          "type": "ai.labs.parser.dictionaries.time",
          "displayName": "Time Expression Dictionary",
          "configs": {},
          "extensions": {}
        },
        {
          "type": "ai.labs.parser.dictionaries.email",
          "displayName": "Email Dictionary",
          "configs": {},
          "extensions": {}
        },
        {
          "type": "ai.labs.parser.dictionaries.regular",
          "displayName": "Regular Dictionary",
          "configs": {
            "uri": {
              "displayName": "Resource URI",
              "fieldType": "URI",
              "defaultValue": null,
              "optional": false
            }
          },
          "extensions": {}
        }
      ]
    }
  },
  {
    "type": "ai.labs.behavior",
    "displayName": "Behavior Rules",
    "configs": {
      "uri": {
        "displayName": "Resource URI",
        "fieldType": "URI",
        "defaultValue": null,
        "optional": false
      }
    },
    "extensions": {}
  },
  {
    "type": "ai.labs.output",
    "displayName": "Output Generation",
    "configs": {
      "uri": {
        "displayName": "Resource URI",
        "fieldType": "URI",
        "defaultValue": null,
        "optional": false
      }
    },
    "extensions": {}
  },
  {
    "type": "ai.labs.templating",
    "displayName": "Templating",
    "configs": {},
    "extensions": {}
  },
  {
    "type": "ai.labs.property",
    "displayName": "Property Extraction",
    "configs": {},
    "extensions": {}
  },
  {
    "type": "ai.labs.callback",
    "displayName": "External Callback",
    "configs": {
      "callbackUri": {
        "displayName": "Callback URI",
        "fieldType": "URI",
        "defaultValue": null,
        "optional": false
      },
      "callOnActions": {
        "displayName": "Call on Actions",
        "fieldType": "STRING",
        "defaultValue": "",
        "optional": true
      },
      "timeoutInMillis": {
        "displayName": "Timeout in Milliseconds",
        "fieldType": "URI",
        "defaultValue": 10000,
        "optional": true
      }
    },
    "extensions": {}
  },
  {
    "type": "ai.labs.httpcalls",
    "displayName": "Http Calls",
    "configs": {
      "uri": {
        "displayName": "Resource URI",
        "fieldType": "URI",
        "defaultValue": null,
        "optional": false
      }
    },
    "extensions": {}
  }
]

Response Code
	200

Response Headers
{
  "access-control-allow-origin": "*",
  "date": "Sat, 19 May 2018 22:00:11 GMT",
  "content-type": "application/json",
  "access-control-allow-headers": "authorization, Content-Type",
  "content-length": "6208",
  "access-control-allow-methods": "GET, PUT, POST, DELETE, PATCH, OPTIONS",
  "access-control-expose-headers": "location"
}