financial-assistant
📱Financial Assistant
This is web-platform that consists of a knowledge base with a gathered and preprocessed banking data and a digital assistant capable of answering user queries in real-time.
Client side — SPA with MVC architecture. State management is implemented using an Observer pattern. Axios library is used to make requests to server.
Assistant is a question-answering system with a "Hybrid Retriever" architecture. Assistant's hybrid approach combines:
- BM25 Okapi algorithm for a keyword-based search ("Sparse retriever")
- Multilingual E5 embedding model for a semantic search ("Dense retriever") (Technical report, Article)
- Final results are sorted by Mean Reciprocal Rank (MRR) to choose the most relevant text from the knowledge base.
Knowledge base contains static data and turned into 2 files:
- db_texts.csv for BM25 algo: texts without stop words and punctuation, in nominative case
- dense_vectors.npy for mE5 model: file with embeddings to speed up the semantic text search
🔌Preview
🔌Server
Quickstart
Install via pip
1. cd server1/server2. pip install -r requirements.txt
Run server
1. python manage.py runserver
🔌Client
Quickstart
1. cd client/2. npm i3. npm run build4. npm run start5. Project is running at: http://localhost:8080/
Описание
Вопросно-ответная система, предоставляющая информацию о финансовых продуктах российских банков.
Языки
Python
- TypeScript
- SCSS
- JavaScript