This is a demo of a customer service chatbot using Generative AI through Google Cloud's Vertex AI PaLM APIs. The app also leverages MongoDB Atlas Search to look for relevant answers in a MongoDB Atlas database. Finally, the app can detect dissatisfied customers with sentiment analysis.
MongoDB Atlas setup
Deploy a new MongoDB database cluster in your Atlas account. You can use the free M0 tier for this demo.
Create a XYZ-Corp
database.
Create a Customer
collection in the XYZ-Corp
database and insert the following document.
{
"customer_id":"111",
"conversation":[],
"Name":"Venkatesh Shanbhag"
}
Create an Insurance
collection in the XYZ-Corp
database and insert the following document.
{
"context":"You are a Customer support agent with name Sara working for XYZ-corp.nIt does provides property Insurance. Sara will not reply for any queries regarding other types of insurance.nThe company covers insurance of properties like - Hospitals, offices, shops, apartments.nMax insurance covered will decline over period of time.nXYZ-Corp only covers Fire and Earthquake hazard insurance. nYou are allowed to provide only the details regarding the company itself.nDo not repond with sentiment in any of the responses.",
"type":"Intro"
}
Create a Claims
collection in the XYZ-Corp
database and insert the following document.
{
"claim_number":"12345",
"Name":"Venkatesh Shanbhag",
"Claim_amount":{"$numberLong":"10000"},
"Currency":"USD",
"Claim_status":"In progress","customer_id":"111"
}
Create an Atlas Search index with the name default
on the Claims
collection using the default settings. Follow the Atlas Search documentation: https://www.mongodb.com/docs/atlas/atlas-search/create-index/.
A small knowledge base is available on chat-search collection. Insert below documents to MongoDB. In real life scenerio instead of text vectors are stored of the text embeddings and search is performed based in vector.
{"question":"claim","Answer":"Please provide 5 digit claim number"}
{"question":"Not resolved","Answer":"Do you want to connect to an Agent for further assistence"}
{"question":"status of a claim","Answer":"Please provide 5 digit claim number"}
{"question":"Company Policy","Answer":"1. Architects fees / Debris clearancenFollowing a valid claim for damage undernbuildings Causes below, we will also pay:n• Architects, surveyors, consulting engineersnand legal fees, but not fees for preparing anclaim;n• the cost of clearing debris from the site orndemolishing or shoring up the buildings;n• the cost to comply with government or localnauthority requirements but not if the ordernpredates the loss or damage.n2. Emergency services forced entrynLoss or damage to the buildings caused whennthe fire, police or ambulance service has to forcenan entry to the buildings because of annemergency or perceived emergency involvingnyou or your family.n3. Moving HomenIf you have entered into a contract to sell thenhome, the person buying it will have the fullnprotection of your policy for the buildings up tonthe date of completion of the purchase, as longnas the home is not covered by any otherninsurance.n4. Keys & locksnIf your keys are lost or stolen we will pay up tonthe limit for any one claim for the cost ofnreplacing keys and locks or lock mechanisms to:n• external doors and windows of the homen(but not to a garage or outbuildings);n• a safe within the home;n• an alarm protecting the home.nLimit – please refer to your schedulen5. Alternative AccommodationnWe will pay you up to the limit for any one claimnfor the reasonable cost of alternativenaccommodation for you, your family and yourndomestic pets when your home cannot be livednin due to loss or damage covered by this policy..nLimit – please refer to your schedule"}
{"question":"Proof of income","Answer":"This document may become necessary whenever the sumnproposed is very high. Normally a sum proposed which is sevennto eight times of the declared income is acceptable forninsurance. But proposals do come to the insurer when thenknown source of income of the proposer is much less comparednto the amount of insurance desired. A service holder normallyndoes not face this problem as his sources of income arenverifiable.nIn case of business people, the assessed income is at timesnmuch less compared to what is a desirable income for thenamount of insurance desired. In such cases the insurer atntimes calls for assessed income tax returns, or CharterednAccountant’s certificate etc. Such precautions are necessarynto eliminate the possibility of moral hazard."}
{"question":"Not good","Answer":"Do you want to connect via call to a Customer care representative?"}
{"question":"bad experience","Answer":"Do you want to connect via call to a Customer care representative?"}
Google Cloud setup
Set the Google Cloud project name.
gcloud config set project <PROJECT_ID>
Clone the repository.
git clone https://github.com/mongodb-developer/Google-Cloud-Generative-AI-Chatbot.git
Update the MongoDB Atlas database connection string and the Google Cloud project name in main.py
.
Run the application.
python3 main.py
Venkatesh Shanbhag |
Use at your own risk; not a supported MongoDB product