Integrate MD intents into knowledge base

Context: I’m working with a developer that has a graph database solution and is looking at using this graph database solution to store conversations along with user data to build intelligent intents that would be scored based on similar users.

The Question: It looks like the intents for the RASA chatbot are stored in a Markdown file. Are there some guides/documents on how you can store intents in a knowledge base instead of a Markdown file?

Some Tech Stuff:

  • Python-based solution
  • TigerGraph knowledge base
  • RASA for NLU / NLP conversation

Does anyone have some reference documents? I’m able to self serve, just need some pointers.

As of Rasa 2.0 we’ve moved to a .yml format. You can still use .md for the time being, but for the long run it might be best to migrate.

One thing that’s unclear though; why would you want the intents in a database? The goal of those files is to supply trainable information to our machine learning models.

1 Like

Thanks for the reply. We have many users having many conversations, that have taken many different paths in their journey in the health domain. The thought of having intents and all data stored in the graph is that we can add context and history (using pattern matching and graph algorithiums) to an intent and rank responses relevant to the users and similar users’ past interactions.

With 50 million users stored, all of their history stored along with every interaction in the healthcare space. We would like to use that in the solution.

Couple that with storing the user’s chat history with not only this system but all other histories including the user’s searches, emails, notes, etc…

Maybe storing intents we can link with other elements to help enrich the user’s experience. We can also link the intents (tree structure) so to grab the next intent one would simply crawl down the children entities.

Ideally, we would love to incorporate our graph engine (not just the domain knowledge) with an NLP/NLP engine like RASA.

Please excuse any ignorance I have with RASA due to the fact I’m a DB (graph) / Engineer vs RASA expert.

Thanks for your help @koaning!

One thing that’s unclear though; why would you want the intents in a database? The goal of those files is to supply trainable information to our machine learning models.

Data is data, where you store data shouldn’t matter. If you need the data for the ML models you simply access and retrieve that data to be consumed and spit back the values, store those values if you would like back alongside your other data.

I suppose wishful thinking was that we could BYODB Bring Your Own Database to RASA that could synergize with the RASA engine.

In that sense there’s still some options. You can write a script that retreives any intents/entities from a database and puts it into a yaml file. This certainly is the easiest way to get started.

It’s similar to scikit-learn in that sense. Scikit-Learn assumes numpy/pandas as input. If data exists in a database that’s fine but for the training it usually needs to be pulled into memory somehow. That’s why a lot of folks first query a database to get a csv file. That csv file can then easily be loaded by pandas/numpy.

1 Like

Perfect! We will build a translator (Pipe) that speaks both platforms (TigerGraph+RASA) and can facilitate this! Thank You!