Files
happy-life-star/docs/superpowers/specs/2026-05-23-ai-config-test-fix-design.md
T
peanut 89fc42819d feat: AI 场景路由、ASR 服务及前后端全链路同步
- 新增 AI 场景路由控制器和管理接口
- 新增 ASR 语音识别服务及前后端集成
- 同步 AI Runtime 客户端到 Web/小程序/Life-Script
- 完善 AI 配置测试修复和管理后台路由配置
- 新增数据库迁移脚本

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 13:25:21 +08:00

3.9 KiB
Raw Blame History

author, created_at, purpose
author created_at purpose
华钟民 2026-05-23 修复 AI 配置管理接口测试功能,确保 Dify/Coze 等多提供商在 web-admin 后台能正常测试,全局确认前后端调用链路一致

AI 配置管理接口测试修复设计

1. 问题背景

在 web-admin 后台的"AI 配置管理"页面,流式测试 Dify 接口时报错: "message":"user_id is required in input form"

根因是存在两套 AI 配置系统:

  • 旧系统t_ai_config 表 + AiConfigList.vue(已被路由废弃但文件残留)
  • 新系统t_ai_provider / t_ai_endpoint_config / t_ai_scene_binding 三表 + AiRoutingList.vue(路由当前指向的页面)

2. 当前状态确认

前端调用链路(全部走新系统)

项目 调用方式 目标接口 状态
web streamAiScene()fetch('/ai/runtime/stream') AiRuntimeService.invokeStream()
web-admin streamAiRuntime()fetch('/ai/runtime/stream') AiRoutingController.runtimeStream()
life-script streamAiScene()fetch('/ai/runtime/stream') AiRuntimeService.invokeStream()
mini-program streamAiScene()uni.request('/ai/runtime/stream') AiRuntimeService.invokeStream()

后端服务调用链路(全部走新系统)

服务 调用方式 目标方法 状态
AiChatServiceImpl aiRuntimeService.test() AiRuntimeServiceImpl.test()
WebSocketServiceImpl aiRuntimeService.invokeStream() AiRuntimeServiceImpl.invokeStream()
EpicScriptServiceImpl aiRuntimeService.test() AiRuntimeServiceImpl.test()
LifeEventServiceImpl aiRuntimeService.test() AiRuntimeServiceImpl.test()

数据库配置现状

t_ai_provider 已有 dify_defaulthttp://49.232.138.53/v1api_key=app-MqQOx09gCu9zzlKMpeLqHQHv),t_ai_endpoint_config 已迁移 Dify 对话接口。但场景绑定需注意:

  • chat → Coze endpoint(旧系统遗留绑定)
  • script_generateDify endpoint
  • short_story_generateDify endpoint
  • diary_summary → Coze endpoint
  • emotion_summary → Coze endpoint
  • emotion_analysis → Coze endpoint
  • life_healing → Coze endpoint

结论:在 web-admin 测试 script_generateshort_story_generate 场景时,会走 Dify;其他场景走 Coze。这是预期行为。

3. 设计方案

3.1 删除旧系统残留

删除 web-admin/src/views/aiconfig/AiConfigList.vue。该文件路由已不再指向它,保留只会引起混淆。对应的后端 /aiConfig/* 接口保持不变(以防有遗留数据查询需求)。

3.2 新系统测试对话框增强

AiRoutingList.vue 的流式测试对话框(当前标题"流式调用测试")中增加「非流式测试」按钮,并将对话框标题改为「接口测试」:

  • 流式测试走 /ai/runtime/streamstreamAiRuntime()(已有)
  • 非流式测试走 /ai/runtime/testtestAiRuntime()(已有接口,但当前未 import
  • 两个按钮共享 testing 加载状态,避免并发冲突
  • 非流式和流式测试结果各自独立展示,互不干扰
  • 打开对话框时同时清空两个结果

3.3 路由清理

路由配置 /aiconfig/list 已正确指向 AiRoutingList.vue,无需改动。

3.4 数据库配置检查

实施前需确认生产数据库中 Dify provider 和 Dify endpoints 处于 is_enabled = 1 状态。SQL 迁移脚本 2026-05-22-ai-scene-routing.sql 中已设置了 is_enabled = 1,但可能在实际部署时未执行。

4. 风险

  • 删除 AiConfigList.vue 后如果用户需要查询旧 t_ai_config 数据,仍有后端 /aiConfig/* 接口可用
  • 非流式测试新增不影响已有功能
  • Dify provider 和 endpoint 需确保 is_enabled = 1,否则测试会返回 AI_ENDPOINT_DISABLEDAI_PROVIDER_DISABLED