feat: Agent 批量测试、作业助手与上传预览;Windows 启动脚本与文档- 新增 run_agent_test_cases 与示例 JSON、(红头)agent测试用例文档

- 扩展 test_agent_execution(--homework、UTF-8 控制台)
- 后端:uploads 预览、file_read、工作流与对话落盘等
- 前端:AgentChatPreview 与设计器相关调整
- 忽略 redis二进制、agent_workspaces、uploads、tessdata 等本机产物

Made-with: Cursor
This commit is contained in:
renjianbo
2026-04-13 20:17:18 +08:00
parent 0608161c82
commit df4fab1e6e
31 changed files with 3784 additions and 251 deletions

View File

@@ -64,9 +64,16 @@ api.interceptors.response.use(
return response
},
(error) => {
const skip = Boolean(
(error.config as { skipErrorHandler?: boolean } | undefined)?.skipErrorHandler
)
const response = error.response
const status = response?.status
const data = response?.data
if (skip) {
return Promise.reject(error)
}
// 处理401未授权
if (status === 401) {
@@ -82,9 +89,13 @@ api.interceptors.response.use(
return Promise.reject(error)
}
// 处理404未找到
// 处理404未找到FastAPI 常用 detail
if (status === 404) {
ElMessage.error(data?.message || '请求的资源不存在')
const msg =
(typeof data?.detail === 'string' ? data.detail : null) ||
data?.message ||
'请求的资源不存在'
ElMessage.error(msg)
return Promise.reject(error)
}
@@ -100,6 +111,16 @@ api.interceptors.response.use(
return Promise.reject(error)
}
// 413上传体积超限等
if (status === 413) {
const message =
(typeof data?.detail === 'string' ? data.detail : null) ||
data?.message ||
'请求体过大'
ElMessage.error(message)
return Promise.reject(error)
}
// 503多为 Redis/Celery 不可用FastAPI HTTPException 使用 detail
if (status === 503) {
const message =
@@ -127,8 +148,12 @@ api.interceptors.response.use(
return Promise.reject(error)
}
// 其他错误
const message = data?.message || error.message || '请求失败'
// 其他错误(含 FastAPI 常用 string detail
const message =
(typeof data?.detail === 'string' ? data.detail : null) ||
data?.message ||
error.message ||
'请求失败'
ElMessage.error(message)
return Promise.reject(error)
}