kedro-org / kedro

Kedro is a toolbox for production-ready data science. It uses software engineering best practices to help you create data engineering and data science pipelines that are reproducible, maintainable, and modular.
https://kedro.org
Apache License 2.0
9.95k stars 903 forks source link

Create a #kedro-users Slackbot #1649

Closed tynandebold closed 11 months ago

tynandebold commented 2 years ago

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:

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:

Possible Alternatives

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

datajoely commented 2 years ago

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

tynandebold commented 2 years ago

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.

datajoely commented 2 years ago

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

tynandebold commented 2 years ago

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?

datajoely commented 2 years ago

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

deepyaman commented 2 years ago

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.

datajoely commented 2 years ago

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.

stichbury commented 1 year ago

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

tynandebold commented 1 year ago

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.

astrojuanlu commented 1 year ago

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)

tynandebold commented 1 year ago

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

astrojuanlu commented 11 months ago

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.