kedro icon indicating copy to clipboard operation
kedro copied to clipboard

Create a #kedro-users Slackbot

Open tynandebold opened this issue 2 years ago • 7 comments

Description

We receive anywhere between two and 10+ queries each day in the #kedro-users Slack channel, with probably more to come in the future as the community grows. Many times, @datajoely and others are asking a standard suite of questions or sending the same few links to the users, such as:

  • What version of Kedro and Python are you using?
  • Please provide the error message.
  • At what step do you get that error exactly?
  • Please refer to the migration guide.
  • What you want here are hooks.
  • And others

We could save time and energy by having a Slackbot respond to each message in the channel and prompt the user for more information while responding with context that may assist them.

Possible Implementation

The flow would be this:

  1. A user posts a message in the channel.
  2. a) The bot responds with a standard suite of questions. b) The Bot also reads the context of the user's message, and from that context responds with some links to documentation that may help.
  3. The user (hopefully) responds the to Bot's message with the additional information.
  4. When a Kedro maintainer comes to help, they have more information than if the Bot didn't exist, and (hopefully) have to ask fewer questions of the user.

For point 2b above, the mechanism would be to match a set of predefined keywords and respond with links to the documentation or GitHub issue/discussion related to that keyword. A possible list of keywords would include:

  • Hooks
  • Migration
  • Config loader
  • Docs
  • Deployment
  • Databricks
  • Templating
  • Modular pipeline
  • ...

Possible Alternatives

We don't do part 2b above and only do the very low-level version, which could still add value.

tynandebold avatar Jun 27 '22 09:06 tynandebold

We can get far with a Slack workflow without actually building a fully fledged bot :)

datajoely avatar Jun 27 '22 09:06 datajoely

I didn't think a workflow was customizable enough. Can't you only trigger one if it falls under these four options?

image

I know you can also trigger a workflow via a webhook, though that doesn't seem like the way to do it either.

tynandebold avatar Jun 27 '22 10:06 tynandebold

I'm just worried a chatbot is an unwinnable game, we could get quite far with emoji reactions for the some of the common ones like:

kedro-dynamic-pipelines kedro-hooks kedro-migration-guide

datajoely avatar Jun 27 '22 10:06 datajoely

For me it isn't win/lose, more a nudge in some direction and a way to easier glean information.

How's the emoji sent though, via a human selecting it and sending the message, the way the powerpoint one works?

tynandebold avatar Jun 27 '22 10:06 tynandebold

Yeah exactly - much more fragile and simple than a proper bot. It's a really hard topic to know what's the best approach.

datajoely avatar Jun 27 '22 10:06 datajoely

We receive anywhere between two and 10+ queries each day in the #kedro-users Slack channel, with probably more to come in the future as the community grows.

Is the plan to (mostly) kill the Slack channel dead? Otherwise, this seems like work that will only provide value in the short term. Feels like it would make more sense to push more people to Discord, and at least build the bot/solution there.

deepyaman avatar Jun 27 '22 10:06 deepyaman

That's a complicated one - I'll let @yetudada provide an answer there. That being said, the problem is the same and arguably the back-end should work via a platform that supports both Slack and Discord.

datajoely avatar Jun 27 '22 10:06 datajoely

Just returning to this ticket--I think a Slackbot would be great to review the existing corpus of questions and come up with some links that potentially contain answers. I don't find search on Slack is that great (and we have a large chunk of question/answers on the Discord Linen) so if we had a bot that could run through existing content on linen/slack and provide pointers to the most relevant conversations, I think that would help since that could make a user-friendly interface on a Q&A knowledgebase comprised of those two resources.

I'm less enthused by having a bot that just asks for clarification on

stichbury avatar Nov 14 '22 14:11 stichbury

that just asks for clarification on...

...on what?

Either way, I agree, and that's another part of what we thought of in the Hackathon: the Slackbot would use all previously-asked questions as the lookup and then return a (hopefully meaningful) result from that corpus.

tynandebold avatar Nov 14 '22 15:11 tynandebold

Beware from pushback from the tech community https://github.com/mdn/yari/issues/9208

I think we could start by a very simple bot that helps locate specific bits of the documentation and is always triggered manually. For example:

User: How can I run nodes in parallel? Kedroid: /kedro_helper ParallelRunner @kedro_helper: Here is the documentation for the ParallelRunner class https://docs.kedro.org/en/stable/kedro.runner.ParallelRunner.html

(This doesn't need AI by the way)

astrojuanlu avatar Jul 07 '23 06:07 astrojuanlu

I agree with all of that, and also like that it leaves AI out, since that wasn't really ever in scope.

tynandebold avatar Jul 07 '23 09:07 tynandebold

The truth is that we don't have more spots for apps and bots in Slack at the moment, unless we start paying a small fortune. I'm closing this issue for now, which doesn't mean we aren't ever going to do this - just that we will not do it for the time being.

astrojuanlu avatar Nov 24 '23 13:11 astrojuanlu