OfficeDev / microsoft-teams-apps-faqplus

FAQ Plus is a friendly Q&A bot that brings a human in the loop when it is unable to help with an answer from the knowledge base.
MIT License
141 stars 145 forks source link

page_type: sample languages:

Note

Beginning 1st October, 2022, you won’t be able to create new QnA Maker resources or knowledge bases. All existing QnA Maker service will be supported till 31st of March, 2025.

A newer version of the custom question and answering capability is now available as part of Azure Cognitive Service for Language. The newly released version 5.0 of FAQ Plus is using question answering within the Language Service.

FAQ Plus App Template

Documentation Deployment guide Architecture

Chatbots on Microsoft Teams are an easy way to provide answers to frequently asked questions by users. However, most chatbots fail to engage with users in a meaningful way because there is no human in the loop when the chatbot fails to answer a question well.

FAQ Plus bot is a friendly Q&A bot that brings a human in the loop when it is unable to help. A user can ask the bot a question and the bot responds with an answer if it's in the knowledge base. If not, the bot offers the user an option to "Ask an expert", which posts the question to a pre-configured team of experts to provide support. An expert can assign the question to themself, chat with the user to gain more context and add the question to the knowledge base from using a messaging extention so that the next user to ask that same question will get an answer from the chatbot!

The December 2022 (version 5) release of FAQ Plus includes Question Answering, an Azure Cognitive Service for Language feature. Question answering provides cloud-based Natural Language Processing (NLP) that allows you to create a natural conversational layer over your data. It is used to find the most appropriate answer for any input from your custom knowledge base (KB) of information. Build a knowledge base by adding unstructured documents or extracting questions and answers from your semi-structured content, including FAQ, manuals, and documents. Get the best answers from the questions and answers in your knowledge base—automatically. Question Answering supports a multi-turn feature to the end user experience. With the multi-turn feature, users will be presented with follow-up options along with an answer to their question. This enables the FAQ Plus bot to answer the user's question with more relevance. Multi-turn follow-up options are programmed directly into the Question Answering when the tenant admin uploads the Q&A pairs into the knowledge base. The latest (version 5) release of FAQ Plus separates the end-user and the sme bot. With splitting the bot and having different bot registrations, users can now setup different permission policies for these two bots.


FAQ Plus provides features to the expert team such as:

Here are some screenshots showing FAQ Plus in action:

FAQ Plus in action (user view)

FAQ Plus in action (experts view)

Invoking_taskmodule1

More screenshots and tips on how to use the app are in the Wiki of this repository.

Legal Notice

This app template is provided under the MIT License terms. In addition to these terms, by using this app template you agree to the following:

Getting Started

Begin with the Solution overview to read about what the app does and how it works.

When you're ready to try out FAQ Plus, or to use it in your own organization, you can choose to follow one of the below guides.

Migration

If you already have older version of FAQ Plus installed, then please use this migration guide. Please note that deploying the major version update, like FAQ Plus version 5.0 involves more than syncing the App Service and Azure Functions, so plan to review the migration guide before migrating to latest.

Feedback

Thoughts? Questions? Ideas? Share them with us here!

Please report bugs and other code issues here.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.