Knowledge base per client
# 🤝help
f
Hi, I'll be having multiple clients use the same bot, but trained on different knowledge bases. I'm looking for a scalable way to train these - can it be done programmatically? Is there a best practice around this?
f
Why would they use that same bot if its for different clients? I would make seperate bots but sure. You can use folders. Then start out by asking the user which of the clients they are. Give each client a different password so they can't just use each other's. Then in each folder have a workflow and your KB's etc. In your main flow you would ask which client with a single choice. Then from that single choice you would go to the desired folder.
f
To give a bit more context: we're building a product, trying to not do an ad-hoc implementation for each new organisation that we have. The use case is the same for all of them, just the inputs in the KB that are different. The bot is going to be exposed via our own webchat and be on our user's marketing sites - can't really have website visitors going through my list of users 🙂
f
Why not just export the bot to another chatbot? Then you have the same structure in the workflow and you can change the KB just as you wish. Since its uploaded on their site it would only make sense for them to have their own
Without any other KB's for other firms
f
Now we're on the same page - hence my original question - I'm looking for a scalable way to do this, ideally with an API. As far as I can tell, we can only do this through the dashboard UI
f
So you want to have a workflow without any KB's. Then from that workflow you want to call a specific KB based upon which website it's on?
Through an API
f
Sure yeah, that's one way to go about it
f
I gotta ask why not just use seperate bots and just make them from a template?
c
Hi there! Dynamic Knowledge bases are heavily requested and being researched by the team. Some thoughts on your situation that might be of help: - you can use a password system that is connected to a different knowledge base by API call. I would research 3th party Knowledge base solutions. - alternatively, if you have only a specific point of users you can manually update knowledge bases in Botpress and link them to the user passwords. At first it might seem like sharing a bot among clients is a good idea but I would advice against it "unless" your offering a specific setup like a SaaS (software as a service) embedded in a website where multiple users can log-in like mentioned above. If your planning to have the same bot embedded in different websites than the risk of failure are linked, if the bot is overloaded its down on all websites. Also you can never have 2 clients at the same time accessing the bot (?).
rather I would make 1 bot for your marketing site and have different bots for your clients and , if needed, link them together trough API
so the bots would be interacting/sharing variables but would still be operating seperately
f
Also. Having to use a pin code to use the bot isnt the best idea. If someone forgets the code and wants to use the bot they have to spend time on finding the pin code. Just unnecessary
c
well you can keep it simple by just having the client's name/organisation as the PW 🙂
f
That is true but it makes it vulnerable.
If it has information that is private it wouldn't be a good idea
g
Have you used dify before. Can train multiple Bots on your data and separate API keys for each bot. Then could set-up workflow expressions if user wants this go to this workflow.