wingbot
Version:
Enterprise Messaging Bot Conversation Engine
716 lines • 26.3 kB
JSON
{
"plugins": [
{
"id": "ai.wingbot.disambiguation",
"name": "Disambiguation",
"description": "Put me into a fallback interaction to first position (if there'll be no options, output will continue below the plugin)",
"availableSince": 2.22,
"editable": true,
"isFactory": false,
"category": "conversation",
"items": [
{ "id": "diambiguations", "description": "Disambiguation message - options will be added as quick replies" }
],
"inputs": [
{
"type": "select",
"name": "local",
"label": "Disambiguate local handlers",
"options": [
{ "value": "false", "label": "no, only globals" },
{ "value": "true", "label": "yes, only locals" }
]
},
{
"type": "select",
"name": "min",
"label": "Minimum number of options",
"options": [
{ "value": "1", "label": "1" },
{ "value": "2", "label": "2" }
]
},
{
"type": "select",
"name": "max",
"label": "Maximum number of options",
"options": [
{ "value": "2", "label": "2" },
{ "value": "3", "label": "3" },
{ "value": "4", "label": "4" },
{ "value": "5", "label": "5" }
]
}
]
},
{
"id": "ai.wingbot.oneTimeNotificationRequest",
"name": "wingbot: Facebook's one-time notification request",
"description": "Ask user to subscribe to one time notification",
"availableSince": 3.01,
"editable": true,
"isFactory": false,
"category": "facebook",
"items": [],
"inputs": [
{
"type": "text",
"name": "title",
"label": "Prompt text visible to user"
},
{
"type": "postback",
"name": "action",
"label": "Target interaction"
},
{
"type": "text",
"name": "tag",
"label": "Subscribe user to tag (must match with campaign)"
}
]
},
{
"id": "ai.wingbot.passThreadToBot",
"name": "Handover to another bot",
"description": "Pass thread to another application (keep action and intent empty to pass an input text)",
"availableSince": 3.0,
"editable": false,
"isFactory": true,
"category": "uberbot",
"items": [],
"inputs": [
{
"type": "text",
"name": "targetAppId",
"label": "Target Application Id (required)"
},
{
"type": "text",
"name": "targetAction",
"label": "Target action"
},
{
"type": "text",
"name": "targetIntent",
"label": "Target intent"
}
]
},
{
"id": "ai.wingbot.setState",
"name": "Set state variable",
"description": "Set any value to user state (you can use dot notation for nested objects)",
"availableSince": 2.26,
"deprecatedSince": 3.0,
"editable": false,
"isFactory": false,
"category": "conversation",
"items": [],
"inputs": [
{
"type": "text",
"name": "attr",
"label": "Variable"
},
{
"type": "text",
"name": "value",
"label": "Value"
}
]
},
{
"id": "ai.wingbot.setStateFromInput",
"name": "Set state variable from text message",
"description": "Set a user message, or quick reply, to state variable (you can use dot notation for nested objects)",
"availableSince": 2.26,
"deprecatedSince": 3.0,
"editable": false,
"isFactory": false,
"category": "conversation",
"items": [],
"inputs": [
{
"name": "attr",
"type": "text",
"label": "Variable"
}
]
},
{
"id": "ai.wingbot.trackingEvent",
"name": "Report tracking event",
"description": "You can use handlebars templates here\nFrontend GA categories: generate_lead,view_item,purchase,tutorial_begin,tutorial_complete,sign_up,share\nFrontend GA action: item category\nFrontend GA label: currency (USD)",
"availableSince": 3.13,
"editable": false,
"isFactory": false,
"category": "conversation",
"items": [],
"inputs": [
{
"name": "type",
"type": "select",
"label": "Event type",
"options": [
{ "value": "report", "label": "report" },
{ "value": "conversation", "label": "conversation" },
{ "value": "audit", "label": "audit" },
{ "value": "log", "label": "log" }
]
},
{
"name": "category",
"type": "text",
"label": "Event category"
},
{
"name": "action",
"type": "text",
"label": "Event action (item category)"
},
{
"name": "label",
"type": "text",
"label": "Event label (currency)"
},
{
"name": "value",
"type": "text",
"label": "Event value (number)"
}
]
},
{
"id": "ai.wingbot.waitASecond",
"name": "Wait a second",
"description": "Make a short delay between bots messages",
"availableSince": 3.06,
"editable": true,
"isFactory": false,
"category": "conversation",
"items": [],
"inputs": []
},
{
"id": "ai.wingbot.stopResponding",
"name": "Stop responding",
"description": "Make a short delay between bots messages",
"availableSince": 3.06,
"editable": true,
"isFactory": false,
"category": "conversation",
"items": [],
"inputs": []
},
{
"id": "ai.wingbot.putABreadcrumb",
"name": "Put a breadcrumb",
"description": "Remember this step to be able to get back there later",
"availableSince": 3.06,
"editable": true,
"isFactory": false,
"category": "breadcrumbs",
"items": [],
"inputs": []
},
{
"id": "ai.wingbot.goToLastBreadcrumb",
"name": "Go to last breadcrumb",
"description": "If there is a breadcrumb, go to it. If not, go to start.",
"availableSince": 3.06,
"editable": true,
"isFactory": false,
"category": "breadcrumbs",
"items": [],
"inputs": []
},
{
"id": "ai.wingbot.goBack",
"name": "Go back to previous interaction",
"description": "If there is a previous interaction, go to it",
"availableSince": 3.06,
"editable": true,
"isFactory": false,
"category": "breadcrumbs",
"items": [],
"inputs": []
},
{
"id": "ai.wingbot.keepInInteraction",
"name": "Keep user in this interaction (use it as a fallback)",
"description": "Users response will be processed by this interaction",
"availableSince": 3.06,
"editable": true,
"isFactory": false,
"category": "conversation",
"items": [],
"inputs": []
},
{
"id": "ai.wingbot.keepInInteractionJustOnce",
"name": "Keep user in this interaction (use it as a fallback just once)",
"description": "Next response will be processed by this interaction, but the other not",
"availableSince": 3.06,
"editable": true,
"isFactory": false,
"category": "conversation",
"items": [],
"inputs": []
},
{
"id": "ai.wingbot.keepPreviousHandlers",
"name": "Keep previous NLP handlers and fallback (repeatedly)",
"description": "Response will be processed same as in previous interaction - users can correct themselves",
"availableSince": 3.06,
"editable": true,
"isFactory": false,
"category": "conversation",
"items": [],
"inputs": []
},
{
"id": "ai.wingbot.keepPreviousHandlersJustOnce",
"name": "Keep previous NLP handlers and fallback (just once)",
"description": "Response will be processed same as in previous interaction - users can correct themselves",
"availableSince": 3.06,
"editable": true,
"isFactory": false,
"category": "conversation",
"items": [],
"inputs": []
},
{
"id": "ai.wingbot.conditionIfGoBackPossible",
"name": "Show when there is a way back (lastInteraction)",
"description": "Useful for link to 'go back' plugin.",
"availableSince": 3.06,
"editable": true,
"isFactory": false,
"category": "CONDITION",
"items": [],
"inputs": []
},
{
"id": "ai.wingbot.ifImageDetected",
"name": "If user sends an image",
"description": "Continue, if request contains an image attachment",
"availableSince": 3.06,
"editable": true,
"isFactory": false,
"category": "detectors",
"items": [],
"inputs": []
},
{
"id": "ai.wingbot.ifStickerDetected",
"name": "If user sends a sticker",
"description": "Continue, if request contains a Facebook sticker",
"availableSince": 3.06,
"editable": true,
"isFactory": false,
"category": "detectors",
"items": [],
"inputs": []
},
{
"id": "ai.wingbot.jumpTo",
"name": "Jump to: set return point",
"description": "Use in combination with 'Jump back: go to return point'",
"availableSince": 3.16,
"editable": true,
"isFactory": false,
"category": "conversation",
"items": [],
"inputs": [
{
"name": "whereToJump",
"type": "postback",
"label": "Where to jump"
},
{
"name": "whereToJumpBack",
"type": "postback",
"label": "Return point"
}
]
},
{
"id": "ai.wingbot.jumpBack",
"name": "Jump back: go to return point",
"description": "Makes the bot able to proceed some shared conversation process and then get user back to 'Return point'. Returns user to previously defined return point from plugin 'Jump to: set return point'",
"availableSince": 3.16,
"editable": true,
"isFactory": false,
"category": "conversation",
"items": [],
"inputs": []
},
{
"id": "ai.wingbot.regexp",
"name": "RegExp condition",
"description": "Text to test can be specified using Handlebars, but it's optional.\nRegExp expression is mandatory.\nDiacritics in the input is removed before evaluating.",
"availableSince": 3.16,
"editable": false,
"isFactory": true,
"category": "uberbot",
"items": [
{
"id": "matches",
"description": "if input matches an expression"
},
{
"id": "not",
"description": "if not"
}
],
"inputs": [
{
"name": "expression",
"type": "text",
"label": "RegExp expression"
}, {
"name": "input",
"type": "text",
"label": "Text to test (keep empty to use user input)"
}
]
},
{
"id": "ai.wingbot.slotsRegister",
"name": "Slot filling: register",
"description": "Sets up slot filling conversation for a list of entities",
"availableSince": 3.39,
"editable": false,
"isFactory": true,
"category": "conversation",
"inputs": [
{
"type": "text",
"name": "intents",
"label": "Intent list (comma separated)",
"validations": [
{ "type": "regexp", "value": "^[^\\s]+$", "message": "intent for slot filling should not be empty" }
]
},
{
"type": "postback",
"name": "doneAction",
"label": "Continue here, when finished"
},
{
"type": "array",
"name": "steps",
"label": "Slot",
"keyPropertyName": "entity",
"inputs": [
{
"type": "text",
"name": "entity",
"label": "Entity (with @)",
"validations": [
{ "type": "regexp", "value": "^@[a-zA-Z0-9-]+$", "message": "the entity for the slot filling should be valid" }
]
},
{
"type": "select",
"name": "type",
"label": "Type",
"options": [
{ "label": "Required", "value": "req" },
{ "label": "Multi value", "value": "mul" },
{ "label": "Additional", "value": "add" }
]
},
{
"type": "postback",
"name": "askAction",
"label": "Question"
},
{
"type": "postback",
"optional": true,
"name": "validateAction",
"label": "Validation"
}
]
}
],
"items": [
]
},
{
"id": "ai.wingbot.slotsContinue",
"name": "Slot filling: continue",
"description": "Move the slot filling to the next step",
"availableSince": 3.39,
"editable": false,
"isFactory": true,
"category": "conversation",
"inputs": [
{
"name": "skip",
"label": "Skip back to entity (reset entities)",
"type": "text",
"validations": [
{ "type": "regexp", "value": "^\\s*@[a-zA-Z0-9-]+\\s*(,\\s*@[a-zA-Z0-9-]+\\s*)*$", "message": "the entity for the slot filling should be valid" }
]
},
{
"name": "fill",
"label": "Skip entity (mark as filled)",
"type": "text",
"validations": [
{
"type": "regexp",
"value": "^(\\s*@[a-zA-Z0-9-]+\\s*,?)*$",
"message": "the entity to skip should be valid"
}
]
}
],
"items": [
]
},
{
"id": "ai.wingbot.clearMessageSequences",
"name": "Clear message sequences state",
"description": "Put it in a first interaction of the process, where would you like to have clear states of messages sequences",
"availableSince": 3.53,
"editable": true,
"isFactory": false,
"category": "conversation",
"inputs": [
],
"items": [
]
},
{
"id": "ai.wingbot.openai",
"name": "OpenAI - Chat",
"description": "Use within fallback to attach ChatGPT to your chatbot\n\nYou can use {{message}} variable in a message annotation.",
"availableSince": 3.54,
"editable": false,
"isFactory": true,
"category": "conversation",
"inputs": [
{
"name": "token",
"label": "API Key",
"type": "text",
"validations": [
{ "type": "regexp", "value": "^.+$", "message": "the token should be filled" }
]
},
{
"type": "select",
"name": "model",
"label": "Chat GPT model",
"options": [
{ "value": "gpt-3.5-turbo", "label": "gpt-3.5-turbo" },
{ "value": "gpt-3.5-turbo-0301", "label": "gpt-3.5-turbo-0301" }
]
},
{
"type": "textarea",
"name": "system",
"label": "Initial preset message (system)"
},
{
"type": "text",
"name": "temperature",
"label": "Temperature: 0.0 - 2.0 (1.0) - randomness of answers",
"validations": [
{
"type": "regexp",
"value": "^[0-9]*([.,][0-9]+)?$",
"message": "Temperature should be a valid float number"
}
]
},
{
"type": "text",
"name": "presence",
"label": "Presence: -2.0 - 2.0 (0.0) - likelihood to talk about new topics",
"validations": [
{
"type": "regexp",
"value": "^-?[0-9]*([.,][0-9]+)?$",
"message": "Presence should be a valid float number"
}
]
},
{
"type": "text",
"name": "maxTokens",
"label": "Max Tokens: 0 - 4096 (512) - max. number of returned tokens",
"validations": [
{
"type": "regexp",
"value": "^[0-9]*$",
"message": "Max tokens should be a valid number"
}
]
},
{
"type": "text",
"name": "limit",
"label": "History context limit: (10)",
"validations": [
{
"type": "regexp",
"value": "^-?[0-9]*$",
"message": "History context limit should be a valid number"
}
]
},
{
"type": "text",
"name": "persona",
"label": "Message persona name"
},
{
"type": "text",
"name": "annotation",
"label": "Message annotation"
},
{
"type": "textarea",
"name": "systemAfter",
"label": "Current message (system)"
},
{
"type": "array",
"name": "continueConfig",
"label": "Continue quick reply",
"keyPropertyName": "lang",
"columns": [
{
"name": "title",
"label": "Quick Reply"
}
],
"inputs": [
{
"type": "text",
"name": "lang",
"label": "Language (optional)"
},
{
"type": "text",
"name": "title",
"label": "Quick reply title"
}
]
}
],
"items": [
{
"id": "fallback",
"description": "If API call fails"
}
]
},
{
"id": "ai.wingbot.persona",
"name": "Set persona",
"description": "Use this persona for following messages.",
"availableSince": 3.56,
"editable": false,
"isFactory": true,
"category": "conversation",
"inputs": [
{
"name": "name",
"label": "Persona name",
"type": "text"
},
{
"name": "img",
"label": "Persona image",
"type": "text"
}
],
"items": [
]
},
{
"id": "ai.wingbot.upload",
"name": "Process upload",
"description": "Plugin is intended to be used in an interaction plugin",
"availableSince": 3.60,
"editable": false,
"isFactory": true,
"category": "detectors",
"inputs": [
{
"name": "type",
"label": "Allowed attachment type",
"type": "select",
"options": [
{ "value": "any", "label": "any attachment type" },
{ "value": "image", "label": "image" },
{ "value": "audio", "label": "audio" },
{ "value": "video", "label": "video" },
{ "value": "file", "label": "file" }
]
},
{
"name": "variable",
"label": "Variable name to set attachment URL(s)",
"type": "text"
},
{
"name": "datatype",
"label": "Allowed attachment type",
"type": "select",
"options": [
{ "value": "string", "label": "string" },
{ "value": "array", "label": "array of strings" }
]
},
{
"name": "allowSuffixes",
"label": "Allowed attachment suffixes (comma separated)",
"type": "text"
}
],
"items": [
{
"id": "noAttachment",
"description": "No attachment uploaded"
},
{
"id": "badType",
"description": "Disallowed attachment type"
},
{
"id": "success",
"description": "Successfully uploaded"
}
]
}
],
"categories": [
{
"id": "conversation",
"name": "Conversation features"
},
{
"id": "breadcrumbs",
"name": "Moving in conversation"
},
{
"id": "detectors",
"name": "React to unusual messages"
},
{
"id": "facebook",
"name": "Facebook Messenger"
},
{
"id": "uberbot",
"name": "Masterbot architecture"
}
]
}