Spaces:
Sleeping
Sleeping
# Get reference | |
class Metadata: | |
def __init__(self, reference): | |
self.title = reference["title"] | |
self.author = reference["author"] | |
self.category = reference["category"] | |
self.year = reference["year"] | |
self.publisher = reference["publisher"] | |
def add_metadata(self, documents, metadata): | |
"""Add metadata to each item (document or node).""" | |
for document in documents: | |
if not hasattr(document, "metadata") or document.metadata is None: | |
document.metadata = {} | |
document.metadata.update(metadata) | |
print("metadata is added") | |
# self.logger.log_action(f"Metadata added to document {item.id_}", action_type="METADATA") | |
return documents | |
def _generate_metadata(self): | |
"""Generate metadata and return it.""" | |
metadata = { | |
"title": self.title, | |
"author": self.author, | |
"category": self.category, | |
"year": self.year, | |
"publisher": self.publisher, | |
"reference": f"{self.author}. ({self.year}). *{self.title}*. {self.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) |