Skip to main content
Glama
juanqui
by juanqui
summarizer_base.py2 kB
"""Base interface for document summarization services.""" import logging from abc import ABC, abstractmethod from dataclasses import dataclass from typing import Optional logger = logging.getLogger(__name__) @dataclass class DocumentSummary: """Container for document summarization results.""" title: str short_description: str long_description: str confidence: Optional[float] = None # Confidence score if available def __post_init__(self): """Validate summary fields.""" if not self.title or not self.title.strip(): raise ValueError("Title cannot be empty") if not self.short_description or not self.short_description.strip(): raise ValueError("Short description cannot be empty") if not self.long_description or not self.long_description.strip(): raise ValueError("Long description cannot be empty") class SummarizerService(ABC): """Abstract base class for document summarization services.""" @abstractmethod async def initialize(self) -> None: """Initialize the summarization service.""" pass @abstractmethod async def summarize_document(self, content: str, filename: str = "") -> DocumentSummary: """Summarize a document and generate title and descriptions. Args: content: The document content to summarize. filename: Optional filename for context. Returns: DocumentSummary with title, short description, and long description. """ pass @abstractmethod async def test_connection(self) -> bool: """Test if the summarization service is available. Returns: True if service is working, False otherwise. """ pass @abstractmethod def get_model_info(self) -> dict: """Get information about the current summarization model. Returns: Dictionary with model information. """ pass

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/juanqui/pdfkb-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server