Using QnA Conversation to trigger other tasks (ideally using Blue Prism) - microsoft-teams

I have a feeling I'm missing something v obvious here, or perhaps I'm just using the wrong tools in the wrong order, or any combination of the above.
My company uses Blue Prism, and I'd like to build a virtual sales assistant that I can integrate into MS Teams. The idea being, the sales team can ask this bot to carry out a number of different tasks. The user thinks the bot is doing it, but in reality, the bot will be calling Blue Prism and triggering a separate process that has been built. We would integrate LUIS to attempt to split out all the different entities in the question and gradually narrow down what is what by replying to the original user question if it can't split them straight away.
I've built a brief knowledge base and integrated into Teams, however what I'm struggling with is learning how to actually have a central source read the messages asked by users within teams. I'd like to try and go directly to Blue Prism, but I'm aware that something like Flow or Automate may be an option, even if just to use this to trigger blue prism rather than it happening directly from Teams.
Any ideas? An example of a request may be - 'Log 100k pipeline app for the new product for mr smith.'
Thanks

I think you might be getting a bit of crossed lines between LUIS and QnAMaker. QnAMaker, as the name implies, is specifically where you have Questions, and want to maintain a knowledge base of likely answers. In contrast, LUIS would be used here to more accurately identify the instruction being passed, and extracting the values from it. It certainly possible to combine the two into the same bot, i.e. having a bot that handles both commands and questions, but that doesn't sound like what you're trying to do.
As a result, you should be focusing more on LUIS, and defining the relevant entities and intents. As an example, "log pipeline" would be an "intent", whereas "100k", "new product", and "mr smith" would be entities that the bot would know to work with.
What the bot does behind the scenes with that intent+entities combination is of course totally up to what you choose as an implementation, Blue Prism or otherwise.

Related

How to create "sub-channels" in Slack to track individual ideas spun off from the main channel?

We have a Slack workspace within a small (~400) scientific community who are discussing multiple ideas (to help solve the current COVID-19 crisis, so lots of conversations and topics. :-) Currently using one channel and wouldn't want to create 50.
What's the best way to spin off discussions into sub-topics. Slack doesn't support sub-channels (yet) does it?
Would a task management plug-in to Slack help here? Want to separate and localize topics and discussions, not track individual responsibility, so "task management" might not be the right paradigm.
Other suggestions?
Slack doesn't have sub-channels but you can mimic by using some conventions.
Eg.
`#covid-19-symptoms -> All discussions related to symptoms
`#covid-19-symptoms-respiration -> Symptoms related to respiration
`#covid-19-symptoms-respiration-topic-3 -> Symptoms related to respiration
If you using this Slack workspace exclusively for discussing Covid-19 you may remove the covid prefix which may be redundant.
You need to have one moderator who can review all the messages, repost/remove/shift across channels to make them more relevant.

Does QnA Service Active Learning work with questions from a channel?

I activated the Active Learning option in my QnA Service to improve the answers it gives using feedback from users, where they ask some questions and, if the score is too low, active learning lets them choose among the best rated answers in the Knowledge base or let them choose none of them as the correct one.
The problem is that the feedback the users give should go to my QnA Service for approval but when I look for suggestions in the portal, there's nothing waiting to be approved.
QnA MAker Active learning works with feedback from the emulator or other channels to your bot.
A comment from a related GitHub issue states:
When there is a low confidence score difference between the top answers, we collect weighted implicit and explicit feedback to cluster suggestions for any QnA ID.When enough feedback is collected for any given suggestion, it will show in the KB.
More specifically, we cluster similar user queries to generate suggestions. When minimum required feedback is collected, only then will the suggestions show in the KB.
The QnA team wants to avoid publicly divulging the exact logic of what exactly is the "minimum required feedback" and how often suggestions are generated (besides, the team is working on improving and optimizing the logic behind active learning as well)
--however to see suggestions appear in the qnamaker.ai portal:not only ensure that you've given the bot enough feedback
but also give the back end "some time" to allow for the suggestions to appear in the portal.
Again, feedback is collected when your user types in a query that returns answers from QnA that have confidence scores that are close together.
It is also good to note that feedback is not collected in the Test panel in the qnamaker.ai portal as of now. You will need to chat with your bot via emulator or a channel to provide feedback to your bot that it can use for active learning.
Note: If the suggestions are not showing up, then it is probably because the questions users are asking are not generating top N answers that have similar confidence scores.
The latest sample on Active learning in QnA Maker is available here.
Hope this helps.

How to understand active learning QnaMaker, botframework v4

I had read documents, and tried to run Active learning sample. I can understand how the program works.
The documents refer to Implicit feedback and Explicit feedback. I have two questions.
I can find the Explicit feedback' code. But I don't understand when the knowledgebase will show the feedback.
Implicit feedback where is the code? no code? I think both Implicit feedback and Explicit feedback have similar scores. what's the difference?
So, as the docs on active learning state, implicit feedback occurs when
when a user question has multiple answers with scores that are very close,
whereas with explicit feedback is the feedback that is received when the
client application asks the user which question is the correct question [and the user's selected question is used as explicit feedback
Where is the feedback collected
The feedback is collected from the conversation between user and bot.
As of now, feedback is not collected in the Test panel in the qnamaker.ai portal.
Where do we see the suggested questions generated via Active Learning?
When "enough" feedback is collected on a cluster of question and answer pair, you will see the active learning feedback inside the portal at qnamaker.ai > Edit
Further Active Learning Explanation
I'll include here one of my posts from a thread regarding Active Learning below. I would encourage you to read the full thread on active learning that was opened as a Microsoft Docs issue afterwards, however, to see included screenshots.
#Souvik04, follow the link to the Active Learning sample
bot
in the BotFramework-Samples repo for a example of how you can query
the QnA service from your bot with active learning enabled.
___ After conversing with the QnA team (Rohit is included in the conversation), here's a little more light regarding when you would
actually see the suggestions inside the portal at qnamaker.ai.
When there is a low confidence score difference between the top
answers, we collect weighted implicit and explicit
feedback
to cluster suggestions for any QnA ID.
=> When enough feedback is collected for any given suggestion, it will show in the KB.
More specifically, we cluster similar user queries to generate
suggestions. When minimum required feedback is collected, only then
will the suggestions show in the KB.
The QnA team wants to avoid publicly divulging the exact logic of what
exactly is the "minimum required feedback" and how often suggestions
are generated (besides, the team is working on improving and
optimizing the logic behind active learning as well)
--however to see suggestions appear in the qnamaker.ai portal:
* not only ensure that you've given the bot enough feedback
* but also give the back end "some time" to allow for the suggestions to appear in the portal.
Again, feedback is collected when your user types in a query that
returns answers from QnA that have confidence scores that are close
together.
It is also good to note that feedback is not collected in the Test
panel in the qnamaker.ai portal as of now. You will need to chat with
your bot via emulator or a channel to provide feedback to your bot
that it can use for active learning.

How to create subgroups for #mentions in Microsoft Teams

Right now I have a small group of people beta testing MS Teams in hopes that it would be a good team collaboration/communication tool.
But, I need one important feature to really make it most useful and I can't find it.
I know you can mention everybody with an #team or #channel, or a single user with #username. But can I create subgroup names that include a subset of the entire team?
Let's say I have a big team of 25 users. I want to create certain subgroups, like #group1 that only includes 10 of those users or #group2 that only has 5 of those user.
I need to have a one mention way to contact this subgroup without having to individually mention each person or using #channel to mention to a lot of people who aren't interested.
Is there a way to do this?
Make 2 channels:
#group1
#group2
Ask people to join a channel or add them manually.
Now you can mention them by that channel name i.e. #group1 or #group2
For example, imagine you have developer and operations teams in your "Adme Inc" company.
You create a Team "AdmeInc".
General channel is created automatically.
You create a channel Dev in that team and add all developers to it
You create a channel Ops in that team and add everyone in operations team to it.
Now everyone can chat in General about all kind of stuff.
Anyone can mention #Dev anywhere and everyone in developers team is notified.
Or they can mention #Ops anywhere and everyone in operations team is notified.
In the meantime, MS Teams offers tags to achieve this. Tag the team members using your own defined tags. Then simply #-mention the tag name in a standard channel (or in a chat).
https://support.microsoft.com/en-us/office/using-tags-in-teams-667bd56f-32b8-4118-9a0b-56807c96d91e

Real time conversation tracking in Microsoft Teams

Teams stores channel conversations in a hidden folder in an Office 365 group. I’m looking for a programmatic way for us to access/log all of that data in as near real time as possible. I've looked at going through Exchange, the eDiscovery API and also the Graph API and I can't find any way of doing this.
If this is something a bot could do that’d be best, but I don’t think bots can actually follow channel conversations. They only seem to be called when they are # mentioned.
After a lot of looking around and playing with APIs, it looks like the best way to do this kind of thing is going via the Microsoft Exchange API.
https://github.com/OfficeDev/ews-managed-api
There are 2 different things I'm using this for- one is just regular archiving of channel information and private messages. The EWS API makes this not too challenging. The other is to give a bot insight into a conversation preceding it being mentioned. This is a little slow, can take up to a minute from the original message being input into Teams.
I really wish this was a part of Teams to begin with, and clearly I am not alone: https://microsoftteams.uservoice.com/forums/555103-public/suggestions/16940815-ability-to-archive-channels-and-chats
You have to be careful not to be too aggressive as you can get throttled.

Resources