Yoctol / bottender

⚡️ A framework for building conversational user interfaces.
https://bottender.js.org
MIT License
4.19k stars 332 forks source link

visual bot builder? #643

Open dcsanx opened 4 years ago

dcsanx commented 4 years ago

Just wondering if a visual bot editor / builder tool was on your roadmap anywhere?

chentsulin commented 4 years ago

Hi @dcsanx We definitely have ever thought about this topic a lot of times. I'd say it's on the roadmap but not a very high priority feature now because it's hard to get it well-designed at this moment.

We want to make sure we build a reliable, predictable, and testable tool that solves developers' problems and also improves their productivity. However, it's hard to keep things predictable if your conversation flow is controlled by the visual editor and code at the same time. So, we are going to investigate more use cases until we have more confidence in our design.

Could you elaborate more details about your use case?

dcsan commented 4 years ago

I have never had success with flowchart based bot builders, for complex bots the UI becomes really tedious to work with.

I did quite like pullstring's original design that was more of an outliner format with levels of indentation representing nested levels of a conversation.

Maybe a natural progression would be to add some API level features for handling things like conversations?

The old botkit used to have a very lean but useful API for some of this with "threads" https://botkit.ai/docs/v4/conversations.html#conversation-threads

MS bot framework has gone totally overboard with this and i find their framework a bit too much overhead to work with. https://docs.microsoft.com/en-us/azure/bot-service/nodejs/bot-builder-nodejs-dialog-waterfall

Or you could go with some kind of story format for more declarative way to specify conversations. Currently the actual bot behavior is all hand coded by people using this framework. "BotML" is one of a few specs here, though I'm not sure it's stage of development. https://github.com/codename-co/botml#features

these guys also have an interesting "code like" way to describe conversations, it might be a close fit with BotTender audience. https://narratory.io/

I'm working on some games at the moment so personally I'm more interested in interactive fiction authoring tools, so my case is a bit unique.

Sorry for not replying, the world went crazy the last few months! 🥁 💉

dcsan commented 4 years ago

another approach is to go with something like a grammar to describe routing. Back when superscript.js was being actively developed there was a discussion about using PegJS to replace regex for routing https://github.com/superscriptjs/superscript/issues/101

ISHML is another grammar based parser that lets you define your own rules and lexicons discussion https://intfiction.org/t/ishml-new-javascript-library-for-parser-if/41797 https://whitewhalestories.com/tutorials/parsing2.html image

but this is a big discussion and probably too much complexity for most of the people using this framework. I wrote up some comparisons on grammar based vs NLP vs DSLs here https://intfiction.org/t/nlp-peg-and-other-parser-approaches/46197

Personally that fits my use case better than a drag and drop editor, for really complex bots. That said, I think Landbot.io with a google sheet is really cool for many many "low code" applications.