docs: expand .env example to show max/large values; add SUMM_TIMEOUT and summarizer tunables\n\nfeat: summarizer improvements\n- readability extraction for articles\n- image links passed to model as vision inputs\n- configurable max groups/links/bytes and timeout\n- higher default ceilings; resilient fallback summary

This commit is contained in:
Thomas Cravey 2025-08-15 20:41:31 -05:00
parent 2954e85e7a
commit 9ecf4f4f4c
7 changed files with 296 additions and 53 deletions

View file

@ -28,16 +28,18 @@ type Config struct {
PushoverAPIToken string
// Summarizer / LLM
LLMProvider string
OpenAIAPIKey string
OpenAIBaseURL string
OpenAIModel string
OpenAIMaxTokens int
SummFollowLinks bool
SummLinkTimeout time.Duration
SummLinkMaxBytes int
SummGroupWindow time.Duration
SummMaxLinks int
LLMProvider string
OpenAIAPIKey string
OpenAIBaseURL string
OpenAIModel string
OpenAIMaxTokens int
SummFollowLinks bool
SummLinkTimeout time.Duration
SummLinkMaxBytes int
SummGroupWindow time.Duration
SummMaxLinks int
SummMaxGroups int
SummarizerTimeout time.Duration
// Digests
DigestCron string
@ -90,6 +92,8 @@ func FromEnv() Config {
cfg.SummLinkMaxBytes = getEnvInt("SUMM_LINK_MAX_BYTES", 262144)
cfg.SummGroupWindow = getEnvDuration("SUMM_GROUP_WINDOW", 90*time.Second)
cfg.SummMaxLinks = getEnvInt("SUMM_MAX_LINKS", 5)
cfg.SummMaxGroups = getEnvInt("SUMM_MAX_GROUPS", 0)
cfg.SummarizerTimeout = getEnvDuration("SUMM_TIMEOUT", 5*time.Minute)
cfg.DigestCron = getEnv("DIGEST_CRON", "0 */6 * * *")
cfg.DigestWindow = getEnvDuration("DIGEST_WINDOW", 6*time.Hour)