refactor: 专员目录收敛为 6 个,重整 AI 路由与系统管理页
一次性提交当天全部改动(110 个文件)。 **未按 TOP_CODING_RULES.md G14.5「一次提交只装一件事」拆分** —— 用户明确要求 单一提交,此处如实记录,不静默忽略该冲突。 提交前验证:后端 go build / go vet / go test ./... 全绿,前端 npm run build exit 0,/api/health 与管理员 login 均返回 200。 - 专员目录收敛为 6 个:下线 knowledge-operations / process-coordination / presentation-briefing / report-generation 四个专员(前后端 manifest 与 seed 同步删除),新增 general-assistant。专员的归属关系(拥有哪些技能定义、 哪些目录项、提示词与绑定从哪来)改由 specialists/core 的 ownership.go、 prompt_provider.go、binding_provider.go 统一提供,seed 与 admin_handlers 随之内置化,卸载路径统一走 uninstall.go。 - 技能:补齐 text-to-speech 的前端 manifest(后端包在 HEAD 已存在), skillcore/ownership.go 提供与专员对称的归属查询。 - AI 路由:ai_config.json 由 OpenRouter/Ollama 切到 LMUAI / SiliconFlow / llama.cpp 本地路由,ai_secrets.example.json 与部署 env 样例同步新增 SILICONFLOW_API_KEY。 - 系统管理页重整:新增 AiAdminPage、OrganizationManagementPage,删除 AdminOverviewPage、CompanyConfigPage,SystemConfigPage 精简,nav / router / config/workbench.js 同步调整。依 G05.5,开发阶段直接收口到新结构,不留旧路由。 - 新增 internal/objectrefs:统一统计对象(专员 / 技能 / xapp)的运行时引用 (被多少 xapp、项目、任务引用),供管理页做删除前的影响面判断。 - 公众号创作专员:新增 OfficialAccountSpecialistPanel,workflow 与投递链路调整。 - XApp:考试 / 培训 Shell 扩展,XAppDirectoryPage 与 xappDefinition 同步。 - 文档:新增 GW01–GW05 工作台演进系列与 AR12 对话驱动与结构化交互架构; 同步 AR05 / SY17 / SY23 / SY25 / PL04;TOP_CODING_RULES.md 增补 G05.5。 Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -1 +1,172 @@
|
||||
{"agent_routes": {"embed_gen": "embed_route_openrouter_text_v3", "image_gen": "image_route_openrouter_gpt_image_2", "path_coach": "chat_route_openrouter_deepseek_v4_flash", "title_gen": "chat_route_openrouter_deepseek_v4_flash"}, "chat_routes": {"chat_route_ollama_qwen": {"description": "本地 Ollama Qwen2.5:7b", "endpoint": "/chat/completions", "max_tokens": 2048, "model": "qwen2.5:7b", "provider": "ollama", "short_model_name": "Qwen", "short_route_name": "本地", "temperature": 0.7}, "chat_route_ollama_qwen_fast": {"description": "本地快速对话 (Ollama Qwen2.5:7b 轻量)", "endpoint": "/chat/completions", "max_tokens": 512, "model": "qwen2.5:7b", "provider": "ollama", "short_model_name": "Qwen", "short_route_name": "快聊", "temperature": 0.3}, "chat_route_openrouter_deepseek_v3": {"description": "DeepSeek V3.2 (OpenRouter)", "endpoint": "/chat/completions", "max_tokens": 4096, "model": "deepseek/deepseek-v3.2", "provider": "openrouter", "short_model_name": "DSV3", "short_route_name": "均衡", "temperature": 0.6}, "chat_route_openrouter_deepseek_v4_flash": {"description": "DeepSeek V4 Flash (OpenRouter)", "endpoint": "/chat/completions", "max_tokens": 4096, "model": "deepseek/deepseek-v4-flash", "provider": "openrouter", "short_model_name": "DS4F", "short_route_name": "默认", "temperature": 0.7}, "chat_route_openrouter_gpt_5": {"description": "GPT 5.4 (OpenRouter)", "endpoint": "/chat/completions", "max_tokens": 8192, "model": "openai/gpt-5.4", "provider": "openrouter", "short_model_name": "GPT5", "short_route_name": "全能", "temperature": 0.7}, "chat_route_openrouter_grok_4": {"description": "Grok 4.20 (OpenRouter)", "endpoint": "/chat/completions", "max_tokens": 4096, "model": "x-ai/grok-4.20", "provider": "openrouter", "short_model_name": "Grok4", "short_route_name": "推理", "temperature": 0.6}}, "default_embed_route": "embed_route_openrouter_text_v3", "default_route": "chat_route_openrouter_deepseek_v4_flash", "description": "eai_agentplatform AI 路由配置 — 按场景分类定义多条路由,支持 provider/模型切换", "embed_routes": {"embed_route_ollama_bge_m3": {"description": "本地 Ollama bge-m3", "endpoint": "/embeddings", "model": "bge-m3", "provider": "ollama", "short_model_name": "BGE", "short_route_name": "本地"}, "embed_route_openrouter_text_v3": {"description": "OpenAI text-embedding-3-small (OpenRouter)", "endpoint": "/embeddings", "model": "openai/text-embedding-3-small", "provider": "openrouter", "short_model_name": "Emb3", "short_route_name": "默认"}}, "fallback_routes": {"chat_route_openrouter_deepseek_v3": ["chat_route_openrouter_grok_4", "chat_route_ollama_qwen"], "chat_route_openrouter_deepseek_v4_flash": ["chat_route_openrouter_deepseek_v3", "chat_route_openrouter_grok_4", "chat_route_ollama_qwen"], "chat_route_openrouter_grok_4": ["chat_route_ollama_qwen"], "embed_route_ollama_bge_m3": ["embed_route_openrouter_text_v3"], "embed_route_openrouter_text_v3": ["embed_route_ollama_bge_m3"]}, "image_routes": {"image_route_ollama_llava": {"description": "本地 Ollama LLaVA", "endpoint": "/chat/completions", "max_tokens": 2048, "model": "llava", "provider": "ollama", "short_model_name": "LLaVA", "short_route_name": "本地", "temperature": 0.7}, "image_route_openrouter_flux": {"description": "FLUX 1.1 Pro (OpenRouter)", "endpoint": "/images/generations", "max_tokens": 1024, "model": "black-forest-labs/flux-1.1-pro", "provider": "openrouter", "short_model_name": "FLUX", "short_route_name": "绘图", "temperature": 1}, "image_route_openrouter_gpt_image_2": {"description": "GPT 5.4 Image 2 (OpenRouter)", "endpoint": "/images/generations", "max_tokens": 4096, "model": "openai/gpt-5.4-image-2", "provider": "openrouter", "short_model_name": "G图2", "short_route_name": "默认", "temperature": 1}}, "version": "2.1.0"}
|
||||
{
|
||||
"agent_routes": {
|
||||
"embed_gen": "embed_route_openrouter_text_v3",
|
||||
"image_gen": "image_route_openrouter_gpt_image_2",
|
||||
"path_coach": "chat_route_lmuai_deepseek_flash",
|
||||
"title_gen": "chat_route_lmuai_deepseek_flash"
|
||||
},
|
||||
"chat_routes": {
|
||||
"chat_route_lmuai_deepseek_flash": {
|
||||
"description": "LMUAI / DeepSeek Flash",
|
||||
"endpoint": "/chat/completions",
|
||||
"max_tokens": 4096,
|
||||
"model": "deepseek-flash",
|
||||
"provider": "lmuai",
|
||||
"short_model_name": "DeepSeek Flash",
|
||||
"short_route_name": "LMUAI",
|
||||
"temperature": 0.7
|
||||
},
|
||||
"chat_route_siliconflow_deepseek_v4_flash": {
|
||||
"description": "SiliconFlow / DeepSeek V4 Flash",
|
||||
"endpoint": "/chat/completions",
|
||||
"max_tokens": 4096,
|
||||
"model": "deepseek-ai/DeepSeek-V4-Flash",
|
||||
"provider": "siliconflow",
|
||||
"short_model_name": "DeepSeek V4 Flash",
|
||||
"short_route_name": "SiliconFlow",
|
||||
"temperature": 0.7
|
||||
},
|
||||
"chat_route_ollama_qwen": {
|
||||
"description": "本地对话 · llama.cpp / Qwen3.5 4B",
|
||||
"endpoint": "/chat/completions",
|
||||
"max_tokens": 2048,
|
||||
"model": "Qwen3.5-4B-Q4_K_M.gguf",
|
||||
"provider": "llamacpp",
|
||||
"short_model_name": "Qwen3.5 4B",
|
||||
"short_route_name": "本地对话",
|
||||
"temperature": 0.7
|
||||
},
|
||||
"chat_route_ollama_qwen_fast": {
|
||||
"description": "本地快聊 · llama.cpp / Qwen3.5 4B",
|
||||
"endpoint": "/chat/completions",
|
||||
"max_tokens": 512,
|
||||
"model": "Qwen3.5-4B-Q4_K_M.gguf",
|
||||
"provider": "llamacpp",
|
||||
"short_model_name": "Qwen3.5 4B",
|
||||
"short_route_name": "本地快聊",
|
||||
"temperature": 0.3
|
||||
},
|
||||
"chat_route_openrouter_deepseek_v3": {
|
||||
"description": "OpenRouter / DeepSeek V3.2",
|
||||
"endpoint": "/chat/completions",
|
||||
"max_tokens": 4096,
|
||||
"model": "deepseek/deepseek-v3.2",
|
||||
"provider": "openrouter",
|
||||
"short_model_name": "DeepSeek V3.2",
|
||||
"short_route_name": "OpenRouter",
|
||||
"temperature": 0.6
|
||||
},
|
||||
"chat_route_openrouter_deepseek_v4_flash": {
|
||||
"description": "OpenRouter / DeepSeek V4 Flash 0731",
|
||||
"endpoint": "/chat/completions",
|
||||
"max_tokens": 4096,
|
||||
"model": "deepseek/deepseek-v4-flash-0731",
|
||||
"provider": "openrouter",
|
||||
"short_model_name": "DeepSeek V4 Flash 0731",
|
||||
"short_route_name": "OpenRouter",
|
||||
"temperature": 0.7
|
||||
},
|
||||
"chat_route_openrouter_gpt_5": {
|
||||
"description": "OpenRouter / GPT 5.4",
|
||||
"endpoint": "/chat/completions",
|
||||
"max_tokens": 8192,
|
||||
"model": "openai/gpt-5.4",
|
||||
"provider": "openrouter",
|
||||
"short_model_name": "GPT 5.4",
|
||||
"short_route_name": "OpenRouter",
|
||||
"temperature": 0.7
|
||||
},
|
||||
"chat_route_openrouter_grok_4": {
|
||||
"description": "OpenRouter / Grok 4.20",
|
||||
"endpoint": "/chat/completions",
|
||||
"max_tokens": 4096,
|
||||
"model": "x-ai/grok-4.20",
|
||||
"provider": "openrouter",
|
||||
"short_model_name": "Grok 4.20",
|
||||
"short_route_name": "OpenRouter",
|
||||
"temperature": 0.6
|
||||
}
|
||||
},
|
||||
"default_embed_route": "embed_route_openrouter_text_v3",
|
||||
"default_route": "chat_route_lmuai_deepseek_flash",
|
||||
"description": "eai_agentplatform AI 路由配置 — 按场景分类定义多条路由,支持 provider/模型切换",
|
||||
"embed_routes": {
|
||||
"embed_route_ollama_bge_m3": {
|
||||
"description": "本地向量 · Ollama / BGE-M3",
|
||||
"endpoint": "/embeddings",
|
||||
"model": "bge-m3",
|
||||
"provider": "ollama",
|
||||
"short_model_name": "BGE-M3",
|
||||
"short_route_name": "本地向量"
|
||||
},
|
||||
"embed_route_openrouter_text_v3": {
|
||||
"description": "OpenRouter / text-embedding-3-small",
|
||||
"endpoint": "/embeddings",
|
||||
"model": "openai/text-embedding-3-small",
|
||||
"provider": "openrouter",
|
||||
"short_model_name": "text-embedding-3-small",
|
||||
"short_route_name": "OpenRouter"
|
||||
}
|
||||
},
|
||||
"fallback_routes": {
|
||||
"chat_route_lmuai_deepseek_flash": [
|
||||
"chat_route_ollama_qwen_fast",
|
||||
"chat_route_ollama_qwen"
|
||||
],
|
||||
"chat_route_siliconflow_deepseek_v4_flash": [
|
||||
"chat_route_ollama_qwen_fast",
|
||||
"chat_route_ollama_qwen"
|
||||
],
|
||||
"chat_route_openrouter_deepseek_v3": [
|
||||
"chat_route_openrouter_grok_4",
|
||||
"chat_route_ollama_qwen"
|
||||
],
|
||||
"chat_route_openrouter_deepseek_v4_flash": [
|
||||
"chat_route_openrouter_deepseek_v3",
|
||||
"chat_route_openrouter_grok_4",
|
||||
"chat_route_ollama_qwen"
|
||||
],
|
||||
"chat_route_openrouter_grok_4": [
|
||||
"chat_route_ollama_qwen"
|
||||
],
|
||||
"embed_route_ollama_bge_m3": [
|
||||
"embed_route_openrouter_text_v3"
|
||||
],
|
||||
"embed_route_openrouter_text_v3": [
|
||||
"embed_route_ollama_bge_m3"
|
||||
]
|
||||
},
|
||||
"image_routes": {
|
||||
"image_route_ollama_llava": {
|
||||
"description": "本地图像 · Ollama / LLaVA",
|
||||
"endpoint": "/chat/completions",
|
||||
"max_tokens": 2048,
|
||||
"model": "llava",
|
||||
"provider": "ollama",
|
||||
"short_model_name": "LLaVA",
|
||||
"short_route_name": "本地图像",
|
||||
"temperature": 0.7
|
||||
},
|
||||
"image_route_openrouter_flux": {
|
||||
"description": "OpenRouter / FLUX 1.1 Pro",
|
||||
"endpoint": "/images/generations",
|
||||
"max_tokens": 1024,
|
||||
"model": "black-forest-labs/flux-1.1-pro",
|
||||
"provider": "openrouter",
|
||||
"short_model_name": "FLUX 1.1 Pro",
|
||||
"short_route_name": "OpenRouter",
|
||||
"temperature": 1
|
||||
},
|
||||
"image_route_openrouter_gpt_image_2": {
|
||||
"description": "OpenRouter / GPT 5.4 Image 2",
|
||||
"endpoint": "/images/generations",
|
||||
"max_tokens": 4096,
|
||||
"model": "openai/gpt-5.4-image-2",
|
||||
"provider": "openrouter",
|
||||
"short_model_name": "GPT 5.4 Image 2",
|
||||
"short_route_name": "OpenRouter",
|
||||
"temperature": 1
|
||||
}
|
||||
},
|
||||
"version": "2.1.0"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user