Spaces:
Paused
Paused
Commit
·
fd89d01
1
Parent(s):
b596633
Update app.py
Browse files
app.py
CHANGED
@@ -23,15 +23,14 @@ template = """Answer the question based on the context below.
|
|
23 |
|
24 |
Context: You are Lisa, a loyal helpful service agent, appointed for SuperFoods Petcare Company.
|
25 |
No introduction required.
|
26 |
-
Your goal ask one
|
27 |
-
For Product Complaint: Ask questions about product they purchased, when they bought it, what issue
|
28 |
For Returns: Ask for the cause of return, if not asked aready, then tell him about the 10-day return policy, after which it's non-returnable.
|
29 |
For Refunds: Ask about the product amd the mode of refund hw wants, clarify the refunds will happen within 2-3 business days.
|
30 |
A case for will be created for all scenarios, and the caller will be notified over Email/WhatApp. Ask for image uploads for product investigations.
|
31 |
Do not answer anything outside your role, and apologize for any unknown questions.
|
32 |
-
Once you collect all the information, summarize it at the end and repeat it back to the caller.
|
33 |
|
34 |
-
{chat_history}
|
35 |
Human: {input}
|
36 |
AI:
|
37 |
|
@@ -90,11 +89,11 @@ def incoming_call():
|
|
90 |
@app.route('/process_input', methods=['POST'])
|
91 |
def process_input():
|
92 |
user_input = request.form['SpeechResult']
|
93 |
-
print("
|
94 |
conversation_id = request.form['CallSid']
|
95 |
#print("Conversation Id: " + conversation_id)
|
96 |
|
97 |
-
if user_input.lower() in ['thank you', 'thanks.', 'bye.', 'goodbye.','no thanks.','no, thank you.','i m good.','no, i m good.','same to you.','no, thanks.','thank you.']:
|
98 |
response = VoiceResponse()
|
99 |
response.say("Thank you for using our service. Goodbye!")
|
100 |
|
@@ -109,23 +108,50 @@ def process_input():
|
|
109 |
response = VoiceResponse()
|
110 |
ai_response=conversations.predict(input=user_input)
|
111 |
response.say(ai_response)
|
112 |
-
print("
|
113 |
gather = Gather(input='speech', speechTimeout='auto', action='/process_input')
|
114 |
response.append(gather)
|
115 |
|
116 |
return str(response)
|
117 |
|
118 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
|
120 |
# Define a function to create a case record in Salesforce
|
121 |
def create_case(conv_hist):
|
122 |
-
|
123 |
-
|
124 |
-
|
|
|
|
|
125 |
'Status': 'New',
|
126 |
'Origin': 'Voice Bot',
|
127 |
-
'
|
128 |
-
|
129 |
}
|
130 |
sf.Case.create(case_data)
|
131 |
|
|
|
23 |
|
24 |
Context: You are Lisa, a loyal helpful service agent, appointed for SuperFoods Petcare Company.
|
25 |
No introduction required.
|
26 |
+
Your goal ask one question at a time and remember them and provide a friendly conversational responses to the customer.
|
27 |
+
For Product Complaint: Ask questions about product they purchased, when they bought it, what issue occured with it. Query for any adverse reaction happened to his pet due to the product.
|
28 |
For Returns: Ask for the cause of return, if not asked aready, then tell him about the 10-day return policy, after which it's non-returnable.
|
29 |
For Refunds: Ask about the product amd the mode of refund hw wants, clarify the refunds will happen within 2-3 business days.
|
30 |
A case for will be created for all scenarios, and the caller will be notified over Email/WhatApp. Ask for image uploads for product investigations.
|
31 |
Do not answer anything outside your role, and apologize for any unknown questions.
|
|
|
32 |
|
33 |
+
Past Conversations: {chat_history}
|
34 |
Human: {input}
|
35 |
AI:
|
36 |
|
|
|
89 |
@app.route('/process_input', methods=['POST'])
|
90 |
def process_input():
|
91 |
user_input = request.form['SpeechResult']
|
92 |
+
print("Rob : " +user_input)
|
93 |
conversation_id = request.form['CallSid']
|
94 |
#print("Conversation Id: " + conversation_id)
|
95 |
|
96 |
+
if user_input.lower() in ''['thank you', 'thanks.', 'bye.', 'goodbye.','no thanks.','no, thank you.','i m good.','no, i m good.','same to you.','no, thanks.','thank you.']:
|
97 |
response = VoiceResponse()
|
98 |
response.say("Thank you for using our service. Goodbye!")
|
99 |
|
|
|
108 |
response = VoiceResponse()
|
109 |
ai_response=conversations.predict(input=user_input)
|
110 |
response.say(ai_response)
|
111 |
+
print("Bot: " + ai_response)
|
112 |
gather = Gather(input='speech', speechTimeout='auto', action='/process_input')
|
113 |
response.append(gather)
|
114 |
|
115 |
return str(response)
|
116 |
|
117 |
+
# For Case Summary and Subject
|
118 |
+
openai.api_key = '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'
|
119 |
+
|
120 |
+
def get_case_summary(conv_detail):
|
121 |
+
chatresponse_desc = openai.ChatCompletion.create(
|
122 |
+
model="gpt-3.5-turbo",
|
123 |
+
messages=[
|
124 |
+
{"role": "system", "content": "You are an Text Summarizer."},
|
125 |
+
{"role": "user", "content": "You need to summarise the conversation between an agent and customer mentioned below. Remember to keep the Product Name, Customer Tone and other key elements from the convsersation"},
|
126 |
+
{"role": "user", "content": conv_detail}
|
127 |
+
]
|
128 |
+
)
|
129 |
+
case_desc = chatresponse_desc.choices[0].message.content
|
130 |
+
return case_desc
|
131 |
+
|
132 |
+
def get_case_subject(conv_detail):
|
133 |
+
chatresponse_subj = openai.ChatCompletion.create(
|
134 |
+
model="gpt-3.5-turbo",
|
135 |
+
messages=[
|
136 |
+
{"role": "system", "content": "You are an Text Summarizer."},
|
137 |
+
{"role": "user", "content": "You need to summarise the conversation between an agent and customer in 10 words mentioned below for case subject."},
|
138 |
+
{"role": "user", "content": conv_detail}
|
139 |
+
]
|
140 |
+
)
|
141 |
+
case_subj = chatresponse_subj.choices[0].message.content
|
142 |
+
return case_subj
|
143 |
|
144 |
# Define a function to create a case record in Salesforce
|
145 |
def create_case(conv_hist):
|
146 |
+
desc = get_case_summary(conv_hist)
|
147 |
+
subj = get_case_subject(conv_hist)
|
148 |
+
case_data = {
|
149 |
+
'Subject': 'Voice Bot Case for Rob :' + subj ,
|
150 |
+
'Description': desc,
|
151 |
'Status': 'New',
|
152 |
'Origin': 'Voice Bot',
|
153 |
+
'Voice_Call_Conversation__c': conv_hist ,
|
154 |
+
'Voice_Call_Id__c': conversation_id
|
155 |
}
|
156 |
sf.Case.create(case_data)
|
157 |
|