feat(brain): Compacting fuer ARIAs lokalen Modus + Erklaerung in der Info-Box
Lokal bekam ARIA starr die letzten 8 Nachrichten — alles davor war fuer das lokale Modell weg. Neu (local_compact.py): - Fenster nach Tokens: so viele der letzten Nachrichten, wie in ~75 % des Kontextfensters der Karte passen (Systemprompt + Antwort abgezogen), max. LOCAL_MAX_TURNS (12). Kontextfenster vom Cluster (Bridge /internal/llm-models). - Was herausfaellt, fasst das lokale Modell im Hintergrund zum laufenden Notizzettel zusammen (pro Projekt, /data/local_summaries.json); er geht als "Bisheriger Verlauf" in den lokalen Systemprompt. Destillat ins Gedaechtnis laeuft unveraendert weiter. Reset des Gespraechs loescht auch den Zettel. - Bridge/local_llm: optionale laengere Frist fuer Hintergrund-Aufrufe (Compacting 180 s statt der 30 s fuer schnelle Antworten). Diagnostic: Info-Box zum Kontext erklaert Kuerzen / Compacting / Gedaechtnis und was ARIA davon nutzt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -30,7 +30,7 @@ LOCAL_LLM_HTTP_TIMEOUT_SEC = float(os.environ.get("LOCAL_LLM_HTTP_TIMEOUT_SEC",
|
||||
|
||||
def local_llm_chat(messages: list, *, max_tokens: int = 512,
|
||||
temperature: float = 0.7, stop=None, tools=None,
|
||||
model=None) -> dict:
|
||||
model=None, timeout=None) -> dict:
|
||||
"""Ein Chat-Call ans lokale LLM. messages = [{role, content}, ...].
|
||||
model (B0.5): welches Modell llama-swap laden soll. tools (B1b): optionale
|
||||
OpenAI-Tool-Defs; das Ergebnis kann dann result['tool_calls'] enthalten.
|
||||
@@ -44,13 +44,15 @@ def local_llm_chat(messages: list, *, max_tokens: int = 512,
|
||||
req["tools"] = tools
|
||||
if model:
|
||||
req["model"] = model
|
||||
if timeout:
|
||||
req["timeout"] = timeout # Bridge-seitige Frist (sonst 30 s)
|
||||
try:
|
||||
body = json.dumps(req).encode("utf-8")
|
||||
http_req = urllib.request.Request(
|
||||
f"{BRIDGE_URL}/internal/local-llm", data=body, method="POST",
|
||||
headers={"Content-Type": "application/json"},
|
||||
)
|
||||
with urllib.request.urlopen(http_req, timeout=LOCAL_LLM_HTTP_TIMEOUT_SEC) as resp:
|
||||
with urllib.request.urlopen(http_req, timeout=(timeout + 5) if timeout else LOCAL_LLM_HTTP_TIMEOUT_SEC) as resp:
|
||||
result = json.loads(resp.read().decode("utf-8", "ignore"))
|
||||
except urllib.error.HTTPError as exc:
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user