An intelligent customer service system is responsible for all development tasks: mainly including front-end page development, back-end logic design, dialogue flow design (algorithm part) between intermediate customer service and users, and system deployment.
- The front-end page adopts the vue framework (a framework that has become popular recently, vuejs is more in line with the style of python, so it is easier to use);
- The back-end uses Django, a typical MVT architecture, (similar to MVC in Android, and the difficulty is far worse than MVP);
- The conversation flow mainly uses the seq2seq model, including capturing user intent, obtaining key slot information, external api call, mrc use, etc.;
- The system is deployed on the Alibaba Cloud platform, using Ubuntu 16.04 mirroring, using nginx and uwsgi as reverse proxy (with a lot of pits filled in).
- Self-built knowledge base, using fuzzy search
There are also some details:
- For communication between vue components, my solution is to use eventbus for monitoring, props data transmission should be possible, but there is no time to learn;
- The vue front-end project is packaged to the back-end to solve the problem of cross-domain communication;
- The front-end page requests back-end data, which is implemented by axios (Ajax is also OK, but if you use vue, you won't try Ajax);
- User input and customer service answer part, that is, to achieve the effect of dialogue: establish a long connection through the front end and the back end, using WebSocket;
- The database uses MySql. If you want to improve the search effect, you can try ElasticSearch or use the graph database neo4j;
- Some animation displays, etc.
Record the overall development process, the system is still being improved, and it is estimated that it will take another month to develop.