Spaces:
Sleeping
Sleeping
| 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) | |
| 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 |