ldhldh commited on
Commit
a419b5d
β€’
1 Parent(s): ecf1f13

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -6
app.py CHANGED
@@ -25,6 +25,26 @@ torch_device = "cuda" if torch.cuda.is_available() else "cpu"
25
  print("Running on device:", torch_device)
26
  print("CPU threads:", torch.get_num_threads())
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
  # faiss_db 둜 λ‘œμ»¬μ— λ‘œλ“œν•˜κΈ°
30
  docsearch = FAISS.load_local("", embeddings)
@@ -119,7 +139,6 @@ def gen(x, id, customer_data):
119
  else:
120
  customer_data_newline = customer_data_list[index].replace(",","\n")
121
  prompt_template = f"""당신은 λ³΄ν—˜ μƒλ‹΄μ›μž…λ‹ˆλ‹€. μ•„λž˜μ— 질문과 κ΄€λ ¨λœ μ•½κ΄€ 정보, 응닡 지침과 고객의 λ³΄ν—˜ κ°€μž… 정보, 고객과의 상담기둝이 μ£Όμ–΄μ§‘λ‹ˆλ‹€. μš”μ²­μ„ 적절히 μ™„λ£Œν•˜λŠ” 응닡을 μž‘μ„±ν•˜μ„Έμš”.
122
-
123
  [λ³΄ν—˜λͺ©λ‘]
124
  λΌμ΄ν”„ν”Œλž˜λ‹›μ •κΈ°λ³΄ν—˜β…‘
125
  λΌμ΄ν”„ν”Œλž˜λ‹›μ’…μ‹ λ³΄ν—˜
@@ -138,9 +157,7 @@ def gen(x, id, customer_data):
138
  λΌμ΄ν”„ν”Œλž˜λ‹›μ—°κΈˆμ €μΆ•λ³΄ν—˜β…‘
139
  1λ…„λΆ€ν„°μ €μΆ•λ³΄ν—˜
140
  λΌμ΄ν”„ν”Œλž˜λ‹›μ—°κΈˆλ³΄ν—˜β…‘
141
-
142
  {context}
143
-
144
  ### λͺ…λ Ήμ–΄:
145
  λ‹€μŒ 지침을 μ°Έκ³ ν•˜μ—¬ μƒλ‹΄μ›μœΌλ‘œμ„œ κ³ κ°μ—κ²Œ ν•„μš”ν•œ 응닡을 μ œκ³΅ν•˜μ„Έμš”.
146
  [지침]
@@ -149,15 +166,12 @@ def gen(x, id, customer_data):
149
  3.고객이 κ°€μž…ν•˜μ§€ μ•Šμ€ λ³΄ν—˜μ˜ 보상에 κ΄€ν•œ μ§ˆλ¬Έμ€ κ΄€λ ¨ λ³΄ν—˜μ„ μ†Œκ°œν•˜λ©° 보상이 λΆˆκ°€λŠ₯ν•˜λ‹€λŠ” 점을 μ•ˆλ‚΄ν•˜μ„Έμš”.
150
  4.고객이 κ°€μž…ν•˜μ§€ μ•Šμ€ λ³΄ν—˜μ€ κ°€μž…μ΄ ν•„μš”ν•˜λ‹€κ³  λ³΄ν—˜λͺ…을 ν™•μ‹€ν•˜κ²Œ μ–ΈκΈ‰ν•˜μ„Έμš”.
151
  λ‹€μŒ μž…λ ₯에 μ£Όμ–΄μ§€λŠ” 고객의 λ³΄ν—˜ κ°€μž… 정보와 상담 기둝을 보고 κ³ κ°μ—κ²Œ λ„μ›€λ˜λŠ” 정보λ₯Ό μ œκ³΅ν•˜μ„Έμš”. μ°¨κ·Όμ°¨κ·Ό μƒκ°ν•˜μ—¬ λ‹΅λ³€ν•˜μ„Έμš”. 당신은 잘 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
152
-
153
  ### μž…λ ₯:
154
  [고객의 κ°€μž… 정보]
155
  {customer_data_newline}
156
-
157
  [상담 기둝]
158
  {history[index]}
159
  고객:{question}
160
-
161
  ### 응닡:
162
  """
163
 
 
25
  print("Running on device:", torch_device)
26
  print("CPU threads:", torch.get_num_threads())
27
 
28
+ loader = PyPDFLoader("total.pdf")
29
+ pages = loader.load()
30
+
31
+ # 데이터λ₯Ό λΆˆλŸ¬μ™€μ„œ ν…μŠ€νŠΈλ₯Ό μΌμ •ν•œ 수둜 λ‚˜λˆ„κ³  κ΅¬λΆ„μžλ‘œ μ—°κ²°ν•˜λŠ” μž‘μ—…
32
+ text_splitter = RecursiveCharacterTextSplitter(chunk_size=300, chunk_overlap=0)
33
+ texts = text_splitter.split_documents(pages)
34
+
35
+ print(f"λ¬Έμ„œμ— {len(texts)}개의 λ¬Έμ„œλ₯Ό 가지고 μžˆμŠ΅λ‹ˆλ‹€.")
36
+
37
+ # μž„λ² λ”© λͺ¨λΈ λ‘œλ“œ
38
+ embeddings = HuggingFaceEmbeddings(model_name="intfloat/multilingual-e5-large")
39
+
40
+ # λ¬Έμ„œμ— μžˆλŠ” ν…μŠ€νŠΈλ₯Ό μž„λ² λ”©ν•˜κ³  FAISS 에 인덱슀λ₯Ό ꡬ좕함
41
+ index = FAISS.from_documents(
42
+ documents=texts,
43
+ embedding=embeddings,
44
+ )
45
+
46
+ # faiss_db 둜 λ‘œμ»¬μ— μ €μž₯ν•˜κΈ°
47
+ index.save_local("")
48
 
49
  # faiss_db 둜 λ‘œμ»¬μ— λ‘œλ“œν•˜κΈ°
50
  docsearch = FAISS.load_local("", embeddings)
 
139
  else:
140
  customer_data_newline = customer_data_list[index].replace(",","\n")
141
  prompt_template = f"""당신은 λ³΄ν—˜ μƒλ‹΄μ›μž…λ‹ˆλ‹€. μ•„λž˜μ— 질문과 κ΄€λ ¨λœ μ•½κ΄€ 정보, 응닡 지침과 고객의 λ³΄ν—˜ κ°€μž… 정보, 고객과의 상담기둝이 μ£Όμ–΄μ§‘λ‹ˆλ‹€. μš”μ²­μ„ 적절히 μ™„λ£Œν•˜λŠ” 응닡을 μž‘μ„±ν•˜μ„Έμš”.
 
142
  [λ³΄ν—˜λͺ©λ‘]
143
  λΌμ΄ν”„ν”Œλž˜λ‹›μ •κΈ°λ³΄ν—˜β…‘
144
  λΌμ΄ν”„ν”Œλž˜λ‹›μ’…μ‹ λ³΄ν—˜
 
157
  λΌμ΄ν”„ν”Œλž˜λ‹›μ—°κΈˆμ €μΆ•λ³΄ν—˜β…‘
158
  1λ…„λΆ€ν„°μ €μΆ•λ³΄ν—˜
159
  λΌμ΄ν”„ν”Œλž˜λ‹›μ—°κΈˆλ³΄ν—˜β…‘
 
160
  {context}
 
161
  ### λͺ…λ Ήμ–΄:
162
  λ‹€μŒ 지침을 μ°Έκ³ ν•˜μ—¬ μƒλ‹΄μ›μœΌλ‘œμ„œ κ³ κ°μ—κ²Œ ν•„μš”ν•œ 응닡을 μ œκ³΅ν•˜μ„Έμš”.
163
  [지침]
 
166
  3.고객이 κ°€μž…ν•˜μ§€ μ•Šμ€ λ³΄ν—˜μ˜ 보상에 κ΄€ν•œ μ§ˆλ¬Έμ€ κ΄€λ ¨ λ³΄ν—˜μ„ μ†Œκ°œν•˜λ©° 보상이 λΆˆκ°€λŠ₯ν•˜λ‹€λŠ” 점을 μ•ˆλ‚΄ν•˜μ„Έμš”.
167
  4.고객이 κ°€μž…ν•˜μ§€ μ•Šμ€ λ³΄ν—˜μ€ κ°€μž…μ΄ ν•„μš”ν•˜λ‹€κ³  λ³΄ν—˜λͺ…을 ν™•μ‹€ν•˜κ²Œ μ–ΈκΈ‰ν•˜μ„Έμš”.
168
  λ‹€μŒ μž…λ ₯에 μ£Όμ–΄μ§€λŠ” 고객의 λ³΄ν—˜ κ°€μž… 정보와 상담 기둝을 보고 κ³ κ°μ—κ²Œ λ„μ›€λ˜λŠ” 정보λ₯Ό μ œκ³΅ν•˜μ„Έμš”. μ°¨κ·Όμ°¨κ·Ό μƒκ°ν•˜μ—¬ λ‹΅λ³€ν•˜μ„Έμš”. 당신은 잘 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
 
169
  ### μž…λ ₯:
170
  [고객의 κ°€μž… 정보]
171
  {customer_data_newline}
 
172
  [상담 기둝]
173
  {history[index]}
174
  고객:{question}
 
175
  ### 응닡:
176
  """
177