Spaces:
Runtime error
Runtime error
Download script/get_metadata.py from Multimedika/Bot_Development: direct link, hf CLI and curl.
- Browser
- Download file 1.66 kB
-
https://huggingface.co/spaces/Multimedika/Bot_Development/resolve/4a2b28f736a28cfd8d28be2779d27b2e003a38a4/script/get_metadata.py
- Command line
-
hf download hf://spaces/Multimedika/Bot_Development@4a2b28f736a28cfd8d28be2779d27b2e003a38a4/script/get_metadata.py
-
curl -L -o get_metadata.py https://huggingface.co/spaces/Multimedika/Bot_Development/resolve/4a2b28f736a28cfd8d28be2779d27b2e003a38a4/script/get_metadata.py
1.66 kB
| # Get reference | |
| class Metadata: | |
| def __init__(self, reference): | |
| self.reference = reference | |
| def add_metadata(self, documents, metadata): | |
| """Add metadata to each document and include page number.""" | |
| for page_number, document in enumerate(documents, start=1): | |
| # Ensure the document has a metadata attribute | |
| if not hasattr(document, "metadata") or document.metadata is None: | |
| document.metadata = {} | |
| # Update metadata with page number | |
| document.metadata["page"] = page_number | |
| document.metadata.update(metadata) | |
| print(f"Metadata added to page {page_number}") | |
| # self.logger.log_action(f"Metadata added to document {document.id_}", action_type="METADATA") | |
| return documents | |
| def _generate_metadata(self): | |
| """Generate metadata and return it.""" | |
| metadata = { | |
| "title": self.reference["title"], | |
| "author": self.reference["author"], | |
| "category": self.reference["category"], | |
| "year": self.reference["year"], | |
| "publisher": self.reference["publisher"], | |
| "reference": f"{self.reference['author']}. ({self.reference['year']}). *{self.reference['title']}*. {self.reference['publisher']}." # APA style reference | |
| } | |
| print("metadata is generated") | |
| return metadata | |
| def apply_metadata(self, documents): | |
| """Apply generated metadata to documents.""" | |
| metadata = self._generate_metadata() | |
| print("metadata is applied") | |
| return self.add_metadata(documents, metadata) |