| 1 | """Catch-all parser using UnstructuredLoader.""" |
| 2 | |
| 3 | import os |
| 4 | |
| 5 | from plugins._document_query.helpers.fetch import FetchedDocument |
| 6 | from .base import BaseParser |
| 7 | |
| 8 | os.environ.setdefault("USER_AGENT", "@mixedbread-ai/unstructured") |
| 9 | |
| 10 | |
| 11 | class UnstructuredParser(BaseParser): |
| 12 | mimetypes = ["*"] |
| 13 | |
| 14 | def _parse_sync(self, document: FetchedDocument, config: dict) -> str: |
| 15 | from langchain_unstructured import UnstructuredLoader |
| 16 | |
| 17 | with document.local_file() as file_path: |
| 18 | loader = UnstructuredLoader( |
| 19 | file_path=file_path, |
| 20 | mode="single", |
| 21 | partition_via_api=False, |
| 22 | strategy="hi_res", |
| 23 | ) |
| 24 | elements = loader.load() |
| 25 | return "\n".join(e.page_content for e in elements) |