diff --git a/astrbot/dashboard/schemas.py b/astrbot/dashboard/schemas.py index e6d939fc8..773ed6cd8 100644 --- a/astrbot/dashboard/schemas.py +++ b/astrbot/dashboard/schemas.py @@ -418,10 +418,10 @@ class ProviderSourceRequest(OpenModel): self.config or self.model_dump(exclude={"source_id", "config"}, exclude_none=True) ) - if fallback_id: - config["id"] = fallback_id - elif self.id and "id" not in config: - config["id"] = self.id + if not config.get("id"): + # 不覆盖已有 id;self.id(显式指定)优先于 fallback_id(旧值兜底) + if fallback := (self.id or fallback_id): + config["id"] = fallback return config