Kaynağa Gözat

config: add ollama embedding env vars and docs

Lukas Goldschmidt 1 ay önce
ebeveyn
işleme
47a3eaff68
3 değiştirilmiş dosya ile 14 ekleme ve 0 silme
  1. 6 0
      OUTLOOK.md
  2. 3 0
      README.md
  3. 5 0
      news_mcp/config.py

+ 6 - 0
OUTLOOK.md

@@ -371,6 +371,12 @@ Start simple:
 
 * embeddings / semantic similarity
 
+Planned runtime order:
+
+* when `NEWS_EMBEDDINGS_ENABLED=true`, try Ollama embeddings first
+* if Ollama fails, fall back to the existing heuristic cluster path
+* keep candidate pre-filtering cheap before any vector compare
+
 ---
 
 # ⚡ 6. Signal Quality Rules

+ 3 - 0
README.md

@@ -72,6 +72,9 @@ Key variables:
 - `NEWS_BACKGROUND_REFRESH_ENABLED` (default true)
 - `NEWS_CLUSTERS_TTL_HOURS`
 - `GROQ_ENRICH_OTHER_ONLY` (default false; set true for cost control)
+- `NEWS_EMBEDDINGS_ENABLED` (default false; enables Ollama embeddings for clustering when wired in)
+- `OLLAMA_BASE_URL` / `OLLAMA_URL` (default `http://127.0.0.1:11434`)
+- `OLLAMA_EMBEDDING_MODEL` (default `nomic-embed-text`)
 
 ## Live extraction smoke test
 

+ 5 - 0
news_mcp/config.py

@@ -33,6 +33,11 @@ NEWS_ENTITY_BLACKLIST = [x.strip().lower() for x in os.getenv("ENTITY_BLACKLIST"
 GROQ_ENRICH_OTHER_ONLY = os.getenv("GROQ_ENRICH_OTHER_ONLY", "false").lower() == "true"
 GROQ_MAX_CLUSTERS_PER_REFRESH = int(os.getenv("GROQ_MAX_CLUSTERS_PER_REFRESH", "20"))
 
+# Optional embeddings path (Ollama first when enabled, fallback otherwise).
+NEWS_EMBEDDINGS_ENABLED = os.getenv("NEWS_EMBEDDINGS_ENABLED", "false").lower() == "true"
+OLLAMA_BASE_URL = os.getenv("OLLAMA_BASE_URL", os.getenv("OLLAMA_URL", "http://127.0.0.1:11434"))
+OLLAMA_EMBEDDING_MODEL = os.getenv("OLLAMA_EMBEDDING_MODEL", "nomic-embed-text")
+
 NEWS_REFRESH_INTERVAL_SECONDS = int(os.getenv("NEWS_REFRESH_INTERVAL_SECONDS", "900"))
 NEWS_BACKGROUND_REFRESH_ENABLED = os.getenv("NEWS_BACKGROUND_REFRESH_ENABLED", "true").lower() == "true"
 NEWS_BACKGROUND_REFRESH_ON_START = os.getenv("NEWS_BACKGROUND_REFRESH_ON_START", "true").lower() == "true"