■ SimpleDirectoryReader 클래스의 load_data 메소드를 사용해 문서를 로드하는 방법을 보여준다.
▶ main.py
1 2 3 4 5 6 7 8 9 |
from llama_index.core import SimpleDirectoryReader simpleDirectoryReader = SimpleDirectoryReader(input_dir = "/home/king/data") documentList = simpleDirectoryReader.load_data() print(documentList) |
▶ 실행 결과
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
[ Document( id_ = 'd8ba06fd-16ed-4ab1-b2b9-4ebd77a18a51', embedding = None, metadata = { 'file_path' : '/home/king/data/akazukin1.txt', 'file_name' : 'akazukin1.txt', 'file_type' : 'text/plain', 'file_size' : 686, 'creation_date' : '2024-06-07', 'last_modified_date' : '2024-01-16' }, excluded_embed_metadata_keys = ['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys = ['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships = {}, text = "제1장: 데이터 프론트\n\n밤이 되면 반짝이는 네오 도쿄. 고층 빌딩이 늘어서고, 네온사인이 거리를 수놓는다. 그 거리에서 빨간 두건을 쓴 소녀 미코는 불법 데이터 카우리아를 운반하는 배달원으로 일하고 있었다. 그녀는 어머니가 병에 걸려 치료비를 벌기 위해 데이터카우리아에 몸을 던지고 있었다.\n\n그러던 어느 날, 미코는 중요한 데이터를 운반하는 임무를 맡게 된다. 그 데이터에는 거대 기업 '울프 코퍼레이션'의 시민에 대한 악랄한 지배를 폭로하는 정보가 담겨 있었다. 그녀는 데이터를 받아 목적지로 향한다.\n", start_char_idx = None, end_char_idx = None, text_template = '{metadata_str}\n\n{content}', metadata_template = '{key}: {value}', metadata_seperator = '\n' ), Document ( id_ = '8897a682-d01d-407b-881a-6d1a7517158c', embedding = None, metadata = { 'file_path' : '/home/king/data/akazukin2.txt', 'file_name' : 'akazukin2.txt', 'file_type' : 'text/plain', 'file_size' : 364, 'creation_date' : '2024-06-07', 'last_modified_date' : '2024-01-16' }, excluded_embed_metadata_keys = ['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys = ['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships = {}, text = "제2장: 울프 코퍼레이션의 함정\n\n미코는 목적지인 술집 '할머니의 집'으로 향하는 길에 울프 코퍼레이션의 요원들에게 쫓기게 된다. 그들은 '빨간 망토'라는 데이터 카우리아에 대한 소문을 듣고 데이터를 탈취하려 했다. 미코는 교묘하게 요원들을 흩뿌리고 술집에 도착한다.\n", start_char_idx = None, end_char_idx = None, text_template = '{metadata_str}\n\n{content}', metadata_template = '{key}: {value}', metadata_seperator = '\n' ), Document( id_ ='1be7ff28-02e3-4ec9-9d49-be61eb108f0d', embedding = None, metadata = { 'file_path' : '/home/king/data/akazukin3.txt', 'file_name' : 'akazukin3.txt', 'file_type' : 'text/plain', 'file_size' : 619, 'creation_date' : '2024-06-07', 'last_modified_date' : '2024-01-16' }, excluded_embed_metadata_keys = ['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys = ['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships = {}, text = "제3장: 배신과 재회\n\n술집 '할머니의 집'에서 미코는 데이터를 받을 사람인 료를 기다리고 있었다. 료는 그녀의 어릴 적 친구이자 그 역시 울프 코퍼레이션과 싸우는 해커 집단의 일원이었다. 하지만 료는 미코에게 배신감을 느꼈고, 그녀가 데이터 카우리아에 몸을 던진 것에 화가 났다.\n\n그럼에도 불구하고 미코는 료에게 데이터를 건네며 울프 코퍼레이션에 대한 반격을 믿기로 한다. 두 사람은 함께 울프 코퍼레이션의 음모를 밝혀내고 시민들을 구하기로 결심한다.\n", start_char_idx = None, end_char_idx = None, text_template = '{metadata_str}\n\n{content}', metadata_template = '{key}: {value}', metadata_seperator = '\n' ), ... ] |
▶ requirements.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
aiohttp==3.9.5 aiosignal==1.3.1 annotated-types==0.7.0 anyio==4.4.0 async-timeout==4.0.3 attrs==23.2.0 beautifulsoup4==4.12.3 certifi==2024.6.2 charset-normalizer==3.3.2 click==8.1.7 dataclasses-json==0.6.6 Deprecated==1.2.14 dirtyjson==1.0.8 distro==1.9.0 exceptiongroup==1.2.1 frozenlist==1.4.1 fsspec==2024.6.0 greenlet==3.0.3 h11==0.14.0 httpcore==1.0.5 httpx==0.27.0 idna==3.7 joblib==1.4.2 llama-index==0.10.43 llama-index-agent-openai==0.2.7 llama-index-cli==0.1.12 llama-index-core==0.10.43 llama-index-embeddings-openai==0.1.10 llama-index-indices-managed-llama-cloud==0.1.6 llama-index-legacy==0.9.48 llama-index-llms-openai==0.1.22 llama-index-multi-modal-llms-openai==0.1.6 llama-index-program-openai==0.1.6 llama-index-question-gen-openai==0.1.3 llama-index-readers-file==0.1.23 llama-index-readers-llama-parse==0.1.4 llama-parse==0.4.4 llamaindex-py-client==0.1.19 marshmallow==3.21.3 multidict==6.0.5 mypy-extensions==1.0.0 nest-asyncio==1.6.0 networkx==3.3 nltk==3.8.1 numpy==1.26.4 openai==1.32.0 packaging==24.0 pandas==2.2.2 pillow==10.3.0 pydantic==2.7.3 pydantic_core==2.18.4 pypdf==4.2.0 python-dateutil==2.9.0.post0 pytz==2024.1 PyYAML==6.0.1 regex==2024.5.15 requests==2.32.3 six==1.16.0 sniffio==1.3.1 soupsieve==2.5 SQLAlchemy==2.0.30 striprtf==0.0.26 tenacity==8.3.0 tiktoken==0.7.0 tqdm==4.66.4 typing-inspect==0.9.0 typing_extensions==4.12.1 tzdata==2024.1 urllib3==2.2.1 wrapt==1.16.0 yarl==1.9.4 |
※ pip install llama-index 명령을 실행했다.