Skip to content

Xatkit Options

Gwendal Daniel edited this page May 9, 2020 · 25 revisions

Xatkit supports several options that can be set through its configuration file. This article describes the available options of the Xatkit Runtime component and their possible values (note that platform-specific options are detailed in the platform's wiki articles).

Xatkit Tip: starting Xatkit from environment variables

Xatkit can be started without a .properties file, and use the environment variables to retrieve its property values. This is interesting in a Docker context, where environment variables can be easily set for each Docker instance. In this case the environment variables must be upper cased, . must be replaced by _, and properties containing relative paths should be refactored into absolute paths. For example, xatkit.execution.model = ./MyExecutionModel.execution should be defined as the environment variable XATKIT_EXECUTION_MODEL = <absolute path to MyExecutionModel.execution>.

The only exceptions are xatkit.libraries.custom.<alias name> and xatkit.platforms.custom.<alias name> that should be replaced by XATKIT_LIBRARIES_CUSTOM_<alias name> and XATKIT_PLATFORMS_CUSTOM_<alias name> with <alias names> being strictly equal (including case) to the ones defined in the execution file.

Core Options

These options affect Xatkit behavior independently of the selected intent recognition provider and platforms.

Key Values Description Constraint
xatkit.execution.model String The path of the execution model to run. This path can be relative or absolute. Mandatory
xatkit.message.delay Integer The delay (in milliseconds) to wait before sending message Optional (default 0)
xatkit.recognition.enable_monitoring Boolean Allows to enable/disable intent recognition monitoring Optional (default true)
xatkit.recognition.preprocessors List of comma-separated Strings The name of the pre-processors to activate for the bot (unqualified class names) Optional (default: empty list)
xatkit.recognition.postprocessors List of comma-separated Strings The name of the post-processors to activate for the bot (unqualified class names) Optional (default: empty list)
xatkit.data.directory String The path of the directory used to store execution data Optional (default ./data)
xatkit.server.port Integer The port used by the Xatkit server to receive events and expose services Optional (default 5000)
xatkit.server.public_url String The public URL of the deployed Xatkit server. This value is used to deploy the admin test bot and connect it to the running Xatkit instance. Optional (the bot will be accessible at http://localhost:5000 if not specified)
xatkit.server.ssl.keystore String The location of the keystore to use to sign https responses. Optional (the bot won't support https if not specified). Note: if this property is specified the configuration must contain a value for xatkit.server.public_url.
xatkit.server.ssl.keystore.store.password String The store password of the SSL keystore Mandatory if the configuration contains a keystore location
xatkit.server.ssl.keystore.key.password String The key password of the SSL keystore Mandatory if the configuration contains a keystore location
xatkit.platforms.custom.XXX String XXX must be the name of a platform alias used in the execution model, and the property value is the path of the platform's .platform file. This option allows to decouple the execution model from custom platform location, easing their deployment in production environments (where paths are typically different). Note that custom platforms imported using absolute paths do not need to specify this property. Mandatory if the execution model contains platform aliases
xatkit.libraries.custom.XXX String XXX must be the name of an intent library alias used in the execution model, and the property value is the path of the library's .intent file. This option allows to decouple the execution model from custom libraries location, easing their deployment in production environments (where paths are typically different). Note that custom libraries imported using absolute paths do not need to specify this property. Mandatory if the execution model contains library aliases
xatkit.platforms.abstract.XXX String XXX must be an abstract platform name, and the property value the path attribute of the concrete platform to use. For example, the property xatkit.platforms.abstract.ChatPlatform = com.xatkit.plugins.slack.platform.SlackPlatform will start a bot using the implementing the chat platform actions with Slack. Mandatory if the execution model uses actions from abstract platforms
xatkit.event.matcher.print_builder Boolean Debug option that can be enabled to log the content of the EventInstanceBuilder before building the matched EventInstance. This method allows to check the received JSON payload representing the event. Optional (default false)

DialogFlow Options

These options allow to customize the underlying DialogFlow intent recognition provider. Note that mandatory options only concern bots using a DialogFlow intent recognition provider.

Key Values Description Constraint
xatkit.dialogflow.projectId String The project ID of the DialogFlow agent used by the bot (see here for more information) Mandatory
xatkit.dialogflow.credentials.path String The path of the DialogFlow's credential file that grants access to the agent (see here for more information) Mandatory
xatkit.dialogflow.language String (DialogFlow language code) The language used by the DialogFlow agent Optional (default en-US)
xatkit.dialogflow.clean_on_startup Boolean Deletes all the registered intents and entities when starting the bot. This option allows to easily (re)-deploy bots under development, but also triggers a full re-training of the underlying agent each time the bot is started. Optional (default false)
xatkit.dialogflow.intent.loading Boolean Allows to disable intent loading from the DialogFlow agent. This option is used to reduce the number of queries sent to the DialogFlow API when running Jarvis tests.
Warning: disabling intent loading can create consistency issues between the DialogFlow agent and the Jarvis runtime and should not be used in production.
Note: this option is automatically set to false if jarvis.dialogflow.clean_on_startup is true.
Optional (default true)
xatkit.dialogflow.entity.loading Boolean Allows to disable entity loading from the DialogFlow agent. This option is used to reduce the number of queries sent to the DialogFlow API when running Jarvis tests.
Warning: disabling entity loading can create consistency issues between the DialogFlow agent and the Jarvis runtime and should be not used in production.
Note: this option is automatically set to false if jarvis.dialogflow.clean_on_startup is true.
Optional (default true)
xatkit.dialogflow.followup.lifespan Integer Allows to change the default lifespan used for followup intent's out contexts Optional (default 2)
xatkit.dialogflow.confidence.threshold Float The confidence threshold used to accept/reject recognized intent based on their confidence score. Note: intent containing any entities cannot be rejected based on the confidence threshold (these intents typically have low confidence scores) Optional (default 0: accept all intents)
Clone this wiki locally