refactor: 移除LLM旧兼容入口并统一scene单路由

变更项:

1. LLMRegistry 仅保留 scene 入口,删除 backend_name/backend_ref/scene_ref 等兼容解析分支,未声明 scene 时仅保留直连配置。

2. Dify/GlobalNews/GameTask 插件初始化改为仅传 scene,不再拼接 backend/provider/url 等旧兼容字段。

3. 清理插件配置冗余:dify/global_news/game_task/douyu 的 config.toml 删除 backend 字段,统一由 scene 映射后端。

4. 后台 system API 调整为严格模式:插件依赖扫描仅采集 scene;scene 保存时必须绑定有效 backend。

5. 后台页面去除拓扑中的配置Backend冗余列,并新增前端校验,禁止提交空场景或未绑定后端。
This commit is contained in:
liuwei
2026-04-20 14:45:03 +08:00
parent 7b6bd19781
commit ef49588485
10 changed files with 31 additions and 83 deletions

View File

@@ -94,15 +94,10 @@ class LLMRegistry:
@classmethod
def resolve(cls, local_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
local = dict(local_config or {})
# 兼容说明:
# 1. 新链路优先支持 scene 字段,便于“业务场景 -> 后端”集中路由
# 2. 若未配置 scene再按旧逻辑读取 backend保持历史插件零改动可运行
scene_name = (
local.get("scene")
or local.get("scene_name")
or local.get("scene_ref")
or ""
)
# 严格模式说明:
# 1. 统一只认 scene 作为路由入口,避免 backend/backend_ref 等多入口并存
# 2. 若未声明 scene则视为“调用方直接给出完整连接参数”,原样返回 local
scene_name = local.get("scene") or ""
scene_name = str(scene_name).strip()
if scene_name:
merged = cls.resolve_by_scene(scene_name)
@@ -113,16 +108,4 @@ class LLMRegistry:
merged["scene"] = scene_name
return merged
backend_name = (
local.get("backend")
or local.get("backend_name")
or local.get("backend_ref")
or ""
)
if not backend_name:
return local
merged = cls.get_backend(str(backend_name).strip())
merged.update(local)
merged["backend"] = backend_name
return merged
return local