wechaty-qnamaker
    TypeScript icon, indicating that this package has built-in type declarations

    0.6.2 • Public • Published

    WECHATY-QNAMAKER

    NPM Version NPM

    QnA Maker is a cloud-based Natural Language Processing (NLP) service that easily creates a natural conversational layer over your data.

    Wechaty QnAMaker can be used to find the most appropriate answer for WeChat users, from your custom knowledge base (KB) of information.

    Wechaty Plugin QnAMaker

    Wechaty Plugin QnAMaker Powered by Wechaty TypeScript

    INTRODUCTION

    Wechaty QnAMaker Plugin helps you to answer questions in WeChat with the power of https://QnAMaker.ai.

    QnAMaker for Wechaty Community Knowledge Base

    REQUIREMENTS

    1. Node.js v12+
    2. Wechaty v0.40+
    3. This QnAMaker Plugin
    4. Azure Subscription for Cognitive Service
    5. QnAMaker Knowledge Base (KB)

    USAGE

    To use the plugin:

    import { WechatyQnAMaker } from 'wechaty-qnamaker'
     
    const config = {
      mention: true, // default true: require mention the bot in room.
      room: true,
      contact: true, // enable direct message.
     
      /**
       * Language of Questions & Score of Answers
       */
      language: 'english',
      scoreThreshold: 50,   // minimum score for the answer
     
      /**
       * QnAMaker Service API
       */
      endpointKey: '705a3468-12bb-4e10-a314-7daa947f18d6',
      knowledgeBaseId: '254e33ad-ca6d-405d-980d-dbd3615e2605',
      resourceName: 'wechaty',
    }
     
    const QnAMakerPlugin = WechatyQnAMaker(config)
     
    const wechaty = new Wechaty()
    wechaty.use(QnAMakerPlugin)

    We also provide a Vorpal Command:

    import {
      WechatyVorpal,
      WechatyVorpalConfig,
    }                        from 'wechaty-vorpal'
    import { Faq  }           from 'wechaty-qnamaker'
     
    const vorpalConfig: WechatyVorpalConfig = {
      contact : true,
      mention : true,
      room    : true,
      silent  : true,
     
      use: [
        Faq(configCeibs),
      ],
    }
     
    const VorpalPlugin = WechatyVorpal(vorpalConfig)
     
    const wechaty = new Wechaty()
    wechaty.use(VorpalPlugin)

    QnAMaker Wechaty Vorpal FAQ Command

    1 Configure QnAMaker

    1. endpointKey: Endpoint Key for QnAMaker.ai
    2. knowledgeBaseId: Knowledge Base ID for your knowledge base (KB)
    3. resourceName: Resource Name for your Cognitive Service. (for example, wechaty is the Resource Name for https://wechaty.azurewebsites.net)

    2 Language of Questions & Score of Answers

    1. config.language: If set to a language ('chinese', 'english', etc), then the plugin will only reply message text in that specified language. (default: match all languages)
    2. config.scoreThreshold: If the answer from QnAMaker.ai service has a score below the scoreThreshold, then that answer will not be used. (A perfect score is 100)

    3 Matchers & Skipper

    1. config.contact: Whether to allow direct message to be sync with ticket reply. false to deny all, true for allow all; Supports contact id(string) and contact name(RegExp). You can also mix them in array.
    2. config.room: The room id of your service WeChat room.
    3. config.mention: Whether require the message mention the bot.
    4. config.skipMessage: If set it to string or RegExp, then the message text that match the config will not be processed by the plugin. Array supported.

    ENVIRONMENT VARIABLES

    The following two environment variables will be used if the required information is not provided by the config.

    1 WECHATY_PLUGIN_QNAMAKER_ENDPOINT_KEY

    process.env.WECHATY_PLUGIN_QNAMAKER_ENDPOINT_KEY will be used if the config.endpointKey is not provided.

    2 WECHATY_PLUGIN_QNAMAKER_KNOWLEDGE_BASE_ID

    process.env.WECHATY_PLUGIN_QNAMAKER_KNOWLEDGE_BASE_ID will be used if the config.knowledgeBaseId is not provided.

    3 WECHATY_PLUGIN_QNAMAKER_RESOURCE_NAME

    process.env.WECHATY_PLUGIN_QNAMAKER_RESOURCE_NAME will be used if the config.resourceName is not provided.

    EXAMPLE

    Our Friday BOT are using wechaty-qnamaker to connect our WeChat conversations with QnAMaker.

    1. Source Code - You can read the source code from: https://github.com/wechaty/friday/blob/master/src/plugins/qnamaker.ts
    2. Spreadsheets - You can read our Question & Answer Pairs for Wechaty Community from: https://docs.google.com/spreadsheets/d/14o7ytbZDRyX53nn8F4VohBgzAP6pMnCRPWFFzdcyzxc/edit

    Note: our question & answer pairs sheet are open to edit. Please feel free to add question & answer pair if you believe it's necessary, and thank you for your contribution!

    RESOURCES

    HISTORY

    master

    v0.6 (Aut 5, 2020)

    1. Add Vorpal command: faq
    2. Rename minScore to scoreThreshold in configOptions.

    v0.4 (July 23, 2020)

    1. Rename from wechaty-plugin-qnamaker to wechaty-qnamaker

    v0.2 (June 29, 2020)

    1. Init code base
    2. QnAMaker integration
    3. Add Language Detecter to limit the plugin to only answer a specific language(s)

    CONTRIBUTORS

    contributor contributor contributor contributor contributor contributor contributor contributor

    AUTHOR

    Huan LI (李卓桓), Microsoft Regional Director & AI MVP, <zixia@zixia.net>

    Profile of Huan LI (李卓桓) on StackOverflow

    COPYRIGHT & LICENSE

    • Code & Docs © 2020 Huan LI <zixia@zixia.net>
    • Code released under the Apache-2.0 License
    • Docs released under Creative Commons

    Install

    npm i wechaty-qnamaker

    DownloadsWeekly Downloads

    46

    Version

    0.6.2

    License

    Apache-2.0

    Unpacked Size

    86.1 kB

    Total Files

    70

    Last publish

    Collaborators

    • zixia