UNPKG

wingbot

Version:

Enterprise Messaging Bot Conversation Engine

716 lines 26.3 kB
{ "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" } ] }