From 90a3c27a24aa21110303704be16325c7c0bfdcbd Mon Sep 17 00:00:00 2001 From: Logan Cusano Date: Tue, 27 Oct 2026 20:29:10 -0400 Subject: [PATCH] Docs: document the STT provider, extraction and alert-gate env vars (server-26#297, server-26#298, server-26#300) Co-Authored-By: Claude Opus 5.5 --- drb-c2-core/.env.example | 43 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/drb-c2-core/.env.example b/drb-c2-core/.env.example index 80f3996..352dd28 100644 --- a/drb-c2-core/.env.example +++ b/drb-c2-core/.env.example @@ -36,8 +36,49 @@ NWS_USER_AGENT=DRB (you@example.com) # Comma list of NWS state/marine area codes served NWS_AREA=NY -# OpenAI — for transcription (Whisper), intelligence extraction, embeddings, and summaries +# OpenAI — transcription (whisper-1, and the STT fallback), extraction, embeddings OPENAI_API_KEY= +# OpenAI transcription model: whisper-1 | gpt-4o-mini-transcribe | gpt-4o-transcribe +STT_MODEL=whisper-1 + +# STT provider (server-26#297). Any OpenAI-compatible /audio/transcriptions API. +# auto (default): groq if GROQ_API_KEY is set, compat if STT_BASE_URL is set, +# otherwise openai — so leaving these blank keeps today's OpenAI behaviour. +STT_PROVIDER=auto +# Groq: whisper-large-v3-turbo, $0.04/audio-hour (min 10s billed per request). +GROQ_API_KEY= +# Model on the non-OpenAI provider. +STT_COMPAT_MODEL=whisper-large-v3-turbo +# Override the endpoint/key (blank = provider default: https://api.groq.com/openai/v1 +# and GROQ_API_KEY). Set both for a self-hosted OpenAI-compatible server. +STT_BASE_URL= +STT_API_KEY= +# Retry on OpenAI STT_MODEL when the provider above fails (needs OPENAI_API_KEY). +STT_FALLBACK_TO_OPENAI=true +# Area places / local names / vocabulary in the STT prompt (non-OpenAI provider only). +STT_VOCAB_PROMPT_ENABLED=true +# Estimated prompt token budget (Whisper keeps only the last 224). +STT_PROMPT_MAX_TOKENS=200 + +# Scene extraction / embeddings models (server-26#298) +EXTRACTION_MODEL=gpt-4o-mini +EMBEDDING_MODEL=text-embedding-3-small +# Skip correction + extraction for radio housekeeping (roll call, bare 10-4s). +# Default false = shadow mode (verdict recorded, nothing skipped). Turn on only +# after a shadow window shows no real events flagged (server-26#127). +CHATTER_GATE_ENABLED=false +# In-process geocode cache (Maps terms allow caching lat/lng <= 30 days) +GEOCODE_CACHE_TTL_SECONDS=86400 +GEOCODE_CACHE_NEGATIVE_TTL_SECONDS=3600 +GEOCODE_CACHE_MAX_ENTRIES=5000 + +# Push-alert confidence gate (server-26#300). Below the floor -> held (admin-only +# GET /alerts/held). High-severity matches also need N calls on the incident or +# the high confidence bar. +ALERT_MIN_CONFIDENCE=0.5 +ALERT_HIGH_SEVERITY_MIN_CONFIDENCE=0.85 +ALERT_CORROBORATION_MIN_CALLS=2 +ALERT_STT_REFERENCE=0.3 SUMMARY_INTERVAL_MINUTES=15 CORRELATION_WINDOW_HOURS=4 EMBEDDING_SIMILARITY_THRESHOLD=0.82