feat(types): Embedding-Abschnitt der Server-Config (Provider, Failover-Gruppen, goldener Pfad) + Status-Payloads

index.d.ts: EmbeddingProviderConfig/EmbeddingGroupConfig (onSingleQuery, onBulkWrite,
health), EmbeddingConfig für config.server().embedding (Roh-JSON von config.Server.
Embedding) sowie die Status-Payloads von GET …/admin/embedding/status (Projekt- und
Server-Scope, Zustände live|degraded|quarantined|offline, Breaker closed|open|half-open).
VectorConfig.provider dokumentiert jetzt, dass dort auch ein Gruppenname stehen darf.

schemas/config/embedding.schema.json: validierbares Schema des Server-Abschnitts
(Enums für Policies/Distributionen, Go-Duration-Muster, Pflichtfelder, keine
erfundenen Properties); Beispiel examples/server/embedding.yml, per
scripts/validate-schemas.mjs mitgeprüft (npm test: 5 YAML gegen 17 Schemas).

Quelle der Wahrheit: internal/config/server.go + internal/config/embedding_group.go
(tibi-server). Typecheck: tsc --noEmit --strict über index.d.ts grün.
This commit is contained in:
apairon committed 2026-10-17 14:00:53 +00:00
1 parent 4c55f82446
commit 5a45c4dd3f
4 files changed
+427

No files matched your search

+46
View File
@@ -0,0 +1,46 @@
# Beispiel für den embedding-Abschnitt der Server-config.yml
# (tibi-server, server.embedding) — validiert gegen schemas/config/embedding.schema.json.
providers:
- name: bge-m3-external
type: flagembedding
model: BAAI/bge-m3
dimensions: 1024
baseURL: https://embed.intern/embed
timeoutPerAttempt: 8s
slowThreshold: 1500ms
- name: bge-m3-local
type: native
model: BAAI/bge-m3
dimensions: 1024
modelPath: /models/bge-m3
timeoutPerAttempt: 60s
groups:
- name: bge-m3-main
description: Bevorzugt extern, sonst lokal, kehrt automatisch zurück.
members:
- bge-m3-external
- bge-m3-local
onSingleQuery:
policy: prefer-in-order
preferredOrder:
- bge-m3-external
- bge-m3-local
timeoutPerAttempt: 8s
timeoutTotal: 25s
autoFailback: true
retryAttempts: 1
retryBackoff: 200ms
retryBackoffMax: 2s
onBulkWrite:
distribution: lowest-latency
maxConcurrentTotal: 6
maxConcurrentPerEndpoint: 2
timeoutPerAttempt: 15s
timeoutTotal: 120s
health:
checkInterval: 30s
checkTimeout: 3s
unhealthyAfterFailures: 3
healthyAfterSuccesses: 2
cooldownAfterUnhealthy: 60s
goldenPath: testdata/embedding-golden