neo4j_protobot icon indicating copy to clipboard operation
neo4j_protobot copied to clipboard

Could we chat about building on what you have done here?

Open philiprhoades opened this issue 3 years ago • 8 comments

I have an existing Java-based chatbot which I would like to replicate with graphs for memory - could we talk about how I might use what you have done here to do what I want?

Thanks,

Phil.

philiprhoades avatar Feb 25 '21 03:02 philiprhoades

Hi Phil. , sure let me know what you want to know. Also this is an old code you probably need to heavily modify it to make ti work again. The idea was pretty simple : build a simple personal knowledge graph using the graph database. you should be able to understand the basic mechanism easily from the code. This current approach is somewhat limited because you have to first define the type up knowledge bot can learn and memorise. In this example it is simple restaurant and cities. So perhaps you can replace the RASA with google nlp and then try to have a larger list of intents and slots (or you can train the RASA but then you need some data). Anyways I hope you can make something useful ;)

amirharati avatar Feb 25 '21 03:02 amirharati

Amir,

Thanks for responding so quickly - I appreciate it!

Well some years ago I bought a software licence for the chatbot that won the 2012 Loebner Prize - from the guy who wrote the code and then I paid him to add a quick and dirty "memory" using BLOBs constructed from the dialogs that took place that could be reread into the chatbot for future conversations. The whole project never really went anywhere and there is much more sophisticated stuff around now anyway. However, I thought I could make use of what you have done and maybe integrate it with all the canned stuff (and maybe even the "goal choosing" stuff) that I have from the old project and also add new stuff that I want to do - create an "Avatar" of myself that can respond to text and eventually voice queries for my non-profits (Cryonics / Neural Archives) when I am not available (ie asleep or not contactable). It seems like graphs are the best thing to use for these more permanent "memories"?

This is not really a "deep learning" exercise as far as I understand it - except for the small-talk stuff it is more of a "brain dump" from Phil to Avatar Phi Rho somehow . . someone else told me this was "information extraction".

I don't suppose you have time get your code up-to-date before I try and do something with it? Do you think neo4j the best option?

Thanks, Phil.

philiprhoades avatar Feb 25 '21 08:02 philiprhoades

Graph on one choice and not the only one. You can probably use other databases. For small scale it does not matter really that much. However graph seems to be natural way to represent a knowledge-base to me. This project was a proof of concept I create to show to someone ;) I did not find anytime to continue working on it. Also currently is not doing any machine learning (except NLU pipeline which can be considered a black box). I suggest try reimplement it (you need to use new neo4j API and pipeline NLU pipeline). Then you can think how to adapt to your use case. I still think using memory mechanism can be interesting for chatbots but I have not thought how to set up more learnable architecture.

amirharati avatar Feb 25 '21 15:02 amirharati

OK, I will try and make some progress myself and see how I go - if I do make some progress, would you prefer I send pull requests here or fork my own project?

philiprhoades avatar Feb 25 '21 22:02 philiprhoades

Please feel free to fork. I won't be updating this version for now.

amirharati avatar Feb 25 '21 23:02 amirharati

OK, will do - is it OK if I ask questions of you occasionally?

philiprhoades avatar Feb 26 '21 01:02 philiprhoades

sure

amirharati avatar Feb 26 '21 03:02 amirharati

Great - I am more familiar with Ruby so I will try out some intro stuff there and then come back to this . . .

Thanks!

philiprhoades avatar Feb 26 '21 03:02 philiprhoades