This project is a system that consists of several microservices. It is intended for companies and legal entities (further referred to as customer) and allows you to automate the process of generating a corporate offer for new clients.
- CO generation in
pdfformat — system automatically generates corporate offers inpdfformat based on the data provided:- text of a potential
clientmessage - message date
clientnamecustomername
- text of a potential
- Saving to the database — after generating CO, system saves path to generated file into the database.
-
data_preprocessing- Receives
csvfile withclietnsmessages from telegram parser bot. - Saves
csvfile with new messages (can be used in the future to train ML model). - Filters messages with advertisements and third-party information, leaving only those that really need the
customerservices. - Send appropriate messages to
ml_generationservice.
- Receives
-
ml_generation- Generates text of a CO based on
clientmessages. - Sends generated text to the
pdf_generationservice.
- Generates text of a CO based on
-
pdf_generation- Inserts the text of the corporate offer into a template
pdfdocument. - Sends the generated
pdfto a third-party service.
- Inserts the text of the corporate offer into a template
-
db_funstional_service- Stores data about customers, clients, CO and messages.
- Other services use that one as a database.
-
customer_creator- Inserts customer data into the database via
db_functional_service. - Generates additional information about
customerthat is used by ML model to improve the quality of generated offers.
- Inserts customer data into the database via
Services implementation and startup instructions are located in scco folder.
- Error handling — if the system receives an error during the generation of the CO, it must record the status in the database that CO has not been generated and indicate the error in the comment field why it has not been generated.
- Manual generation — in addition to automatically generating CO for all
clients, make a setting that you can select a specificclientfrom the list and make CO only for him.
