Spaces:
Sleeping
Sleeping
| # file_data/service.py | |
| import logging | |
| from typing import List | |
| from lpm_kernel.L1.bio import Note | |
| from lpm_kernel.common.repository.database_session import DatabaseSession | |
| from lpm_kernel.file_data.document_repository import DocumentRepository | |
| from lpm_kernel.models.l1 import ( | |
| L1Version, | |
| L1ChunkTopic, | |
| ) | |
| logger = logging.getLogger(__name__) | |
| class NoteService: | |
| def __init__(self): | |
| self._repository = DocumentRepository() | |
| def prepareNotes(self, notes_list: List[Note]): | |
| with DatabaseSession.session() as session: | |
| latest_version = ( | |
| session.query(L1Version).order_by(L1Version.version.desc()).first() | |
| ) | |
| if latest_version: | |
| # Get the latest chunk topics | |
| chunk_topics = ( | |
| session.query(L1ChunkTopic) | |
| .filter(L1ChunkTopic.version == latest_version.version) | |
| .all() | |
| ) | |
| # Create mapping from chunk_id to topic | |
| topic_map = { | |
| str(topic.chunk_id): {"topic": topic.topic, "tags": topic.tags} | |
| for topic in chunk_topics | |
| } | |
| # Update topics information in notes | |
| for note in notes_list: | |
| for chunk in note.chunks: | |
| if str(chunk.id) in topic_map: | |
| chunk.topic = topic_map[str(chunk.id)]["topic"] | |
| chunk.tags = topic_map[str(chunk.id)]["tags"] | |
| # Usage elsewhere: | |
| # from lpm_kernel.kernel import chunk_service | |