secondme-api / lpm_kernel /kernel /note_service.py
Gemini
feat: add detailed logging
01d5a5d
# 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