Spaces:
Runtime error
Runtime error
함수 작성
Browse files- app.py +23 -3
- 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
|
| 34 |
|
| 35 |
def get_csv_file(docs):
|
| 36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
|
| 38 |
def get_json_file(docs):
|
| 39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
|