Funk-lab/stt/server/stt_server/config.py
ALI YESILKAYA 1986ab56d8
feat(stt): mémoire long-terme sémantique via Qdrant (5b) (#10)
Serveur : longterm.py — collection Qdrant stt-memory (embeddings Qwen3 gpu-01, dim auto,
Cosine), recall top-k injecté au prompt, remember des tours user. Tout dégrade proprement
si Qdrant/embeddings injoignables (la mémoire court-terme tient). Env STT_MEMORY_LONGTERM,
STT_QDRANT_URL, STT_EMBED_URL, STT_MEMORY_TOPK.

Testé en process : dégradation OK (Qdrant down → mem=0, pas de crash, court-terme tient).
Qdrant réparé le 17/06 (5c). Recherche sémantique réelle à valider sur cluster.


Claude-Session: https://claude.ai/code/session_013FmcxGsyXZXogiAHQLjnZT

Co-authored-by: Claude <noreply@anthropic.com>
2026-06-17 16:52:33 +02:00

45 lines
1.9 KiB
Python

"""Configuration du STT-server — via variables d'environnement (12-factor / k8s)."""
from __future__ import annotations
import os
class Settings:
# LiteLLM (s01) — joint en IP directe depuis le cluster (cf. open-webui).
litellm_url: str = os.getenv(
"STT_LITELLM_URL", "http://192.168.10.1:4000/v1/chat/completions"
)
litellm_key: str = os.getenv("STT_LITELLM_KEY", "lm-studio")
# Modèle par défaut + alias LiteLLM autorisés (le client peut en demander un par requête)
model: str = os.getenv("STT_MODEL", "hermes-default")
allowed_models: list[str] = [
m.strip()
for m in os.getenv(
"STT_ALLOWED_MODELS",
"hermes-default,qwen3-8b,claude-sonnet-4-6,claude-opus-4-7",
).split(",")
if m.strip()
]
system_prompt: str = os.getenv(
"STT_SYSTEM_PROMPT",
"Tu es Hermes, l'assistant vocal du homelab Funk. "
"Réponds toujours en français, de façon concise (2-3 phrases maximum), "
"sans markdown ni listes.",
)
max_tokens: int = int(os.getenv("STT_MAX_TOKENS", "200"))
temperature: float = float(os.getenv("STT_TEMPERATURE", "0.7"))
request_timeout: float = float(os.getenv("STT_REQUEST_TIMEOUT", "60"))
# Mémoire long-terme (Qdrant) — dégrade proprement si Qdrant/embeddings injoignables
memory_longterm: bool = os.getenv("STT_MEMORY_LONGTERM", "true").lower() == "true"
qdrant_url: str = os.getenv("STT_QDRANT_URL", "http://192.168.10.1:6333")
qdrant_collection: str = os.getenv("STT_QDRANT_COLLECTION", "stt-memory")
# Embeddings : Qwen3 sur llama-server gpu-01 (comme le RAG). dim 4096.
embed_url: str = os.getenv("STT_EMBED_URL", "http://192.168.10.20:1234/v1/embeddings")
embed_model: str = os.getenv("STT_EMBED_MODEL", "qwen3-8b")
memory_top_k: int = int(os.getenv("STT_MEMORY_TOPK", "3"))
settings = Settings()