File size: 1,249 Bytes
1f725d8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import logging
from src.MultiRag.models.rag_model import State
from src.MultiRag.utils.ingestion_utils import get_documents
from utils.asyncHandler import asyncHandler
from src.MultiRag.llm.llm_loader import llm
from langchain_core.messages import SystemMessage, HumanMessage
from langchain_core.output_parsers import StrOutputParser
from src.MultiRag.constants import TOP_K_KEYWORDS
from keybert import KeyBERT

kw_model = KeyBERT()

doc = """
Deep learning uses neural networks with multiple layers.
CNNs are widely used for image recognition.
"""

keywords = kw_model.extract_keywords(doc, top_n=5)

@asyncHandler
async def content_summerizer(state: State):
    logging.info("Executing summarizer node...")
    
    if not state.get('summary'):
        logging.info("Summarizing content using LLM...")
        summary_content = await get_documents(state['docs_path'])
        summary_content=str(kw_model.extract_keywords(summary_content, top_n=TOP_K_KEYWORDS))
        if not summary_content.strip():
            logging.warning("No content found to summarize.")
            return {"summary": "No content available."}
        return {"summary": summary_content}
            
    logging.info("Summary already exists in state.")
    return state