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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -37
app.py CHANGED
@@ -51,7 +51,7 @@ docsearch = FAISS.load_local("", embeddings)
51
  embeddings_filter = EmbeddingsFilter(
52
  embeddings=embeddings,
53
  similarity_threshold=0.7,
54
- k = 3,
55
  )
56
  # μ••μΆ• 검색기 생성
57
  compression_retriever = ContextualCompressionRetriever(
@@ -86,64 +86,63 @@ def gen(x, id, customer_data):
86
  customer_data_list.append(customer_data)
87
  if x != "μ•½κ΄€λ™μ˜_λ™μ˜ν•¨":
88
  customer_agree_list.append("No")
89
- history.append('상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n')
90
- bot_str = "* ν˜„μž¬ κ°€μž…μ •λ³΄λ₯Ό μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ¨Όμ € κ°œμΈμ •λ³΄ 이용 약관에 λ™μ˜ν•˜μ…”μ•Ό μ›ν™œν•œ 상담을 진행할 수 μžˆμŠ΅λ‹ˆλ‹€. \n무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?"
91
  else:
92
  customer_agree_list.append("Yes")
93
- history.append('상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n')
94
  bot_str = f"κ°œμΈμ •λ³΄ ν™œμš©μ— λ™μ˜ν•˜μ…¨μŠ΅λ‹ˆλ‹€. κ°€μž… λ³΄ν—˜μ„ μ‘°νšŒν•©λ‹ˆλ‹€.\n\nν˜„μž¬ κ³ κ°λ‹˜κ»˜μ„œ κ°€μž…λœ λ³΄ν—˜μ€ {customer_data}μž…λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
95
  return bot_str
96
  else:
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:
140
  context = "{context}"
141
  question = "{question}"
142
  if customer_agree_list[index] == "No":
143
- customer_data_newline = "ν˜„μž¬ κ°€μž…μ •λ³΄λ₯Ό μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. μ•½κ΄€ λ™μ˜κ°€ ν•„μš”ν•˜λ‹€κ³  μ•ˆλ‚΄ν•΄μ£Όμ„Έμš”."
144
  else:
145
  customer_data_newline = customer_data_list[index].replace(",","\n")
146
- prompt_template = f"""당신은 λ³΄ν—˜ μƒλ‹΄μ›μž…λ‹ˆλ‹€. μ•„λž˜μ— 질문과 κ΄€λ ¨λœ μ•½κ΄€ 정보, 응닡 지침과 고객의 λ³΄ν—˜ κ°€μž… 정보, 고객과의 상담기둝이 μ£Όμ–΄μ§‘λ‹ˆλ‹€. λŒ€ν™”κΈ°λ‘μ„ 보고 μ μ ˆν•œ 닡변을 μž‘μ„±ν•˜μ„Έμš”.
147
 
148
  [전체 λ³΄ν—˜ λͺ©λ‘]
149
  λΌμ΄ν”„ν”Œλž˜λ‹›μ •κΈ°λ³΄ν—˜β…‘
@@ -164,32 +163,24 @@ def gen(x, id, customer_data):
164
  1λ…„λΆ€ν„°μ €μΆ•λ³΄ν—˜
165
  λΌμ΄ν”„ν”Œλž˜λ‹›μ—°κΈˆλ³΄ν—˜β…‘
166
 
167
- {context}
168
-
169
- ### λͺ…λ Ήμ–΄:
170
- λ‹€μŒ 지침을 μ°Έκ³ ν•˜μ—¬ μƒλ‹΄μ›μœΌλ‘œμ„œ κ³ κ°μ—κ²Œ ν•„μš”ν•œ 응닡을 μ΅œλŒ€ν•œ κΈΈκ³  μžμ„Έν•˜κ²Œ μ œκ³΅ν•˜μ„Έμš”.
171
 
172
- [지침]
173
- 1.λ°˜λ“œμ‹œ κΈΈκ³  μžμ„Έν•˜κ³  μΉœμ ˆν•˜κ²Œ 정보λ₯Ό μ œκ³΅ν•˜μ„Έμš”.
174
- 2.고객의 κ°€μž… 정보λ₯Ό κΌ­ ν™•μΈν•˜μ—¬ 고객이 κ°€μž…ν•œ λ³΄ν—˜μ— λŒ€ν•œ λ‚΄μš©λ§Œ μ œκ³΅ν•˜μ„Έμš”.
175
- 3.고객이 κ°€μž…ν•œ λ³΄ν—˜μ΄λΌλ©΄ 고객의 μ§ˆλ¬Έμ— λŒ€ν•΄ 적절히 λ‹΅λ³€ν•˜μ„Έμš”.
176
- 4.고객이 κ°€μž…ν•˜μ§€ μ•Šμ€ λ³΄ν—˜μ˜ 보상에 κ΄€ν•œ μ§ˆλ¬Έμ€ κ΄€λ ¨ λ³΄ν—˜μ„ μ†Œκ°œν•˜λ©° 보상이 λΆˆκ°€λŠ₯ν•˜λ‹€λŠ” 점을 μ•ˆλ‚΄ν•˜μ„Έμš”.
177
- 5.고객이 κ°€μž…ν•˜μ§€ μ•Šμ€ λ³΄ν—˜μ€ κ°€μž…μ΄ ν•„μš”ν•˜λ‹€κ³  λ³΄ν—˜λͺ…을 ν™•μ‹€ν•˜κ²Œ μ–ΈκΈ‰ν•˜μ„Έμš”.
178
- λ‹€μŒ μž…λ ₯에 μ£Όμ–΄μ§€λŠ” 고객의 λ³΄ν—˜ κ°€μž… 정보와 상담 기둝을 보고 κ³ κ°μ—κ²Œ λ„μ›€λ˜λŠ” 정보λ₯Ό μ œκ³΅ν•˜μ„Έμš”. μ°¨κ·Όμ°¨κ·Ό μƒκ°ν•˜μ—¬ λ‹΅λ³€ν•˜μ„Έμš”. 당신은 잘 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
179
 
180
- ### μž…λ ₯:
181
  [고객의 κ°€μž… 정보]
182
  {customer_data_newline}
183
 
184
- [상담 기둝]
185
- {history[index]}
186
 
187
- 고객:
188
  {question}
189
 
190
- 상담원:
191
-
 
192
 
 
193
  """
194
 
195
  # RetrievalQA 클래슀의 from_chain_typeμ΄λΌλŠ” 클래슀 λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜μ—¬ μ§ˆμ˜μ‘λ‹΅ 객체λ₯Ό 생성
@@ -207,14 +198,14 @@ def gen(x, id, customer_data):
207
  if customer_agree_list[index] == "No":
208
  query=f"{x}"
209
  else:
210
- query=f"{customer_data_list[index]}, {x}"
211
  response = qa({"query":query})
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
219
  def reset_textbox():
220
  return gr.update(value='')
 
51
  embeddings_filter = EmbeddingsFilter(
52
  embeddings=embeddings,
53
  similarity_threshold=0.7,
54
+ k = 2,
55
  )
56
  # μ••μΆ• 검색기 생성
57
  compression_retriever = ContextualCompressionRetriever(
 
86
  customer_data_list.append(customer_data)
87
  if x != "μ•½κ΄€λ™μ˜_λ™μ˜ν•¨":
88
  customer_agree_list.append("No")
89
+ history.append('상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n\n')
90
+ bot_str = "* λ¨Όμ € κ°œμΈμ •λ³΄ 이용 약관에 λ™μ˜ν•˜μ…”μ•Ό μ›ν™œν•œ 상담을 진행할 수 μžˆμŠ΅λ‹ˆλ‹€. \n무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?"
91
  else:
92
  customer_agree_list.append("Yes")
93
+ history.append('상담원:무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?\n\n')
94
  bot_str = f"κ°œμΈμ •λ³΄ ν™œμš©μ— λ™μ˜ν•˜μ…¨μŠ΅λ‹ˆλ‹€. κ°€μž… λ³΄ν—˜μ„ μ‘°νšŒν•©λ‹ˆλ‹€.\n\nν˜„μž¬ κ³ κ°λ‹˜κ»˜μ„œ κ°€μž…λœ λ³΄ν—˜μ€ {customer_data}μž…λ‹ˆλ‹€.\n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
95
  return bot_str
96
  else:
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\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\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\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\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\n'
136
  bot_str = f"* κ°œμΈμ •λ³΄ ν™œμš©μ„ κ±°μ ˆν•˜μ…¨μŠ΅λ‹ˆλ‹€. κ°€μž… λ³΄ν—˜μ„ μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. \n\nκΆκΈˆν•˜μ‹  것이 μžˆμœΌμ‹ κ°€μš”?"
137
  return bot_str
138
  else:
139
  context = "{context}"
140
  question = "{question}"
141
  if customer_agree_list[index] == "No":
142
+ customer_data_newline = "ν˜„μž¬ κ°€μž…μ •λ³΄λ₯Ό μ‘°νšŒν•  수 μ—†μŠ΅λ‹ˆλ‹€. κ°€μž…ν•  수 μžˆλŠ” κ΄€λ ¨ λ³΄ν—˜μ„ μœ„μ˜ λͺ©λ‘μ—μ„œ μ†Œκ°œν•΄μ£Όμ„Έμš”."
143
  else:
144
  customer_data_newline = customer_data_list[index].replace(",","\n")
145
+ prompt_template = f"""당신은 λ³΄ν—˜ μƒλ‹΄μ›μž…λ‹ˆλ‹€. μ•„λž˜μ— 전체 λ³΄ν—˜ λͺ©λ‘, 질문과 κ΄€λ ¨λœ μ•½κ΄€ 정보, 고객의 λ³΄ν—˜ κ°€μž… 정보, 고객과의 상담기둝이 μ£Όμ–΄μ§‘λ‹ˆλ‹€. μš”μ²­μ„ 적절히 μ™„λ£Œν•˜λŠ” 응닡을 μž‘μ„±ν•˜μ„Έμš”. μ™„μ„±λœ λ¬Έμž₯으둜 κ°„κ²°νžˆ λ‹΅ν•˜μ„Έμš”.
146
 
147
  [전체 λ³΄ν—˜ λͺ©λ‘]
148
  λΌμ΄ν”„ν”Œλž˜λ‹›μ •κΈ°λ³΄ν—˜β…‘
 
163
  1λ…„λΆ€ν„°μ €μΆ•λ³΄ν—˜
164
  λΌμ΄ν”„ν”Œλž˜λ‹›μ—°κΈˆλ³΄ν—˜β…‘
165
 
166
+ 고객은 λ³΄ν—˜ λͺ©λ‘κ³Ό 약관을 λ³Ό 수 μ—†μŠ΅λ‹ˆλ‹€. 직접 μ œμ‹œν•˜μ—¬ μ†Œκ°œν•˜μ„Έμš”.
 
 
 
167
 
168
+ {context}
 
 
 
 
 
 
169
 
 
170
  [고객의 κ°€μž… 정보]
171
  {customer_data_newline}
172
 
173
+ ### λͺ…λ Ήμ–΄:
174
+ μ£Όμ–΄μ§€λŠ” 이전 λŒ€ν™”λ₯Ό 보고 λ§₯락을 νŒŒμ•…ν•˜μ—¬ μƒλ‹΄μ›μœΌλ‘œμ„œ κ³ κ°μ—κ²Œ ν•„μš”ν•œ 정보λ₯Ό μ΅œλŒ€ν•œ κΈΈκ³  μžμ„Έν•˜κ³  μΉœμ ˆν•˜κ²Œ μ œκ³΅ν•˜μ„Έμš”. 일반적인 λ³΄ν—˜ κ΄€λ ¨ 지식은 ν•΄λ‹Ή λ‚΄μš©λ§Œ κ°„κ²°νžˆ λ‹΅λ³€ν•˜μ„Έμš”.
175
 
176
+ ### 질문:
177
  {question}
178
 
179
+ ### μž…λ ₯:
180
+ [이전 λŒ€ν™”]
181
+ {history[index]}
182
 
183
+ ### 응닡:
184
  """
185
 
186
  # RetrievalQA 클래슀의 from_chain_typeμ΄λΌλŠ” 클래슀 λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜μ—¬ μ§ˆμ˜μ‘λ‹΅ 객체λ₯Ό 생성
 
198
  if customer_agree_list[index] == "No":
199
  query=f"{x}"
200
  else:
201
+ query=f"{x}"
202
  response = qa({"query":query})
203
+ output_str = response['result'].rsplit(".",1)[0] + "."
204
  if output_str.split(":")[0]=="상담원":
205
  output_str = output_str.split(":")[1]
206
+ history[index] += f"고객:{x}\n\n상담원:{output_str}\n\n"
207
  if customer_agree_list[index] == "No":
208
+ output_str = f"* λ¨Όμ € κ°œμΈμ •λ³΄ 이용 약관에 λ™μ˜ν•˜μ…”μ•Ό μ›ν™œν•œ 상담을 진행할 수 μžˆμŠ΅λ‹ˆλ‹€.\n\n" + output_str
209
  return output_str
210
  def reset_textbox():
211
  return gr.update(value='')