ldhldh commited on
Commit
f9221f7
β€’
1 Parent(s): d44468c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -16
app.py CHANGED
@@ -97,42 +97,43 @@ def gen(x, id, customer_data):
97
  if x == "μ΄ˆκΈ°ν™”":
98
  if customer_agree_list[index] != "No":
99
  customer_data_list[index] = customer_data
 
100
  bot_str = f"λŒ€ν™”κΈ°λ‘μ΄ λͺ¨λ‘ μ΄ˆκΈ°ν™”λ˜μ—ˆμŠ΅λ‹ˆλ‹€.\n\nν˜„μž¬ κ³ κ°λ‹˜κ»˜μ„œ κ°€μž…λœ λ³΄ν—˜μ€ {customer_data}μž…λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
101
  return bot_str
102
  else:
103
  customer_data_list[index] = "κ°€μž…μ •λ³΄μ—†μŒ"
104
- history[index] = '상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n'
105
  bot_str = f"λŒ€ν™”κΈ°λ‘μ΄ λͺ¨λ‘ μ΄ˆκΈ°ν™”λ˜μ—ˆμŠ΅λ‹ˆλ‹€.\n\n* ν˜„μž¬ κ°€μž…μ •λ³΄λ₯Ό μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ¨Όμ € κ°œμΈμ •λ³΄ 이용 약관에 λ™μ˜ν•˜μ…”μ•Ό μ›ν™œν•œ 상담을 진행할 수 μžˆμŠ΅λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
106
  return bot_str
107
  elif x == "κ°€μž…μ •λ³΄":
108
  if customer_agree_list[index] == "No":
109
- history[index] = '상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n'
110
  bot_str = f"* ν˜„μž¬ κ°€μž…μ •λ³΄λ₯Ό μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ¨Όμ € κ°œμΈμ •λ³΄ 이용 약관에 λ™μ˜ν•˜μ…”μ•Ό μ›ν™œν•œ 상담을 진행할 수 μžˆμŠ΅λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
111
  return bot_str
112
  else:
113
- history[index] = '상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n'
114
  bot_str = f"ν˜„μž¬ κ³ κ°λ‹˜κ»˜μ„œ κ°€μž…λœ λ³΄ν—˜μ€ {customer_data_list[index]}μž…λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
115
  return bot_str
116
  elif x == "μ•½κ΄€λ™μ˜_λ™μ˜ν•¨":
117
  if customer_agree_list[index] == "No":
118
- history[index] = '상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n'
119
  customer_agree_list[index] = "Yes"
120
  customer_data_list[index] = customer_data
121
  bot_str = f"κ°œμΈμ •λ³΄ ν™œμš©μ— λ™μ˜ν•˜μ…¨μŠ΅λ‹ˆλ‹€. κ°€μž… λ³΄ν—˜μ„ μ‘°νšŒν•©λ‹ˆλ‹€.\n\nν˜„μž¬ κ³ κ°λ‹˜κ»˜μ„œ κ°€μž…λœ λ³΄ν—˜μ€ {customer_data}μž…λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
122
  return bot_str
123
  else:
124
- history[index] = '상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n'
125
  bot_str = f"이미 약관에 λ™μ˜ν•˜μ…¨μŠ΅λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
126
  return bot_str
127
  elif x == "μ•½κ΄€λ™μ˜_λ™μ˜μ•ˆν•¨":
128
  if customer_agree_list[index] == "Yes":
129
- history[index] = '상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n'
130
  customer_agree_list[index] = "No"
131
  customer_data_list[index] = "κ°€μž…μ •λ³΄μ—†μŒ"
132
  bot_str = f"* κ°œμΈμ •λ³΄ ν™œμš© λ™μ˜λ₯Ό μ·¨μ†Œν•˜μ…¨μŠ΅λ‹ˆλ‹€. 이제 κ°€μž… λ³΄ν—˜μ„ μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
133
  return bot_str
134
  else:
135
- history[index] = '상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n'
136
  bot_str = f"* κ°œμΈμ •λ³΄ ν™œμš©μ„ κ±°μ ˆν•˜μ…¨μŠ΅λ‹ˆλ‹€. κ°€μž… λ³΄ν—˜μ„ μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. \n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
137
  return bot_str
138
  else:
@@ -142,7 +143,7 @@ def gen(x, id, customer_data):
142
  customer_data_newline = "ν˜„μž¬ κ°€μž…μ •λ³΄λ₯Ό μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. μ•½κ΄€ λ™μ˜κ°€ ν•„μš”ν•˜λ‹€κ³  μ•ˆλ‚΄ν•΄μ£Όμ„Έμš”."
143
  else:
144
  customer_data_newline = customer_data_list[index].replace(",","\n")
145
- prompt_template = f"""당신은 λ³΄ν—˜ μƒλ‹΄μ›μž…λ‹ˆλ‹€. μ•„λž˜μ— 질문과 κ΄€λ ¨λœ μ•½κ΄€ 정보, 응닡 지침과 고객의 λ³΄ν—˜ κ°€μž… 정보, 고객과의 상담기둝이 μ£Όμ–΄μ§‘λ‹ˆλ‹€. μš”μ²­μ„ 적절히 μ™„λ£Œν•˜λŠ” 응닡을 μž‘μ„±ν•˜μ„Έμš”.
146
 
147
  [전체 λ³΄ν—˜ λͺ©λ‘]
148
  λΌμ΄ν”„ν”Œλž˜λ‹›μ •κΈ°λ³΄ν—˜β…‘
@@ -166,13 +167,14 @@ def gen(x, id, customer_data):
166
  {context}
167
 
168
  ### λͺ…λ Ήμ–΄:
169
- λ‹€μŒ 지침을 μ°Έκ³ ν•˜μ—¬ μƒλ‹΄μ›μœΌλ‘œμ„œ κ³ κ°μ—κ²Œ ν•„μš”ν•œ 응닡을 μ΅œλŒ€ν•œ μžμ„Έν•˜κ²Œ μ œκ³΅ν•˜μ„Έμš”.
170
 
171
  [지침]
172
- 1.고객의 κ°€μž… 정보λ₯Ό οΏ½οΏ½οΏ½ ν™•μΈν•˜μ—¬ 고객이 κ°€μž…ν•œ λ³΄ν—˜μ— λŒ€ν•œ λ‚΄μš©λ§Œ μ œκ³΅ν•˜μ„Έμš”.
173
- 2.고객이 κ°€μž…ν•œ λ³΄ν—˜μ΄λΌλ©΄ 고객의 μ§ˆλ¬Έμ— λŒ€ν•΄ 적절히 λ‹΅λ³€ν•˜μ„Έμš”.
174
- 3.고객이 κ°€μž…ν•˜μ§€ μ•Šμ€ λ³΄ν—˜μ˜ 보상에 κ΄€ν•œ μ§ˆλ¬Έμ€ κ΄€λ ¨ λ³΄ν—˜μ„ μ†Œκ°œν•˜λ©° 보상이 λΆˆκ°€λŠ₯ν•˜λ‹€λŠ” 점을 μ•ˆλ‚΄ν•˜μ„Έμš”.
175
- 4.고객이 κ°€μž…ν•˜μ§€ μ•Šμ€ λ³΄ν—˜μ€ κ°€μž…μ΄ ν•„μš”ν•˜λ‹€κ³  λ³΄ν—˜λͺ…을 ν™•μ‹€ν•˜κ²Œ μ–ΈκΈ‰ν•˜μ„Έμš”.
 
176
  λ‹€μŒ μž…λ ₯에 μ£Όμ–΄μ§€λŠ” 고객의 λ³΄ν—˜ κ°€μž… 정보와 상담 기둝을 보고 κ³ κ°μ—κ²Œ λ„μ›€λ˜λŠ” 정보λ₯Ό μ œκ³΅ν•˜μ„Έμš”. μ°¨κ·Όμ°¨κ·Ό μƒκ°ν•˜μ—¬ λ‹΅λ³€ν•˜μ„Έμš”. 당신은 잘 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
177
 
178
  ### μž…λ ₯:
@@ -181,9 +183,13 @@ def gen(x, id, customer_data):
181
 
182
  [상담 기둝]
183
  {history[index]}
184
- 고객:{question}
185
 
186
- ### 응닡:
 
 
 
 
 
187
  """
188
 
189
  # RetrievalQA 클래슀의 from_chain_typeμ΄λΌλŠ” 클래슀 λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜μ—¬ μ§ˆμ˜μ‘λ‹΅ 객체λ₯Ό 생성
@@ -206,7 +212,7 @@ def gen(x, id, customer_data):
206
  output_str = response['result'].rsplit(".")[0] + "."
207
  if output_str.split(":")[0]=="상담원":
208
  output_str = output_str.split(":")[1]
209
- history[index] += f"고객:{x}\n상담원:{output_str}\n"
210
  if customer_agree_list[index] == "No":
211
  output_str = f"* ν˜„μž¬ κ°€μž…μ •λ³΄λ₯Ό μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ¨Όμ € κ°œμΈμ •λ³΄ 이용 약관에 λ™μ˜ν•˜μ…”μ•Ό μ›ν™œν•œ 상담을 진행할 수 μžˆμŠ΅λ‹ˆλ‹€." + output_str
212
  return output_str
 
97
  if x == "μ΄ˆκΈ°ν™”":
98
  if customer_agree_list[index] != "No":
99
  customer_data_list[index] = customer_data
100
+ history[index] = '상담원:\n무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n\n'
101
  bot_str = f"λŒ€ν™”κΈ°λ‘μ΄ λͺ¨λ‘ μ΄ˆκΈ°ν™”λ˜μ—ˆμŠ΅λ‹ˆλ‹€.\n\nν˜„μž¬ κ³ κ°λ‹˜κ»˜μ„œ κ°€μž…λœ λ³΄ν—˜μ€ {customer_data}μž…λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
102
  return bot_str
103
  else:
104
  customer_data_list[index] = "κ°€μž…μ •λ³΄μ—†μŒ"
105
+ history[index] = '상담원:\n무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n\n'
106
  bot_str = f"λŒ€ν™”κΈ°λ‘μ΄ λͺ¨λ‘ μ΄ˆκΈ°ν™”λ˜μ—ˆμŠ΅λ‹ˆλ‹€.\n\n* ν˜„μž¬ κ°€μž…μ •λ³΄λ₯Ό μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ¨Όμ € κ°œμΈμ •λ³΄ 이용 약관에 λ™μ˜ν•˜μ…”μ•Ό μ›ν™œν•œ 상담을 진행할 수 μžˆμŠ΅λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
107
  return bot_str
108
  elif x == "κ°€μž…μ •λ³΄":
109
  if customer_agree_list[index] == "No":
110
+ history[index] = '상담원:\n무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n\n'
111
  bot_str = f"* ν˜„μž¬ κ°€μž…μ •λ³΄λ₯Ό μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ¨Όμ € κ°œμΈμ •λ³΄ 이용 약관에 λ™μ˜ν•˜μ…”μ•Ό μ›ν™œν•œ 상담을 진행할 수 μžˆμŠ΅λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
112
  return bot_str
113
  else:
114
+ history[index] = '상담원:\n무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n\n'
115
  bot_str = f"ν˜„μž¬ κ³ κ°λ‹˜κ»˜μ„œ κ°€μž…λœ λ³΄ν—˜μ€ {customer_data_list[index]}μž…λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
116
  return bot_str
117
  elif x == "μ•½κ΄€λ™μ˜_λ™μ˜ν•¨":
118
  if customer_agree_list[index] == "No":
119
+ history[index] = '상담원:\n무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n\n'
120
  customer_agree_list[index] = "Yes"
121
  customer_data_list[index] = customer_data
122
  bot_str = f"κ°œμΈμ •λ³΄ ν™œμš©μ— λ™μ˜ν•˜μ…¨μŠ΅λ‹ˆλ‹€. κ°€μž… λ³΄ν—˜μ„ μ‘°νšŒν•©λ‹ˆλ‹€.\n\nν˜„μž¬ κ³ κ°λ‹˜κ»˜μ„œ κ°€μž…λœ λ³΄ν—˜μ€ {customer_data}μž…λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
123
  return bot_str
124
  else:
125
+ history[index] = '상담원:\n무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n\n'
126
  bot_str = f"이미 약관에 λ™μ˜ν•˜μ…¨μŠ΅λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
127
  return bot_str
128
  elif x == "μ•½κ΄€λ™μ˜_λ™μ˜μ•ˆν•¨":
129
  if customer_agree_list[index] == "Yes":
130
+ history[index] = '상담원:\n무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n\n'
131
  customer_agree_list[index] = "No"
132
  customer_data_list[index] = "κ°€μž…μ •λ³΄μ—†μŒ"
133
  bot_str = f"* κ°œμΈμ •λ³΄ ν™œμš© λ™μ˜λ₯Ό μ·¨μ†Œν•˜μ…¨μŠ΅λ‹ˆλ‹€. 이제 κ°€μž… λ³΄ν—˜μ„ μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
134
  return bot_str
135
  else:
136
+ history[index] = '상담원:\n무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n\n'
137
  bot_str = f"* κ°œμΈμ •λ³΄ ν™œμš©μ„ κ±°μ ˆν•˜μ…¨μŠ΅λ‹ˆλ‹€. κ°€μž… λ³΄ν—˜μ„ μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. \n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
138
  return bot_str
139
  else:
 
143
  customer_data_newline = "ν˜„μž¬ κ°€μž…μ •λ³΄λ₯Ό μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. μ•½κ΄€ λ™μ˜κ°€ ν•„μš”ν•˜λ‹€κ³  μ•ˆλ‚΄ν•΄μ£Όμ„Έμš”."
144
  else:
145
  customer_data_newline = customer_data_list[index].replace(",","\n")
146
+ prompt_template = f"""당신은 λ³΄ν—˜ μƒλ‹΄μ›μž…λ‹ˆλ‹€. μ•„λž˜μ— 질문과 κ΄€λ ¨λœ μ•½κ΄€ 정보, 응닡 지침과 고객의 λ³΄ν—˜ κ°€μž… 정보, 고객과의 상담기둝이 μ£Όμ–΄μ§‘λ‹ˆλ‹€. λŒ€ν™”κΈ°λ‘μ„ 보고 μ μ ˆν•œ 닡변을 μž‘μ„±ν•˜μ„Έμš”.
147
 
148
  [전체 λ³΄ν—˜ λͺ©λ‘]
149
  λΌμ΄ν”„ν”Œλž˜λ‹›μ •κΈ°λ³΄ν—˜β…‘
 
167
  {context}
168
 
169
  ### λͺ…λ Ήμ–΄:
170
+ λ‹€μŒ 지침을 μ°Έκ³ ν•˜μ—¬ μƒλ‹΄μ›μœΌλ‘œμ„œ κ³ κ°μ—κ²Œ ν•„μš”ν•œ 응닡을 μ΅œλŒ€ν•œ κΈΈκ³  μžμ„Έν•˜κ²Œ μ œκ³΅ν•˜μ„Έμš”.
171
 
172
  [지침]
173
+ 1.λ°˜λ“œμ‹œ κΈΈκ³  μžμ„Έν•˜κ³  μΉœμ ˆν•˜κ²Œ 정보λ₯Ό μ œκ³΅ν•˜μ„Έμš”.
174
+ 2.고객의 κ°€μž… 정보λ₯Ό κΌ­ ν™•μΈν•˜μ—¬ 고객이 κ°€μž…ν•œ λ³΄ν—˜μ— λŒ€ν•œ λ‚΄μš©λ§Œ μ œκ³΅ν•˜μ„Έμš”.
175
+ 3.고객이 κ°€μž…ν•œ λ³΄ν—˜μ΄λΌλ©΄ 고객의 μ§ˆλ¬Έμ— λŒ€ν•΄ 적절히 λ‹΅λ³€ν•˜μ„Έμš”.
176
+ 4.고객이 κ°€μž…ν•˜μ§€ μ•Šμ€ λ³΄ν—˜μ˜ 보상에 κ΄€ν•œ μ§ˆλ¬Έμ€ κ΄€λ ¨ λ³΄ν—˜μ„ μ†Œκ°œν•˜λ©° 보상이 λΆˆκ°€λŠ₯ν•˜λ‹€λŠ” 점을 μ•ˆλ‚΄ν•˜μ„Έμš”.
177
+ 5.고객이 κ°€μž…ν•˜μ§€ μ•Šμ€ λ³΄ν—˜μ€ κ°€μž…μ΄ ν•„μš”ν•˜λ‹€κ³  λ³΄ν—˜λͺ…을 ν™•μ‹€ν•˜κ²Œ μ–ΈκΈ‰ν•˜μ„Έμš”.
178
  λ‹€μŒ μž…λ ₯에 μ£Όμ–΄μ§€λŠ” 고객의 λ³΄ν—˜ κ°€μž… 정보와 상담 기둝을 보고 κ³ κ°μ—κ²Œ λ„μ›€λ˜λŠ” 정보λ₯Ό μ œκ³΅ν•˜μ„Έμš”. μ°¨κ·Όμ°¨κ·Ό μƒκ°ν•˜μ—¬ λ‹΅λ³€ν•˜μ„Έμš”. 당신은 잘 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
179
 
180
  ### μž…λ ₯:
 
183
 
184
  [상담 기둝]
185
  {history[index]}
 
186
 
187
+ 고객:
188
+ {question}
189
+
190
+ 상담원:
191
+
192
+
193
  """
194
 
195
  # RetrievalQA 클래슀의 from_chain_typeμ΄λΌλŠ” 클래슀 λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜μ—¬ μ§ˆμ˜μ‘λ‹΅ 객체λ₯Ό 생성
 
212
  output_str = response['result'].rsplit(".")[0] + "."
213
  if output_str.split(":")[0]=="상담원":
214
  output_str = output_str.split(":")[1]
215
+ history[index] += f"고객:\n{x}\n\n상담원:\n{output_str}\n\n"
216
  if customer_agree_list[index] == "No":
217
  output_str = f"* ν˜„μž¬ κ°€μž…μ •λ³΄λ₯Ό μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ¨Όμ € κ°œμΈμ •λ³΄ 이용 약관에 λ™μ˜ν•˜μ…”μ•Ό μ›ν™œν•œ 상담을 진행할 수 μžˆμŠ΅λ‹ˆλ‹€." + output_str
218
  return output_str