From d2eb1f4eba5d55608b63567284d73b6d0cf90d4d Mon Sep 17 00:00:00 2001 From: 1151280699 <1151280699@qq.com> Date: Tue, 2 Jun 2026 10:14:50 +0800 Subject: [PATCH] Restore compact model forwarding settings --- apps/src/app/settings/page.tsx | 63 ++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/apps/src/app/settings/page.tsx b/apps/src/app/settings/page.tsx index 702007ce7..73168b503 100644 --- a/apps/src/app/settings/page.tsx +++ b/apps/src/app/settings/page.tsx @@ -313,6 +313,10 @@ function AdminSettingsPage() { const [modelForwardRuleRowsDraft, setModelForwardRuleRowsDraft] = useState< ReturnType | null >(null); + const [ + compactModelForwardRuleRowsDraft, + setCompactModelForwardRuleRowsDraft, + ] = useState | null>(null); const [lastUpdateCheck, setLastUpdateCheck] = useState(null); const [updateDialogCheck, setUpdateDialogCheck] = @@ -404,6 +408,10 @@ function AdminSettingsPage() { modelForwardRuleRowsDraft ?? parseModelForwardRules(snapshot?.modelForwardRules || ""), ); + const compactModelForwardRuleRows = ensureModelForwardRuleRows( + compactModelForwardRuleRowsDraft ?? + parseModelForwardRules(snapshot?.compactModelForwardRules || ""), + ); usePageTransitionReady( "/settings/", !canAccessManagementRpc || Boolean(snapshot) || isSnapshotError, @@ -760,6 +768,37 @@ function AdminSettingsPage() { .then(() => setModelForwardRuleRowsDraft(null)) .catch(() => undefined); }; + const updateCompactModelForwardRuleRows = ( + updater: (rows: ReturnType) => ReturnType< + typeof parseModelForwardRules + >, + ) => { + const sourceRows = + compactModelForwardRuleRowsDraft ?? + parseModelForwardRules(snapshot?.compactModelForwardRules || ""); + setCompactModelForwardRuleRowsDraft( + updater(ensureModelForwardRuleRows(sourceRows)), + ); + }; + const commitCompactModelForwardRulesDraft = () => { + if (compactModelForwardRuleRowsDraft == null) return; + const nextSerialized = serializeModelForwardRules( + compactModelForwardRuleRowsDraft, + ); + if ( + nextSerialized.trim() === + (snapshot?.compactModelForwardRules || "").trim() + ) { + setCompactModelForwardRuleRowsDraft(null); + return; + } + void updateSettings + .mutateAsync({ + compactModelForwardRules: nextSerialized, + }) + .then(() => setCompactModelForwardRuleRowsDraft(null)) + .catch(() => undefined); + }; const transportInputValues = { sseKeepaliveIntervalMs: transportDraft.sseKeepaliveIntervalMs ?? @@ -1786,6 +1825,30 @@ function AdminSettingsPage() {

+
+ + + updateCompactModelForwardRuleRows((rows) => + ensureModelForwardRuleRows(updater(rows)), + ) + } + onCommit={commitCompactModelForwardRulesDraft} + /> +

+ {t( + "仅对 /v1/responses/compact 生效;命中后会在 compact 请求里优先改写模型。", + )} +

+
+