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

@@ -2,8 +2,6 @@
enable = true
# 业务场景优先:聊天插件只关心 chat.main由全局 llm.scenes 决定具体后端。
scene = "chat.main"
# 兼容字段保留:旧版本仍可读取 backend新版本会优先走 scene 路由。
backend = "dify_workflow_chat"
commands = ["聊天"]
command-tip = """

View File

@@ -98,25 +98,15 @@ class DifyPlugin(MessagePluginInterface):
self._commands = dify_config.get("commands", ["ai", "dify", "聊天", "AI"])
self.command_format = dify_config.get("command-tip", "聊天 请求内容")
self.enable = dify_config.get("enable", True)
raw_api_key = dify_config.get("api-key", "")
raw_base_url = dify_config.get("base-url", "")
self.price = dify_config.get("price", 0)
self.admin_ignore = dify_config.get("admin_ignore", False)
self.whitelist_ignore = dify_config.get("whitelist_ignore", False)
self.http_proxy = dify_config.get("http-proxy", "")
llm_config = dify_config.get("llm", {}) or {}
if not llm_config:
# 严格场景路由:插件初始化只传 scene不再拼接 backend 兼容字段。
llm_config = {
# 优先支持场景路由:后台改 scene 绑定即可切换供应商/模型。
"scene": dify_config.get("scene", ""),
"backend": dify_config.get("backend", ""),
"provider": "dify",
"mode": "workflow",
"api-key": raw_api_key,
"base-url": raw_base_url,
"endpoint": "workflows/run",
"response_mode": "blocking",
"request_timeout": 40,
}
self.llm_client = UnifiedLLMClient(llm_config)
self.api_key = self.llm_client.api_key