Kheem Dharmani
Initial commit: Agentic Multiwriter
32f259e
import os
from dataclasses import dataclass
@dataclass
class Settings:
"""Global configuration for the agentic multiwriter system."""
# ollama | openai | hf_endpoint
llm_provider: str = os.getenv("AMW_LLM_PROVIDER", "ollama").lower()
llm_model: str = os.getenv("AMW_LLM_MODEL", "llama3")
temperature: float = float(os.getenv("AMW_TEMPERATURE", "0.4"))
max_search_results: int = int(os.getenv("AMW_MAX_SEARCH_RESULTS", "8"))
def validate(self) -> None:
allowed = {"ollama", "openai", "hf_endpoint"}
if self.llm_provider not in allowed:
raise ValueError(
f"Unsupported LLM provider '{self.llm_provider}'. "
f"Use one of: {', '.join(sorted(allowed))}."
)
if self.llm_provider == "openai" and not os.getenv("OPENAI_API_KEY"):
raise ValueError(
"OPENAI_API_KEY is required when AMW_LLM_PROVIDER is 'openai'."
)
if self.llm_provider == "hf_endpoint" and not os.getenv(
"HUGGINGFACEHUB_API_TOKEN"
):
raise ValueError(
"HUGGINGFACEHUB_API_TOKEN is required when "
"AMW_LLM_PROVIDER is 'hf_endpoint'."
)
settings = Settings()