Daoneeee commited on
Commit
c241787
·
1 Parent(s): 1163e04

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -28
app.py CHANGED
@@ -29,32 +29,34 @@ def get_pdf_text(pdf_docs):
29
  # 과제
30
  # 아래 텍스트 추출 함수를 작성
31
 
32
- def get_text_file(docs):
33
- text = docs.getvalue().decode("utf-8")
34
- return [text]
35
-
36
-
37
- import csv
 
 
38
 
39
- def get_csv_file(docs):
40
- text_list = []
41
- decoded_content = docs.getvalue().decode('utf-8')
42
- csv_reader = csv.reader(decoded_content.splitlines())
43
- for row in csv_reader:
44
- text_list.extend(row)
45
- return text_list
 
46
 
47
 
48
- import json
 
 
 
 
 
 
 
49
 
50
- def get_json_file(docs):
51
- text_list = []
52
- json_content = json.load(docs)
53
- # Extract text based on JSON structure
54
- # Example assuming the JSON has a 'text' key:
55
- for item in json_content:
56
- text_list.append(item.get('text'))
57
- return text_list
58
 
59
 
60
  # 문서들을 처리하여 텍스트 청크로 나누는 함수입니다.
@@ -92,11 +94,7 @@ def get_conversation_chain(vectorstore):
92
  retriever=vectorstore.as_retriever(),
93
  memory=memory
94
  )
95
- if conversation_chain is not None: # 반환된 대화 체인 객체가 None이 아닌지 확인합니다.
96
- return conversation_chain
97
- else:
98
- raise ValueError("Conversation chain creation failed or returned None")
99
-
100
 
101
 
102
  # 사용자 입력을 처리하는 함수입니다.
@@ -171,4 +169,4 @@ def main():
171
 
172
 
173
  if __name__ == '__main__':
174
- main()
 
29
  # 과제
30
  # 아래 텍스트 추출 함수를 작성
31
 
32
+ def get_text_file(text_docs):
33
+ temp_dir = tempfile.TemporaryDirectory() # 임시 디렉토리를 생성합니다.
34
+ temp_filepath = os.path.join(temp_dir.name, text_docs.name) # 임시 파일 경로를 생성합니다.
35
+ with open(temp_filepath, "wb") as f: # 임시 파일을 바이너리 쓰기 모드로 엽니다.
36
+ f.write(text_docs.getvalue()) # PDF 문서의 내용을 임시 파일에 씁니다.
37
+ pdf_loader = PyPDFLoader(temp_filepath) # PyPDFLoader를 사용해 PDF를 로드합니다.
38
+ pdf_doc = pdf_loader.load() # 텍스트를 추출합니다.
39
+ return pdf_doc # 추출한 텍스트를 반환합니다.
40
 
41
+ def get_csv_file(csv_docs):
42
+ temp_dir = tempfile.TemporaryDirectory() # 임시 디렉토리를 생성합니다.
43
+ temp_filepath = os.path.join(temp_dir.name, csv_docs.name) # 임시 파일 경로를 생성합니다.
44
+ with open(temp_filepath, "wb") as f: # 임시 파일을 바이너리 쓰기 모드로 엽니다.
45
+ f.write(csv_docs.getvalue()) # PDF 문서의 내용을 임시 파일에 씁니다.
46
+ pdf_loader = PyPDFLoader(temp_filepath) # PyPDFLoader를 사용해 PDF를 로드합니다.
47
+ pdf_doc = pdf_loader.load() # 텍스트를 추출합니다.
48
+ return pdf_doc # 추출한 텍스트를 반환합니다.
49
 
50
 
51
+ def get_json_file(json_docs):
52
+ temp_dir = tempfile.TemporaryDirectory() # 임시 디렉토리를 생성합니다.
53
+ temp_filepath = os.path.join(temp_dir.name, json_docs.name) # 임시 파일 경로를 생성합니다.
54
+ with open(temp_filepath, "wb") as f: # 임시 파일을 바이너리 쓰기 모드로 엽니다.
55
+ f.write(json_docs.getvalue()) # PDF 문서의 내용을 임시 파일에 씁니다.
56
+ pdf_loader = PyPDFLoader(temp_filepath) # PyPDFLoader를 사용해 PDF를 로드합니다.
57
+ pdf_doc = pdf_loader.load() # 텍스트를 추출합니다.
58
+ return pdf_doc # 추출한 텍스트를 반환합니다.
59
 
 
 
 
 
 
 
 
 
60
 
61
 
62
  # 문서들을 처리하여 텍스트 청크로 나누는 함수입니다.
 
94
  retriever=vectorstore.as_retriever(),
95
  memory=memory
96
  )
97
+ return conversation_chain
 
 
 
 
98
 
99
 
100
  # 사용자 입력을 처리하는 함수입니다.
 
169
 
170
 
171
  if __name__ == '__main__':
172
+ main()