DeepPavlov models (first meeting)

Hello there,

I am writing to get some help about deploying your solution for my demands as I have been looking through it yet.
Have I understood correctly that if I want to build my own dialogue chat-bot I can use the following modules?

  1. The main library with the base of knowledge built on WikiData

  2. The FAQ model to upload my own questions/answers (csv/txt format) to make out more relevant dialogues. This model I can upgrade constantly after I have got new portion of questions from our customers.

  3. Then I can integrate two models to expand my chat-bot abilities to maintain dialogues with our customers or prospects.

One more question: Are there any requests to servers and RAM capabilities?

Thank you very much for your feedback.

1 Like

Hi Denis!

Welcome to the DeepPavlov Community! Thrilled to have you here!

If you want to build a chatbot using DeepPavlov Conversational AI technology stack, and you want it to work with FAQ, here’s what you can do:

Part I. Clone and get your own copy of Deepy with FAQ up and running

  1. clone Deepy from https://www.github.com/deepmipt/deepy
  2. use the dists/faq_dist branch (temporary)
  3. copy docker-compose.yml from dists/deepy_faq to the root of the repository (overwrite the existing docker-compose.yml)
  4. copy pipeline_conf.json from dists/deepy_faq to the /agent directory of the repository (overwrite the existing pipeline_conf.json)
  5. use docker-compose up --build command in the root of your repository to build and run your multiskill AI assistant
  6. API will run on http://localhost:4242. You can send your user’s utterance as the payload like this:
{
   "user_id" : "rerwerw1234",
   "payload" : "What is an invitation letter?"   
}

Note: This example has another skill called chit-chat skill (program_y in the configs). You can remove it if you don’t need it.

Part II. Training own model

Of course, the demo above features the pre-built config and model. You can build your own model by supplying your own FAQ data in the same form as the file used in the default demo above:

http://files.deeppavlov.ai/faq/school/faq_school_en.csv

Note: Please create your file automatically (e.g., programmatically, or by using a program like Microsoft Office Excel). We discourage crafting CSV files for FAQ Skill manually as even small mistakes will lead to hours of painful debugging.

Read the instructions in our documentation to learn how to train the model:

http://docs.deeppavlov.ai/en/master/features/skills/faq.html

The WikiData Thing

As of the WikiData thing I’m not entirely sure I’ve got what you need. Could you elaborate on that?

Thanks,
Daniel

Good night Daniel,

thank you very much for your quick answer. I will read the information over.

Sorry for my unclear request that have probably confused you. I am a new one in such technology and have a lot of questions rather than answers.

I have a task to build a dialogue bot to use it instead of our sales and support team in communication with prospects and clients. I have read that you have the pre-trained model (on WikiData) for a dialogue bot thanks to which one it can maintain different topics. Also, I noticed that there is a FAQ model where I can use existing questions/answers that are used by sales/support team.

As for WikiData I asked if it is possible to use simultaneously FAQ model and pre-trained model in a case a customer asks a question we don’t have in a FAQ model and then the system will transmit that question to pre-trained model that will help to keep a customer.

If I understood clearly the information on your site it is possible.

Daniel, could you help one more:

  1. For example, for FAQ model I have 1 question and 2 variants of a possible answer. Can I train FAQ model to use two of that answers for 1 question?
  2. In future, if we decide to stop using FAQ model, will we manage to add our base of questions/answers into your pre-trained model and train it to use our base of information?

Thanks for your time and patience.

Denis

Hi Denis,

Sorry for coming a bit late to your reply.

To clarify, there is a Factoid Skill (not currently publicly available though we plain to open source it in the coming months) that allows asking factoid questions for a selected number of templates in natural language and get factoid responses. It supports English language for now.

Speaking of your use case… Of course you can blend multiple models easily within DeepPavlov Conversational AI technology stack by using Deepy as a foundation for a Multiskill AI Assistant. However, I’m afraid that if you want to have a fall back that will answer to customer’s inqueries when FAQ model is uncapable of doing that, I’m not sure if WikiData-based Factoid Skill could help. Can you give examples of questions that you’d want such fallback system to reply to?

As of our FAQ model, it currently doesn’t support providing more than one response. However, feel free to extend the demo skill to program this functionality. The best case scenario would be to change FAQ model and make a PR into our library, btw, we love contributors!

Final question about re-using FAQ’s data as a base of information, again, I’m not quite following you. If you will stop using the FAQ model, how do you want the system to provide responses to FAQ questions? Intents? Or something else entirely?

Best Regards,
Daniel

Hi Daniel,

thanks for your feedback. It is nice that I can use multiple models. I understood that FAQ model is not convenient for me.

In the attachment you will find a possible structure of dialogues (my vision). Sorry, I have not uploaded real questions but the structure is real as it is based on the existing one (I have been working on a classical bot).

As you will see I can have a few typical questions but asked differently and to this questions a client will have possible answers with quiz questions. I want to create illusion that a customer is talking to a real person.

At the same time, I understand, that the more products or services we have to more questions and answers I will have to upload into the system to train it to maintain dialogues. Right now I have a base of 30k items. (12k Questions and 18k Answers) and the base has been growing.

Unfortunately, we have customers who don’t want to buy something or to learn more about us and they spend a lot of time by talking about nothing. In this case, I would like the system to be able to have a small talk to them. Who knows, maybe they are our prospects… :slight_smile:

Daniel,

what do you mean saying “btw, we love contributors!” - are you open to help me with tuning your product for my demand? Is the matter of which price?

Hi Denis!

Looked into your proposal. For Group “Greetings” you can use our Go-Bot, or you can simply use our Intent Catcher model, and then built a simple custom skill called say Intent Responder that would provide answers to such intents.

For the “Questions / Answers” group, you need to more clearly separate two kinds of things - simple Q/A with pairs between questions and answers, and more complex dialog trees.

Simple Q&A doesn’t expect complex dialog trees; instead it expects that a given question will fit into one of the prepared questions and then it return it’s answer.

In that case you can use FAQ Skill.

However, if you want a more complex Q&A system, you might find Go-Bot Framework more suitable as in it you can control dialog trees (w/o having trees themselves). However if you want trees then you probably should write a story generator (we’ll be happy to share our Story Generators in the coming months) that would allow you to better control dialog trees between your users and your bot.

If you want to know if we can help to build your bot, well, begin with writing to our Telegram group @DeepPavlovDreamDiscussions and write us there. We’ll be happy to point you to one of our colleagues!

Hi Daniel,

I like this

However, if you want a more complex Q&A system, you might find Go-Bot Framework more suitable as in it you can control dialog trees (w/o having trees themselves). However if you want trees then you probably should write a story generator (we’ll be happy to share our Story Generators in the coming months) that would allow you to better control dialog trees between your users and your bot.

I would manage to run the dialogue system by myself and make it more relevant to the customers.

As for your group in telegram, I can just text into your group the same message that I did in the forum (with screenshot) and you will try to help me?

I am not sure I would like everybody to see our dialogue but I will think about it.

In any case, thanks for your help and soon I will come back with questions and request of help.

Denis