Skip to content

dinhthienan33/retrieval-backend-with-rag

 
 

Repository files navigation

Vietnamese Retrieval Backend: RAG + MongoDB + Gemini 1.5 Pro + Semantic Router + Reflection

This demo was presented at:

  • Google I/O Extended HCMC 2024
  • Google I/O Extended Hanoi 2024

and will presented at:

  • Google I/O Extended Surabaya 2024

Slide

Demo

Video Demo

VTC1 featured us here

Chatbot Architecture

RAG Architecture

Chatbot is able to retrieve your product data and answer questions around it

Beyond that, with the help of the Semantic Router, the chatbot is able to follow chitchat conversations

Set up

1. Installation

This code requires Python >= 3.9.

pip install -r requirements.txt

2. Environment Variables

Create a file named .env and add the following lines, replacing placeholders with your actual values:

MONGODB_URI=
EMBEDDING_MODEL=
DB_NAME=
DB_COLLECTION=
GEMINI_KEY=
  • MONGODB_URI: URI of your MongoDB Atlas instance.
  • EMBEDDING_MODEL: Name of the embedding model you're using for text embedding.
  • DB_NAME: Name of the database in your MongoDB Atlas.
  • DB_COLLECTION: Name of the collection within the database.
  • GEMINI_KEY: Your key to access the Gemini API.

3. Data

Prepare your data following the format below:

For this project, we are using MongoDB Atlas for Vector Search.

Make sure you create a Vector Search Index. Follow this video.

4. Edit your Prompt in serve.py

In the serve.py file, you can see that we used the prompt like this. This prompt was enhanced by adding information about your products to it.

f"Hãy trở thành chuyên gia tư vấn bán hàng cho một cửa hàng điện thoại. Câu hỏi của khách hàng: {query}\nTrả lời câu hỏi dựa vào các thông tin sản phẩm dưới đây: {source_information}."
  • query: Query from the user.
  • source_information: Information we get from our database.

The full prompt will look like this:

Hãy trở thành chuyên gia tư vấn bán hàng cho một cửa hàng điện thoại. Câu hỏi của khách hàng: Samsung Galaxy Z Fold4 512GB
Trả lời câu hỏi dựa vào các thông tin sản phẩm dưới đây: 
 1) Tên: điện thoại samsung galaxy z fold5 12gb/512gb - chính hãng, Giá: 30,990,000 ₫, Ưu đãi: - KM 1
- Tặng gói Samsung care+ 6 tháng
- KM 2
- Trả góp tới 06 tháng không lãi suất, trả trước 0 đồng với Samsung Finance+.

 2) Tên: điện thoại ai - samsung galaxy s24 - 8gb/512gb - chính hãng, Giá: 25,490,000 ₫, Ưu đãi: - KM 1
- Trả góp tới 06 tháng không lãi suất, trả trước 0 đồng với Samsung Finance+.
- KM 2
- Giảm thêm 1.000.000đ cho khách hàng thân thiết (Chi tiết LH 1900 ****)

 3) Tên: điện thoại samsung galaxy s23 ultra 12gb/512gb - chính hãng, Giá: 26,490,000 ₫, Ưu đãi: - KM 1
- Trả góp tới 06 tháng không lãi suất, trả trước 0 đồng với Samsung Finance+.

The prompt is then fed to LLMs.

5. Run server

python serve.py

6. Testing API

Testing on web-app. Link

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 96.7%
  • Python 3.3%