Files
happy-life-star/web-admin/AI_CONFIG_TEST_SAVE_FEATURE.md

7.3 KiB
Raw Permalink Blame History

AI配置测试保存功能说明

功能概述

在 web-admin 的 AI 配置管理页面中,测试接口成功后可以将测试时使用的参数保存到数据库中,包括:

  • API完整URL
  • API Token
  • Bot ID
  • Workflow ID
  • 自定义请求头
  • 自定义请求参数
  • 是否支持流式输出

使用流程

1. 打开测试对话框

在 AI 配置列表中,点击某个配置的"测试"按钮,打开测试对话框。

2. 配置测试参数

测试对话框会自动填充当前配置的参数:

  • 请求URL: 从配置的 apiBaseUrl 字段获取
  • 请求头: 自动构建,包含 AuthorizationContent-Type
  • 请求体: 自动构建,包含 bot_iduser_idstreamadditional_messages

3. 修改测试参数(可选)

您可以根据需要修改:

  • 请求URL
  • 请求头中的参数
  • 请求体中的参数
  • 测试消息内容
  • 是否启用流式响应

4. 发送测试请求

点击"发送测试请求"或"发送流式测试"按钮,系统会向配置的API发送请求。

5. 查看响应结果

右侧会显示:

  • 状态码
  • 响应头
  • 响应体

6. 保存测试配置

如果测试成功(状态码为200),会显示"保存测试配置"按钮。点击该按钮,系统会:

6.1 解析请求头

  • 提取 Authorization 头中的 Token(移除 "Bearer " 前缀)
  • 将其他自定义请求头保存到 customHeaders 字段(JSON格式)

6.2 解析请求体

  • 提取 bot_id 保存到 botId 字段
  • 提取 workflow_id 保存到 workflowId 字段
  • 提取 stream 保存到 supportStream 字段
  • 将其他自定义参数保存到 customParams 字段(JSON格式)

6.3 更新配置

调用后端接口 /aiConfig/updateFromTest,更新配置信息。

后端接口

接口地址

PUT /aiConfig/updateFromTest

请求参数

{
  "id": "配置ID",
  "apiBaseUrl": "完整的API URL",
  "apiToken": "API访问令牌",
  "botId": "Bot IDCoze专用)",
  "workflowId": "Workflow IDCoze专用)",
  "customHeaders": "自定义请求头(JSON字符串)",
  "customParams": "自定义参数(JSON字符串)",
  "supportStream": 1
}

响应示例

{
  "code": 200,
  "message": "更新成功",
  "data": {
    "id": "1234567890",
    "configName": "测试配置",
    "apiBaseUrl": "https://api.coze.cn/v3/chat",
    "apiToken": "pat_xxx",
    "botId": "bot_123",
    "workflowId": "workflow_456",
    "customHeaders": "{\"X-Custom-Header\":\"value\"}",
    "customParams": "{\"custom_param\":\"value\"}",
    "supportStream": 1,
    ...
  }
}

参数提取规则

1. API Token提取

从请求头的 Authorization 字段中提取:

{
  "Authorization": "Bearer pat_xxx"
}

提取结果:apiToken = "pat_xxx"

2. Bot ID提取

从请求体的 bot_id 字段中提取:

{
  "bot_id": "bot_123"
}

提取结果:botId = "bot_123"

3. Workflow ID提取

从请求体的 workflow_id 字段中提取:

{
  "workflow_id": "workflow_456"
}

提取结果:workflowId = "workflow_456"

4. 流式支持提取

从请求体的 stream 字段中提取:

{
  "stream": true
}

提取结果:supportStream = 1

5. 自定义请求头

移除 AuthorizationContent-Type 后的其他请求头:

{
  "X-Custom-Header": "value",
  "X-Another-Header": "value2"
}

保存为JSON字符串到 customHeaders 字段

6. 自定义参数

移除 bot_idworkflow_idstreamuser_idadditional_messages 后的其他参数:

{
  "custom_param": "value",
  "another_param": "value2"
}

保存为JSON字符串到 customParams 字段

使用示例

示例1:标准Coze配置

测试前配置:

{
  "apiBaseUrl": "https://api.coze.cn",
  "apiToken": "old_token",
  "botId": "old_bot_id"
}

测试请求:

  • URL: https://api.coze.cn/v3/chat
  • 请求头:
    {
      "Authorization": "Bearer new_token",
      "Content-Type": "application/json"
    }
    
  • 请求体:
    {
      "bot_id": "new_bot_id",
      "user_id": "test_user",
      "stream": false,
      "additional_messages": [...]
    }
    

保存后配置:

{
  "apiBaseUrl": "https://api.coze.cn/v3/chat",
  "apiToken": "new_token",
  "botId": "new_bot_id",
  "supportStream": 0,
  "customHeaders": "",
  "customParams": ""
}

示例2:带自定义参数的配置

测试请求:

  • URL: https://api.coze.cn/v3/chat
  • 请求头:
    {
      "Authorization": "Bearer token_123",
      "Content-Type": "application/json",
      "X-Custom-Header": "custom_value"
    }
    
  • 请求体:
    {
      "bot_id": "bot_456",
      "workflow_id": "workflow_789",
      "stream": true,
      "user_id": "test_user",
      "additional_messages": [...],
      "custom_param": "param_value"
    }
    

保存后配置:

{
  "apiBaseUrl": "https://api.coze.cn/v3/chat",
  "apiToken": "token_123",
  "botId": "bot_456",
  "workflowId": "workflow_789",
  "supportStream": 1,
  "customHeaders": "{\"X-Custom-Header\":\"custom_value\"}",
  "customParams": "{\"custom_param\":\"param_value\"}"
}

注意事项

  1. 测试成功才能保存: 只有当测试请求返回状态码200时,才会显示"保存测试配置"按钮
  2. JSON格式验证: 保存前会验证请求头和请求体是否为有效的JSON格式
  3. 自动刷新: 保存成功后会自动刷新配置列表
  4. 字段覆盖: 保存时只更新提供的字段,未提供的字段保持原值
  5. Token安全: API Token会完整保存到数据库,请确保数据库安全

错误处理

1. 请求头格式错误

错误信息:请求头格式错误,无法解析
原因:请求头不是有效的JSON格式
解决:检查请求头的JSON格式是否正确

2. 请求体格式错误

错误信息:请求体格式错误,无法解析
原因:请求体不是有效的JSON格式
解决:检查请求体的JSON格式是否正确

3. 配置不存在

错误信息:测试配置不存在
原因:testConfig为空
解决:重新打开测试对话框

4. 保存失败

错误信息:保存失败: [具体错误信息]
原因:后端接口调用失败
解决:检查网络连接和后端服务状态

开发说明

前端文件

  • 页面: web-admin/src/views/aiconfig/AiConfigList.vue
  • API: web-admin/src/api/aiconfig.ts
  • 类型: web-admin/src/types/aiconfig.ts

后端文件

  • Controller: backend-single/src/main/java/com/emotion/controller/AiConfigController.java
  • Service: backend-single/src/main/java/com/emotion/service/AiConfigService.java
  • ServiceImpl: backend-single/src/main/java/com/emotion/service/impl/AiConfigServiceImpl.java
  • Request DTO: backend-single/src/main/java/com/emotion/dto/request/aiconfig/AiConfigTestUpdateRequest.java

数据库字段

  • api_base_url: API完整URL
  • api_token: API访问令牌
  • bot_id: Bot ID
  • workflow_id: Workflow ID
  • custom_headers: 自定义请求头(JSON字符串)
  • custom_params: 自定义参数(JSON字符串)
  • support_stream: 是否支持流式输出(0-不支持,1-支持)

更新日志

2025-12-22

  • 新增测试后保存配置功能
  • 新增 AiConfigTestUpdateRequest DTO
  • 新增 updateFromTestRequest 服务方法
  • 新增 /aiConfig/updateFromTest 接口
  • 前端新增"保存测试配置"按钮和处理逻辑