ldhldh commited on
Commit
913109b
β€’
1 Parent(s): 7d66b8e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +56 -16
app.py CHANGED
@@ -66,6 +66,7 @@ compression_retriever = ContextualCompressionRetriever(
66
  id_list = []
67
  history = []
68
  customer_data_list = []
 
69
  context = "{context}"
70
  question = "{question}"
71
 
@@ -84,25 +85,60 @@ def gen(x, id, customer_data):
84
  index = len(id_list)
85
  id_list.append(id)
86
  customer_data_list.append(customer_data)
 
87
  history.append('상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n')
88
-
89
- bot_str = f"ν˜„μž¬ κ³ κ°λ‹˜κ»˜μ„œ κ°€μž…λœ λ³΄ν—˜μ€ {customer_data}μž…λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
90
  return bot_str
91
  else:
92
  if x == "μ΄ˆκΈ°ν™”":
93
- customer_data_list[index] = customer_data
94
- history[index] = '상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n'
95
- bot_str = f"λŒ€ν™”κΈ°λ‘μ΄ λͺ¨λ‘ μ΄ˆκΈ°ν™”λ˜μ—ˆμŠ΅λ‹ˆλ‹€.\n\nν˜„μž¬ κ³ κ°λ‹˜κ»˜μ„œ κ°€μž…λœ λ³΄ν—˜μ€ {customer_data}μž…λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
96
- return bot_str
 
 
 
 
 
97
  elif x == "κ°€μž…μ •λ³΄":
98
- bot_str = f"ν˜„μž¬ κ³ κ°λ‹˜κ»˜μ„œ κ°€μž…λœ λ³΄ν—˜μ€ {customer_data_list[index]}μž…λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
99
- return bot_str
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  else:
101
  context = "{context}"
102
  question = "{question}"
103
- customer_data_newline = customer_data_list[index].replace(",","\n")
104
-
105
- prompt_template = f"""당신은 λ³΄ν—˜ μƒλ‹΄μ›μž…λ‹ˆλ‹€. μ•„λž˜μ— 질문과 전체 λ³΄ν—˜ λͺ©λ‘, κ΄€λ ¨λœ μ•½κ΄€ 정보, 응닡 지침과 고객의 λ³΄ν—˜ κ°€μž… 정보, 고객과의 상담기둝이 μ£Όμ–΄μ§‘λ‹ˆλ‹€. μš”μ²­μ„ 적절히 μ™„λ£Œν•˜λŠ” 응닡을 μž‘μ„±ν•˜μ„Έμš”.
 
 
106
 
107
  [λ³΄ν—˜λͺ©λ‘]
108
  λΌμ΄ν”„ν”Œλž˜λ‹›μ •κΈ°λ³΄ν—˜β…‘
@@ -126,7 +162,7 @@ def gen(x, id, customer_data):
126
  {context}
127
 
128
  ### λͺ…λ Ήμ–΄:
129
- λ‹€μŒ 지침을 μ°Έκ³ ν•˜μ—¬ μƒλ‹΄μ›μœΌλ‘œμ„œ κ³ κ°μ—κ²Œ ν•„μš”ν•œ 응닡을 κ°„κ²°ν•˜κ²Œ μ œκ³΅ν•˜μ„Έμš”.
130
  [지침]
131
  1.고객의 κ°€μž… 정보λ₯Ό κΌ­ ν™•μΈν•˜μ—¬ 고객이 κ°€μž…ν•œ λ³΄ν—˜μ— λŒ€ν•œ λ‚΄μš©λ§Œ μ œκ³΅ν•˜μ„Έμš”.
132
  2.고객이 κ°€μž…ν•œ λ³΄ν—˜μ΄λΌλ©΄ 고객의 μ§ˆλ¬Έμ— λŒ€ν•΄ 적절히 λ‹΅λ³€ν•˜μ„Έμš”.
@@ -157,11 +193,15 @@ def gen(x, id, customer_data):
157
  template=prompt_template,
158
  )},
159
  )
160
- query=f"λ‚˜λŠ” ν˜„μž¬ {customer_data_list[index]}만 κ°€μž…ν•œ 상황이야. {x}"
 
 
 
161
  response = qa({"query":query})
162
- output_str = response['result'].rsplit(".",1)[0]+"."
163
- print(prompt_template + output_str)
164
  history[index] += f"고객:{x}\n상담원:{output_str}\n"
 
 
165
  return output_str
166
  def reset_textbox():
167
  return gr.update(value='')
@@ -188,4 +228,4 @@ with gr.Blocks() as demo:
188
  label="customer_data"
189
  )
190
  button_submit.click(gen, [user_text, id_text, customer_data], model_output)
191
- demo.queue().launch(enable_queue=True)
 
66
  id_list = []
67
  history = []
68
  customer_data_list = []
69
+ customer_agree_list = []
70
  context = "{context}"
71
  question = "{question}"
72
 
 
85
  index = len(id_list)
86
  id_list.append(id)
87
  customer_data_list.append(customer_data)
88
+ customer_agree_list.append("No")
89
  history.append('상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n')
90
+ bot_str = "* ν˜„μž¬ κ°€μž…μ •λ³΄λ₯Ό μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ¨Όμ € κ°œμΈμ •λ³΄ 이용 약관에 λ™μ˜ν•˜μ…”μ•Ό μ›ν™œν•œ 상담을 진행할 수 μžˆμŠ΅λ‹ˆλ‹€. \n무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?"
 
91
  return bot_str
92
  else:
93
  if x == "μ΄ˆκΈ°ν™”":
94
+ if customer_agree_list[index] != "No":
95
+ customer_data_list[index] = customer_data
96
+ bot_str = f"λŒ€ν™”κΈ°λ‘μ΄ λͺ¨λ‘ μ΄ˆκΈ°ν™”λ˜μ—ˆμŠ΅λ‹ˆλ‹€.\n\nν˜„μž¬ κ³ κ°λ‹˜κ»˜μ„œ κ°€μž…λœ λ³΄ν—˜μ€ {customer_data}μž…λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
97
+ return bot_str
98
+ else:
99
+ customer_data_list[index] = "κ°€μž…μ •λ³΄μ—†μŒ"
100
+ history[index] = '상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n'
101
+ bot_str = f"λŒ€ν™”κΈ°λ‘μ΄ λͺ¨λ‘ μ΄ˆκΈ°ν™”λ˜μ—ˆμŠ΅λ‹ˆλ‹€.\n\n* ν˜„μž¬ κ°€μž…μ •λ³΄λ₯Ό μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ¨Όμ € κ°œμΈμ •λ³΄ 이용 약관에 λ™μ˜ν•˜μ…”μ•Ό μ›ν™œν•œ 상담을 진행할 수 μžˆμŠ΅λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
102
+ return bot_str
103
  elif x == "κ°€μž…μ •λ³΄":
104
+ if customer_agree_list[index] == "No":
105
+ history[index] = '상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n'
106
+ bot_str = f"* ν˜„μž¬ κ°€μž…μ •λ³΄λ₯Ό μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ¨Όμ € κ°œμΈμ •λ³΄ 이용 약관에 λ™μ˜ν•˜μ…”μ•Ό μ›ν™œν•œ 상담을 진행할 수 μžˆμŠ΅λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
107
+ return bot_str
108
+ else:
109
+ history[index] = '상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n'
110
+ bot_str = f"ν˜„μž¬ κ³ κ°λ‹˜κ»˜μ„œ κ°€μž…λœ λ³΄ν—˜μ€ {customer_data_list[index]}μž…λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
111
+ return bot_str
112
+ elif x == "μ•½κ΄€λ™μ˜_λ™μ˜ν•¨":
113
+ if customer_agree_list[index] == "No":
114
+ history[index] = '상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n'
115
+ customer_agree_list[index] = "Yes"
116
+ customer_data_list[index] = customer_data
117
+ bot_str = f"κ°œμΈμ •λ³΄ ν™œμš©μ— λ™μ˜ν•˜μ…¨μŠ΅λ‹ˆλ‹€. κ°€μž… λ³΄ν—˜μ„ μ‘°νšŒν•©λ‹ˆλ‹€.\n\nν˜„μž¬ κ³ κ°λ‹˜κ»˜μ„œ κ°€μž…λœ λ³΄ν—˜μ€ {customer_data}μž…λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
118
+ return bot_str
119
+ else:
120
+ history[index] = '상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n'
121
+ bot_str = f"이미 약관에 λ™μ˜ν•˜μ…¨μŠ΅λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
122
+ return bot_str
123
+ elif x == "μ•½κ΄€λ™μ˜_λ™μ˜μ•ˆν•¨":
124
+ if customer_agree_list[index] == "Yes":
125
+ history[index] = '상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n'
126
+ customer_agree_list[index] = "No"
127
+ customer_data_list[index] = "κ°€μž…μ •λ³΄μ—†μŒ"
128
+ bot_str = f"* κ°œμΈμ •λ³΄ ν™œμš© λ™μ˜λ₯Ό μ·¨μ†Œν•˜μ…¨μŠ΅λ‹ˆλ‹€. 이제 κ°€μž… λ³΄ν—˜μ„ μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
129
+ return bot_str
130
+ else:
131
+ history[index] = '상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n'
132
+ bot_str = f"* κ°œμΈμ •λ³΄ ν™œμš©μ„ κ±°μ ˆν•˜μ…¨μŠ΅λ‹ˆλ‹€. κ°€μž… λ³΄ν—˜μ„ μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. \n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
133
+ return bot_str
134
  else:
135
  context = "{context}"
136
  question = "{question}"
137
+ if customer_agree_list[index] == "No":
138
+ customer_data_newline = "ν˜„μž¬ κ°€μž…μ •λ³΄λ₯Ό μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. μ•½κ΄€ λ™μ˜κ°€ ν•„μš”ν•˜λ‹€οΏ½οΏ½ μ•ˆλ‚΄ν•΄μ£Όμ„Έμš”."
139
+ else:
140
+ customer_data_newline = customer_data_list[index].replace(",","\n")
141
+ prompt_template = f"""당신은 λ³΄ν—˜ μƒλ‹΄μ›μž…λ‹ˆλ‹€. μ•„λž˜μ— 질문과 κ΄€λ ¨λœ μ•½κ΄€ 정보, 응닡 지침과 고객의 λ³΄ν—˜ κ°€μž… 정보, 고객과의 상담기둝이 μ£Όμ–΄μ§‘λ‹ˆλ‹€. μš”μ²­μ„ 적절히 μ™„λ£Œν•˜λŠ” 응닡을 μž‘μ„±ν•˜μ„Έμš”.
142
 
143
  [λ³΄ν—˜λͺ©λ‘]
144
  λΌμ΄ν”„ν”Œλž˜λ‹›μ •κΈ°λ³΄ν—˜β…‘
 
162
  {context}
163
 
164
  ### λͺ…λ Ήμ–΄:
165
+ λ‹€μŒ 지침을 μ°Έκ³ ν•˜μ—¬ μƒλ‹΄μ›μœΌλ‘œμ„œ κ³ κ°μ—κ²Œ ν•„μš”ν•œ 응닡을 μ œκ³΅ν•˜μ„Έμš”.
166
  [지침]
167
  1.고객의 κ°€μž… 정보λ₯Ό κΌ­ ν™•μΈν•˜μ—¬ 고객이 κ°€μž…ν•œ λ³΄ν—˜μ— λŒ€ν•œ λ‚΄μš©λ§Œ μ œκ³΅ν•˜μ„Έμš”.
168
  2.고객이 κ°€μž…ν•œ λ³΄ν—˜μ΄λΌλ©΄ 고객의 μ§ˆλ¬Έμ— λŒ€ν•΄ 적절히 λ‹΅λ³€ν•˜μ„Έμš”.
 
193
  template=prompt_template,
194
  )},
195
  )
196
+ if customer_agree_list[index] == "No":
197
+ query=f"{x}"
198
+ else:
199
+ query=f"{customer_data_list[index]}, {x}"
200
  response = qa({"query":query})
201
+ output_str = response['result'].rsplit(".")[0] + "."
 
202
  history[index] += f"고객:{x}\n상담원:{output_str}\n"
203
+ if customer_agree_list[index] == "No":
204
+ output_str = f"* ν˜„μž¬ κ°€μž…μ •λ³΄λ₯Ό μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ¨Όμ € κ°œμΈμ •λ³΄ 이용 약관에 λ™μ˜ν•˜μ…”μ•Ό μ›ν™œν•œ 상담을 진행할 수 μžˆμŠ΅λ‹ˆλ‹€." + output_str
205
  return output_str
206
  def reset_textbox():
207
  return gr.update(value='')
 
228
  label="customer_data"
229
  )
230
  button_submit.click(gen, [user_text, id_text, customer_data], model_output)
231
+ demo.queue().launch(enable_queue=True)