Spaces:
Sleeping
Sleeping
File size: 1,468 Bytes
c96b98a | 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 | from pathlib import Path
from typing import List, Union, IO, Any
from phi.document.base import Document
from phi.document.reader.base import Reader
from phi.utils.log import logger
class TextReader(Reader):
"""Reader for Text files"""
def read(self, file: Union[Path, IO[Any]]) -> List[Document]:
if not file:
raise ValueError("No file provided")
try:
if isinstance(file, Path):
if not file.exists():
raise FileNotFoundError(f"Could not find file: {file}")
logger.info(f"Reading: {file}")
file_name = file.stem
file_contents = file.read_text()
else:
logger.info(f"Reading uploaded file: {file.name}")
file_name = file.name.split(".")[0]
file.seek(0)
file_contents = file.read().decode("utf-8")
documents = [
Document(
name=file_name,
id=file_name,
content=file_contents,
)
]
if self.chunk:
chunked_documents = []
for document in documents:
chunked_documents.extend(self.chunk_document(document))
return chunked_documents
return documents
except Exception as e:
logger.error(f"Error reading: {file}: {e}")
return []
|