hyo37009 commited on
Commit
20d1039
·
1 Parent(s): 3ae13e1

함수 작성

Browse files
Files changed (2) hide show
  1. app.py +23 -3
  2. requirements.txt +3 -1
app.py CHANGED
@@ -13,6 +13,9 @@ from langchain.llms import HuggingFaceHub, LlamaCpp, CTransformers # For loadin
13
  from langchain.document_loaders import PyPDFLoader, TextLoader, JSONLoader, CSVLoader
14
  import tempfile # 임시 파일을 생성하기 위한 라이브러리입니다.
15
  import os
 
 
 
16
 
17
 
18
  # PDF 문서로부터 텍스트를 추출하는 함수입니다.
@@ -29,14 +32,31 @@ def get_pdf_text(pdf_docs):
29
  # 아래 텍스트 추출 함수를 작성
30
 
31
  def get_text_file(docs):
32
- pass
 
 
 
 
 
 
33
 
34
 
35
  def get_csv_file(docs):
36
- pass
 
 
 
 
 
 
37
 
38
  def get_json_file(docs):
39
- pass
 
 
 
 
 
40
 
41
 
42
  # 문서들을 처리하여 텍스트 청크로 나누는 함수입니다.
 
13
  from langchain.document_loaders import PyPDFLoader, TextLoader, JSONLoader, CSVLoader
14
  import tempfile # 임시 파일을 생성하기 위한 라이브러리입니다.
15
  import os
16
+ import json
17
+ from pathlib import Path
18
+ from pprint import pprint
19
 
20
 
21
  # PDF 문서로부터 텍스트를 추출하는 함수입니다.
 
32
  # 아래 텍스트 추출 함수를 작성
33
 
34
  def get_text_file(docs):
35
+ temp_dir = tempfile.TemporaryDirectory() # 임시 디렉토리를 생성합니다.
36
+ temp_filepath = os.path.join(temp_dir.name, pdf_docs.name) # 임시 파일 경로를 생성합니다.
37
+ with open(temp_filepath, "wb") as f: # 임시 파일을 바이너리 쓰기 모드로 엽니다.
38
+ f.write(pdf_docs.getvalue()) # PDF 문서의 내용을 임시 파일에 씁니다.
39
+ txt_loader = TextLoader(temp_filepath) # PyPDFLoader를 사용해 PDF를 로드합니다.
40
+ txt_doc = txt_loader.load() # 텍스트를 추출합니다.
41
+ return txt_doc # 추출한 텍스트를 반환합니다.
42
 
43
 
44
  def get_csv_file(docs):
45
+ temp_dir = tempfile.TemporaryDirectory() # 임시 디렉토리를 생성합니다.
46
+ temp_filepath = os.path.join(temp_dir.name, pdf_docs.name) # 임시 파일 경로를 생성합니다.
47
+ with open(temp_filepath, "wb") as f: # 임시 파일을 바이너리 쓰기 모드로 엽니다.
48
+ f.write(pdf_docs.getvalue()) # PDF 문서의 내용을 임시 파일에 씁니다.
49
+ csv_loader = CSVLoader(temp_filepath) # PyPDFLoader를 사용해 PDF를 로드합니다.
50
+ csv_doc = csv_loader.load() # 텍스트를 추출합니다.
51
+ return csv_doc # 추출한 텍스트를 반환합니다.
52
 
53
  def get_json_file(docs):
54
+ temp_dir = tempfile.TemporaryDirectory() # 임시 디렉토리를 생성합니다.
55
+ temp_filepath = os.path.join(temp_dir.name, pdf_docs.name) # 임시 파일 경로를 생성합니다.
56
+ with open(temp_filepath, "wb") as f: # 임시 파일을 바이너리 쓰기 모드로 엽니다.
57
+ f.write(pdf_docs.getvalue()) # PDF 문서의 내용을 임시 파일에 씁니다.
58
+ data = json.loads(Path(temp_filepath).read_text())
59
+ return data # 추출한 텍스트를 반환합니다.
60
 
61
 
62
  # 문서들을 처리하여 텍스트 청크로 나누는 함수입니다.
requirements.txt CHANGED
@@ -11,4 +11,6 @@ streamlit-extras
11
  InstructorEmbedding
12
  sentence-transformers
13
  jq
14
- openai
 
 
 
11
  InstructorEmbedding
12
  sentence-transformers
13
  jq
14
+ openai
15
+ pathlib
16
+ pprint