deploy: Dockerfile, Compose pro Rolle, LiteLLM, Prometheus/Alertmanager, Canary-Prober, n8n-Workflows
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,7 @@ from dataclasses import dataclass
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
from .canary import CanaryProber
|
||||
from .classifier import EmbeddingClassifier
|
||||
from .embeddings import Embedder, LlamaCppReranker, OpenAIEmbedder, Reranker
|
||||
from .executor import Executor
|
||||
@@ -46,6 +47,7 @@ class System:
|
||||
maintenance: MaintenanceAgent
|
||||
healer: Healer
|
||||
metrics: Metrics
|
||||
prober: CanaryProber
|
||||
|
||||
|
||||
def _load_classifiers(directory: Path) -> dict[str, EmbeddingClassifier]:
|
||||
@@ -95,8 +97,8 @@ def build_system(
|
||||
runner = Runner(router, executor, verifier, library, store, metrics)
|
||||
|
||||
if jobs is None:
|
||||
jobs = WebhookJobRunner(settings.job_webhook_url) if settings.job_webhook_url and not settings.dry_run \
|
||||
else LoggingJobRunner()
|
||||
use_webhook = settings.job_webhook_url and not settings.dry_run
|
||||
jobs = WebhookJobRunner(settings.job_webhook_url, settings.webhook_auth) if use_webhook else LoggingJobRunner()
|
||||
lifecycle = Lifecycle(store, registry, jobs, life_cfg)
|
||||
|
||||
if infra is None and not settings.dry_run:
|
||||
@@ -106,7 +108,7 @@ def build_system(
|
||||
if settings.proxmox_url and settings.proxmox_token_id else None
|
||||
infra = CompositeInfra(portainer, proxmox)
|
||||
if notifier is None and settings.notify_webhook_url:
|
||||
notifier = WebhookNotifier(settings.notify_webhook_url)
|
||||
notifier = WebhookNotifier(settings.notify_webhook_url, settings.webhook_auth)
|
||||
|
||||
actions = ActionExecutor(store=store, registry=registry, library=library, lifecycle=lifecycle, infra=infra,
|
||||
notifier=notifier, dry_run=settings.dry_run,
|
||||
@@ -117,5 +119,7 @@ def build_system(
|
||||
policy=policy, actions=actions, lifecycle=lifecycle, config=maint_cfg,
|
||||
intent_mapper=intent_mapper, clock=clock, wallclock=wallclock)
|
||||
healer = Healer(healer_cfg, store, actions, policy, propose=maintenance.propose, clock=clock)
|
||||
prober = CanaryProber(registry, chat, embedder_for={settings.embed_model: embedder},
|
||||
metrics_registry=metrics.registry)
|
||||
return System(settings, store, registry, library, embedder, chat, router, executor, verifier, runner, policy,
|
||||
lifecycle, actions, maintenance, healer, metrics)
|
||||
lifecycle, actions, maintenance, healer, metrics, prober)
|
||||
|
||||
Reference in New Issue
Block a user