Spaces:
Runtime error
Runtime error
| """ | |
| Text content processor for summarization. | |
| """ | |
| from typing import List, Any, Callable | |
| from langchain_google_genai import ChatGoogleGenerativeAI | |
| from langchain_core.prompts import ChatPromptTemplate | |
| from langchain_core.output_parsers import StrOutputParser | |
| from src.config import MODEL_NAME | |
| from src.processors.prompts import TEXT_SUMMARY_PROMPT | |
| class TextProcessor: | |
| """Text content processor for summarization.""" | |
| def __init__(self, model_name: str = MODEL_NAME): | |
| """ | |
| Initialize the text processor. | |
| Args: | |
| model_name (str): Name of the LLM model to use | |
| """ | |
| self.llm = ChatGoogleGenerativeAI(model=model_name) | |
| self.chain = self._create_summary_chain() | |
| def _create_summary_chain(self) -> Callable: | |
| """ | |
| Create the text summarization chain. | |
| Returns: | |
| Callable: The text summarization chain | |
| """ | |
| return ( | |
| {'text': lambda x: x} | |
| | ChatPromptTemplate.from_template(TEXT_SUMMARY_PROMPT) | |
| | self.llm | |
| | StrOutputParser() | |
| ) | |
| def process(self, texts: List[Any]) -> List[str]: | |
| """ | |
| Process and summarize text elements. | |
| Args: | |
| texts (List[Any]): List of text elements to summarize | |
| Returns: | |
| List[str]: List of text summaries | |
| """ | |
| summaries = [] | |
| for text in texts: | |
| summary = self.chain.invoke(text.text) | |
| summaries.append(summary) | |
| return summaries |