Skip to content

Commit 29a5fb4

Browse files
committed
move summarizer modules to internals
1 parent da0aebb commit 29a5fb4

File tree

4 files changed

+48
-14
lines changed

4 files changed

+48
-14
lines changed

.env.template

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,6 @@ OTEL_COLLECTOR_ENDPOINT="http://localhost:4317"
6666

6767
## Scraper Settings
6868
SCRAPER_TYPE="mock" # Options: "mock", "httpx", "youtube_transcript"
69+
70+
## Summarizer Settings
71+
SUMMARIZER_TYPE="mock" # Options: "mock", "llm"

scripts/agent_operator.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
AgentState,
1919
Article,
2020
)
21-
from template_langgraph.agents.news_summarizer_agent.summarizers import (
22-
LlmSummarizer,
23-
)
2421
from template_langgraph.agents.task_decomposer_agent.agent import graph as task_decomposer_agent_graph
2522
from template_langgraph.internals.scrapers import get_scraper
23+
from template_langgraph.internals.summarizers import (
24+
get_summarizer,
25+
)
2626
from template_langgraph.loggers import get_logger
2727

2828
# Initialize the Typer application
@@ -157,7 +157,7 @@ def news_summarizer_agent(
157157
graph = NewsSummarizerAgent(
158158
notifier=MockNotifier(),
159159
scraper=get_scraper(),
160-
summarizer=LlmSummarizer(),
160+
summarizer=get_summarizer(),
161161
).create_graph()
162162
for event in graph.stream(
163163
input=AgentState(

template_langgraph/agents/news_summarizer_agent/agent.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@
88
StructuredArticle,
99
SummarizeWebContentState,
1010
)
11-
from template_langgraph.agents.news_summarizer_agent.summarizers import (
12-
BaseSummarizer,
13-
LlmSummarizer,
14-
MockSummarizer,
15-
)
1611
from template_langgraph.internals.scrapers import (
1712
BaseScraper,
1813
HttpxScraper,
1914
MockScraper,
2015
)
16+
from template_langgraph.internals.summarizers import (
17+
BaseSummarizer,
18+
LlmSummarizer,
19+
MockSummarizer,
20+
)
2121
from template_langgraph.llms.azure_openais import AzureOpenAiWrapper
2222
from template_langgraph.loggers import get_logger
2323

template_langgraph/agents/news_summarizer_agent/summarizers.py renamed to template_langgraph/internals/summarizers.py

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@
33
from __future__ import annotations
44

55
from abc import ABC, abstractmethod
6+
from enum import Enum
7+
from functools import lru_cache
68
from typing import Any
79

810
from langchain_core.language_models.chat_models import BaseChatModel
11+
from pydantic_settings import BaseSettings, SettingsConfigDict
912

1013
from template_langgraph.agents.news_summarizer_agent.models import StructuredArticle
1114
from template_langgraph.llms.azure_openais import AzureOpenAiWrapper
@@ -14,6 +17,29 @@
1417
logger = get_logger(__name__)
1518

1619

20+
class SummarizerType(str, Enum):
21+
"""Enumeration of available summarizer types."""
22+
23+
MOCK = "mock"
24+
LLM = "llm"
25+
26+
27+
class Settings(BaseSettings):
28+
summarizer_type: SummarizerType = SummarizerType.MOCK
29+
30+
model_config = SettingsConfigDict(
31+
env_file=".env",
32+
env_ignore_empty=True,
33+
extra="ignore",
34+
)
35+
36+
37+
@lru_cache
38+
def get_summarizer_settings() -> Settings:
39+
"""Get summarizer settings."""
40+
return Settings()
41+
42+
1743
class BaseSummarizer(ABC):
1844
"""Abstract base summarizer returning a StructuredArticle."""
1945

@@ -52,8 +78,13 @@ def summarize(self, prompt: str, content: str) -> StructuredArticle: # noqa: D4
5278
)
5379

5480

55-
__all__ = [
56-
"BaseSummarizer",
57-
"MockSummarizer",
58-
"LlmSummarizer",
59-
]
81+
def get_summarizer(settings: Settings = None) -> BaseSummarizer:
82+
if settings is None:
83+
settings = get_summarizer_settings()
84+
85+
if settings.summarizer_type == SummarizerType.MOCK:
86+
return MockSummarizer()
87+
elif settings.summarizer_type == SummarizerType.LLM:
88+
return LlmSummarizer()
89+
else:
90+
raise ValueError(f"Unknown summarizer type: {settings.summarizer_type}")

0 commit comments

Comments
 (0)