neu
This commit is contained in:
@@ -50,9 +50,9 @@ def create_app(config: Optional[Dict[str, Any]] = None) -> FastAPI:
|
||||
pass
|
||||
|
||||
try:
|
||||
from agent_api.router import agent_router
|
||||
import agent_api
|
||||
|
||||
app.include_router(agent_router, prefix="/api")
|
||||
app.include_router(agent_api.agent_router, prefix="/api")
|
||||
except Exception:
|
||||
# Agenten-API ist optional und wird bei fehlender Implementierung ignoriert
|
||||
pass
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
# Agenten-API Modulkonfiguration (Standardwerte)
|
||||
# Wird vom optionalen Modul geladen; Anpassungen erfolgen projektspezifisch.
|
||||
|
||||
metadata:
|
||||
name: "agent_api"
|
||||
description: "Konfiguration für die optionale Agenten-API-Erweiterung."
|
||||
|
||||
execution:
|
||||
mode: "async" # Optionen: "async" oder "sync"
|
||||
response_timeout_seconds: 30 # Maximale Wartezeit für synchrone Antworten (Sekunden)
|
||||
queue_ttl_seconds: 300 # Lebensdauer eines Tasks in Sekunden
|
||||
heartbeat_interval_seconds: 10 # Interval für Heartbeats der Hintergrund-Worker (Sekunden)
|
||||
|
||||
llm:
|
||||
provider: "local_stub" # Setze z. B. "openai" wenn externe APIs verwendet werden
|
||||
model: "local-agent"
|
||||
api_base_url: null # Externe Basis-URL, z. B. https://api.openai.com/v1
|
||||
api_key: null # Wird durch die Umgebungsvariable AGENT_API_LLM_KEY überschrieben
|
||||
request_timeout_seconds: 15 # Request-Timeout für den LLM-Client in Sekunden
|
||||
@@ -116,7 +116,33 @@ def init_logging(settings: Settings, app_config: Optional[Dict[str, Any]] = None
|
||||
logging.getLogger(__name__).exception(
|
||||
"Fehler bei Initialisierung des internen SQLite-Loggings; Handler wird nicht aktiviert."
|
||||
)
|
||||
|
||||
|
||||
# Optionale Integration: externes DB-Logging (01_Modulerweiterungen)
|
||||
try:
|
||||
external_cfg = ((app_config or {}).get("logging_external") or {})
|
||||
except Exception:
|
||||
external_cfg = {}
|
||||
|
||||
if isinstance(external_cfg, dict) and external_cfg.get("enabled"):
|
||||
try:
|
||||
import importlib
|
||||
ext_mod = importlib.import_module("logging_external")
|
||||
except Exception:
|
||||
logging.getLogger(__name__).warning(
|
||||
"logging_external Modul nicht importierbar; externer DB-Handler wird nicht aktiviert."
|
||||
)
|
||||
else:
|
||||
try:
|
||||
# ext_mod.init akzeptiert entweder connection_url ODER config-Dict
|
||||
# Wir übergeben das gesamte Config-Dict und lassen das Modul die URL bauen.
|
||||
ext_mod.init(config=external_cfg)
|
||||
ext_handler = ext_mod.get_handler(level)
|
||||
root.addHandler(ext_handler)
|
||||
logging.getLogger(__name__).info("Externer DB-Log-Handler aktiviert.")
|
||||
except Exception:
|
||||
logging.getLogger(__name__).exception(
|
||||
"Fehler bei Initialisierung des externen DB-Loggings; Handler wird nicht aktiviert."
|
||||
)
|
||||
|
||||
def _reset_logger_handlers(logger: logging.Logger) -> None:
|
||||
"""Entfernt alle existierenden Handler vom Logger."""
|
||||
|
||||
Reference in New Issue
Block a user