diff --git a/backend-single/README-COZE-API.md b/backend-single/README-COZE-API.md deleted file mode 100644 index 64f040e..0000000 --- a/backend-single/README-COZE-API.md +++ /dev/null @@ -1,142 +0,0 @@ -# Coze API 集成说明 - -## 概述 - -本项目已经优化了 AiChatServiceImpl 的 Coze API 接口实现,确保能够正确调用 Coze 的 v3 API。 - -## 配置说明 - -### application.yml 配置 - -```yaml -emotion: - coze: - api: - token: pat_GCR4qKzqpf90wMCvKsldMrB18KG3QsLDci65bZthssKsbLxu8X70BKYumleDcabO - base-url: https://api.coze.cn - chat: - path: /v3/chat - talk: - bot-id: 7523042446285439016 - workflow-id: 7523047462895796287 - summary: - bot-id: 7529062814150295595 - workflow-id: 7523047462895796287 - timeout: 30000 - retry-count: 3 - retry-delay: 1000 -``` - -### 配置项说明 - -- `token`: Coze API 的访问令牌,格式为 `pat_` 开头 -- `base-url`: Coze API 的基础URL,通常为 `https://api.coze.cn` -- `chat.path`: 聊天API的路径,固定为 `/v3/chat` -- `chat.talk.bot-id`: 对话聊天使用的机器人ID -- `chat.talk.workflow-id`: 对话聊天使用的工作流ID -- `chat.summary.bot-id`: 聊天记录总结使用的机器人ID -- `chat.summary.workflow-id`: 聊天记录总结使用的工作流ID -- `timeout`: API调用超时时间(毫秒) -- `retry-count`: 重试次数 -- `retry-delay`: 重试延迟(毫秒) - -## API 调用流程 - -### 1. 发送聊天消息 - -```java -String response = aiChatService.sendChatMessage(conversationId, message, userId); -``` - -### 2. 访客聊天 - -```java -Map response = aiChatService.guestChat(message, clientIp); -``` - -### 3. 生成对话总结 - -```java -String summary = aiChatService.generateConversationSummary(conversationId, userId); -``` - -## 实现特点 - -### 1. 正确的 API 调用流程 - -1. **发送聊天请求**: 调用 `/v3/chat` 接口发送消息 -2. **获取 chat_id**: 从响应中提取 `chat_id` 和 `conversation_id` -3. **轮询状态**: 使用 `/v3/chat/retrieve` 接口轮询聊天状态 -4. **获取消息**: 当状态为 `completed` 时,调用 `/v3/chat/message/list` 获取AI回复 - -### 2. 请求格式 - -```json -{ - "bot_id": "7523042446285439016", - "workflow_id": "7523047462895796287", - "user_id": "user-123", - "stream": false, - "additional_messages": [ - { - "role": "user", - "content": "用户消息内容", - "content_type": "text", - "type": "question" - } - ], - "parameters": {} -} -``` - -### 3. 响应处理 - -- 解析初始响应获取 `chat_id` 和 `conversation_id` -- 轮询聊天状态直到完成(最多30秒,每2秒一次) -- 从消息列表中提取 AI 回复(role=assistant, type=answer) - -### 4. 错误处理 - -- 网络异常处理 -- API 错误响应处理 -- 超时处理 -- 重试机制 - -## 测试 - -运行以下命令测试 API 集成: - -```bash -mvn test -Dtest=CozeApiTest -``` - -## 注意事项 - -1. **API Token**: 确保使用有效的 Coze API token -2. **Bot ID**: 确保 bot_id 和 workflow_id 正确配置 -3. **网络连接**: 确保服务器能够访问 `https://api.coze.cn` -4. **超时设置**: 根据实际情况调整超时时间 -5. **错误处理**: 生产环境中应该有完善的错误处理和日志记录 - -## 故障排除 - -### 1. 检查配置 - -```bash -# 检查配置是否正确加载 -curl -X GET http://localhost:19089/api/ai/health -``` - -### 2. 查看日志 - -```bash -# 查看详细的API调用日志 -tail -f logs/emotion-single.log | grep -i coze -``` - -### 3. 常见错误 - -- **401 Unauthorized**: 检查 API token 是否正确 -- **404 Not Found**: 检查 bot_id 是否存在 -- **Timeout**: 增加超时时间或检查网络连接 -- **Rate Limit**: 检查API调用频率限制 diff --git a/backend-single/README_ADMIN.md b/backend-single/README_ADMIN.md deleted file mode 100644 index 23fb2fc..0000000 --- a/backend-single/README_ADMIN.md +++ /dev/null @@ -1,193 +0,0 @@ -# 管理员登录系统 - 快速开始 - -## 🚀 快速开始 - -### 1. 执行数据库脚本 - -```bash -# 执行建表脚本(包含管理员表和初始数据) -mysql -u root -p emotion_museum < sql/emotion_museum.sql -``` - -### 2. 启动应用 - -```bash -cd backend-single -mvn spring-boot:run -``` - -### 3. 测试登录 - -```bash -curl -X POST http://localhost:8080/api/admin/auth/login \ - -H "Content-Type: application/json" \ - -d '{ - "account": "admin", - "password": "admin123" - }' -``` - -## 📋 默认管理员账号 - -- **账号**: `admin` -- **密码**: `admin123` -- **角色**: `super_admin` - -⚠️ **重要**: 生产环境部署后请立即修改默认密码! - -## 🔑 API接口 - -### 管理员认证 - -| 接口 | 方法 | 路径 | 说明 | -|------|------|------|------| -| 登录 | POST | `/api/admin/auth/login` | 账号密码登录 | -| 获取信息 | GET | `/api/admin/auth/info` | 获取当前管理员信息 | -| 登出 | POST | `/api/admin/auth/logout` | 退出登录 | -| 刷新Token | POST | `/api/admin/auth/refreshToken` | 刷新访问令牌 | - -### 管理员管理 - -| 接口 | 方法 | 路径 | 说明 | -|------|------|------|------| -| 分页查询 | GET | `/api/admin/page` | 分页查询管理员列表 | -| 查询详情 | GET | `/api/admin/detail` | 根据ID查询详情 | -| 创建 | POST | `/api/admin/create` | 创建新管理员 | -| 更新 | PUT | `/api/admin/update` | 更新管理员信息 | -| 删除 | DELETE | `/api/admin/delete` | 删除管理员 | - -## 💡 使用示例 - -### 登录获取Token - -```bash -curl -X POST http://localhost:8080/api/admin/auth/login \ - -H "Content-Type: application/json" \ - -d '{ - "account": "admin", - "password": "admin123" - }' -``` - -**响应**: -```json -{ - "code": 200, - "message": "登录成功", - "data": { - "accessToken": "eyJhbGciOiJIUzUxMiJ9...", - "refreshToken": "eyJhbGciOiJIUzUxMiJ9...", - "expiresIn": 86400, - "adminInfo": { - "id": "xxx", - "account": "admin", - "username": "系统管理员", - "role": "super_admin" - } - } -} -``` - -### 使用Token访问接口 - -```bash -# 将上面获取的accessToken替换到下面的{TOKEN} -curl -X GET http://localhost:8080/api/admin/page?current=1&size=10 \ - -H "Authorization: Bearer {TOKEN}" -``` - -### 创建新管理员 - -```bash -curl -X POST http://localhost:8080/api/admin/create \ - -H "Authorization: Bearer {TOKEN}" \ - -H "Content-Type: application/json" \ - -d '{ - "account": "admin2", - "password": "123456", - "username": "运营管理员", - "email": "admin2@example.com", - "phone": "13800138001", - "role": "admin", - "department": "运营部", - "position": "运营经理" - }' -``` - -## 🔐 安全特性 - -1. ✅ 密码BCrypt加密存储 -2. ✅ JWT Token认证 -3. ✅ Token类型隔离(admin/user) -4. ✅ 独立的拦截器验证 -5. ✅ Redis存储Token -6. ✅ 登录信息记录 - -## 📚 详细文档 - -- [系统设计文档](docs/ADMIN_AUTH.md) -- [测试指南](docs/ADMIN_AUTH_TEST.md) -- [实现总结](docs/ADMIN_IMPLEMENTATION_SUMMARY.md) - -## ⚙️ 配置说明 - -### JWT配置(application.yml) - -```yaml -emotion: - jwt: - secret: emotion-museum-secret-key-2025 # JWT密钥 - expiration: 86400000 # Token过期时间(24小时) - refresh-expiration: 604800000 # 刷新Token过期时间(7天) -``` - -### Redis配置 - -确保Redis服务正常运行,Token会存储在Redis中: -- 管理员Token: `admin_token:{adminId}` -- 管理员刷新Token: `admin_refresh_token:{adminId}` - -## 🛠️ 常见问题 - -### Q: 登录返回401 -**A**: 检查账号密码是否正确,确认数据库中有初始管理员数据 - -### Q: 访问接口返回403 -**A**: 确保使用管理员Token访问管理员接口,普通用户Token无法访问 - -### Q: Token验证失败 -**A**: Token可能已过期,重新登录或使用refreshToken刷新 - -### Q: 如何修改密码 -**A**: 当前版本需要直接更新数据库,后续版本会提供密码修改接口 - -## 🎯 角色说明 - -系统支持三种管理员角色: - -- `super_admin`: 超级管理员,拥有所有权限 -- `admin`: 普通管理员 -- `operator`: 运营人员 - -## 📝 开发建议 - -1. **生产环境** - - 修改默认密码 - - 启用HTTPS - - 配置合适的Token过期时间 - - 定期备份数据库 - -2. **安全建议** - - 定期更换JWT密钥 - - 监控异常登录 - - 实现登录失败次数限制 - - 添加操作日志 - -3. **性能优化** - - 配置Redis连接池 - - 优化数据库索引 - - 实现Token缓存策略 - -## 📞 技术支持 - -如有问题,请查看详细文档或联系开发团队。 diff --git a/backend-single/src/main/java/com/emotion/service/impl/AiConfigServiceImpl.java b/backend-single/src/main/java/com/emotion/service/impl/AiConfigServiceImpl.java index 9d4c48d..7352c9b 100644 --- a/backend-single/src/main/java/com/emotion/service/impl/AiConfigServiceImpl.java +++ b/backend-single/src/main/java/com/emotion/service/impl/AiConfigServiceImpl.java @@ -356,15 +356,8 @@ public class AiConfigServiceImpl extends ServiceImpl i response.setUpdateTime(aiConfig.getUpdateTime().format(DATE_TIME_FORMATTER)); } - // 脱敏处理API Token - if (StringUtils.hasText(aiConfig.getApiToken())) { - String token = aiConfig.getApiToken(); - if (token.length() > 8) { - response.setApiToken(token.substring(0, 4) + "****" + token.substring(token.length() - 4)); - } else { - response.setApiToken("****"); - } - } + // 管理端不需要脱敏,直接返回完整的API Token + response.setApiToken(aiConfig.getApiToken()); // 转换BigDecimal为Double if (aiConfig.getTemperature() != null) { diff --git a/web-admin/AI_CONFIG_FRONTEND_README.md b/web-admin/AI_CONFIG_FRONTEND_README.md deleted file mode 100644 index 097ef97..0000000 --- a/web-admin/AI_CONFIG_FRONTEND_README.md +++ /dev/null @@ -1,160 +0,0 @@ -# AI配置管理前端实现 - -## 概述 -基于Vue 3 + TypeScript + Element Plus实现的AI配置管理前端页面,提供完整的AI配置增删改查功能。 - -## 实现的文件 - -### 1. 类型定义 -- `src/types/aiconfig.ts` - AI配置相关的TypeScript类型定义 - - AiConfig接口 - - 请求/响应类型 - - 选项常量定义 - -### 2. API调用 -- `src/api/aiconfig.ts` - AI配置相关的API调用函数 - - 基础CRUD操作 - - 条件查询 - - 状态管理 - - 统计功能 - -### 3. 页面组件 -- `src/views/aiconfig/AiConfigList.vue` - AI配置管理主页面 - - 分页列表展示 - - 搜索过滤 - - 新增/编辑对话框 - - 状态管理操作 - - 统计信息展示 - -### 4. 通用组件 -- `src/components/AiConfigQuickActions.vue` - AI配置快速操作组件 - - 统计信息展示 - - 快速操作入口 - -### 5. 路由配置 -- 更新了 `src/router/index.ts`,添加AI配置管理路由 - -### 6. 仪表板集成 -- 更新了 `src/views/Dashboard.vue`,集成AI配置统计信息 - -## 主要功能 - -### 1. 配置列表管理 -- **分页查询**: 支持分页显示配置列表 -- **多条件搜索**: 支持关键词、配置类型、服务提供商、使用场景、状态、环境等条件搜索 -- **排序功能**: 支持按不同字段排序 -- **统计信息**: 实时显示总数、启用数、禁用数、默认配置数 - -### 2. 配置CRUD操作 -- **新增配置**: 分标签页的详细配置表单 - - 基础配置:名称、类型、提供商、URL、Token等 - - 参数配置:超时、重试、Token限制、温度参数等 - - 费用配置:价格、限制等 - - 其他配置:状态、自定义参数等 -- **编辑配置**: 支持修改所有配置项 -- **查看详情**: 只读模式查看配置详情 -- **删除配置**: 确认删除操作 - -### 3. 状态管理 -- **启用/禁用**: 一键切换配置状态 -- **设置默认**: 设置/取消默认配置 -- **批量操作**: 支持批量状态管理 - -### 4. 数据展示优化 -- **标签化显示**: 配置类型、服务提供商、环境等使用不同颜色标签 -- **状态指示**: 清晰的状态标识 -- **脱敏处理**: API Token等敏感信息脱敏显示 -- **响应式布局**: 适配不同屏幕尺寸 - -### 5. 用户体验优化 -- **加载状态**: 操作过程中的加载提示 -- **错误处理**: 完善的错误提示和处理 -- **确认对话框**: 重要操作的二次确认 -- **表单验证**: 完整的表单验证规则 -- **快捷操作**: 表格行内快捷操作按钮 - -## 技术特点 - -### 1. 类型安全 -- 完整的TypeScript类型定义 -- 严格的类型检查 -- 良好的IDE支持 - -### 2. 组件化设计 -- 可复用的组件设计 -- 清晰的组件职责划分 -- 良好的组件通信 - -### 3. 响应式设计 -- 适配不同屏幕尺寸 -- 移动端友好 -- 灵活的布局系统 - -### 4. 性能优化 -- 按需加载 -- 合理的数据缓存 -- 优化的渲染性能 - -## 页面路由 - -- `/aiconfig/list` - AI配置列表页面 -- 在仪表板 `/dashboard` 中集成了AI配置统计信息 - -## 使用说明 - -### 1. 访问页面 -通过左侧导航菜单 "AI配置管理" -> "AI配置列表" 进入管理页面 - -### 2. 搜索配置 -- 使用顶部搜索表单进行条件筛选 -- 支持关键词模糊搜索 -- 支持多个条件组合搜索 - -### 3. 新增配置 -1. 点击 "新增配置" 按钮 -2. 填写基础配置信息(必填项) -3. 根据需要配置参数、费用等信息 -4. 点击确定保存 - -### 4. 编辑配置 -1. 点击表格中的 "编辑" 按钮 -2. 修改需要更新的配置项 -3. 点击确定保存更改 - -### 5. 状态管理 -- 点击 "启用/禁用" 切换配置状态 -- 点击 "设为默认/取消默认" 管理默认配置 -- 删除操作需要二次确认 - -### 6. 查看统计 -- 页面顶部显示实时统计信息 -- 仪表板中显示概览统计 -- 支持手动刷新统计数据 - -## 注意事项 - -1. **权限控制**: 需要管理员权限才能访问 -2. **数据验证**: 表单提交前会进行完整验证 -3. **敏感信息**: API Token等敏感信息会脱敏显示 -4. **操作确认**: 删除等重要操作需要二次确认 -5. **错误处理**: 网络错误和业务错误都有相应提示 - -## 扩展功能 - -### 1. 导入导出 -- 支持配置的批量导入 -- 支持配置的导出备份 - -### 2. 配置模板 -- 预设常用配置模板 -- 快速创建配置 - -### 3. 配置测试 -- 在线测试配置可用性 -- 健康检查功能 - -### 4. 使用统计 -- 配置使用频率统计 -- 性能监控数据 - -这些扩展功能可以根据实际需求逐步实现。 \ No newline at end of file diff --git a/web-admin/AI_CONFIG_MENU_TEST.md b/web-admin/AI_CONFIG_MENU_TEST.md deleted file mode 100644 index 4eb1642..0000000 --- a/web-admin/AI_CONFIG_MENU_TEST.md +++ /dev/null @@ -1,120 +0,0 @@ -# AI配置管理菜单测试说明 - -## 问题解决 -已成功解决AI配置管理菜单不显示的问题。 - -## 修改内容 -在 `web-admin/src/config/menu.ts` 文件中添加了AI配置管理的菜单项: - -```typescript -{ - path: '/aiconfig', - title: 'AI配置管理', - icon: 'Setting' -} -``` - -## 测试步骤 - -### 1. 启动开发服务器 -开发服务器已启动在: http://localhost:5176/ - -### 2. 访问管理后台 -1. 打开浏览器访问 http://localhost:5176/ -2. 使用管理员账号登录 - -### 3. 验证菜单显示 -在左侧菜单栏中应该能看到以下菜单项: -- 仪表盘 (DataLine图标) -- 管理员管理 (User图标) -- 用户管理 (UserFilled图标) -- **AI配置管理 (Setting图标)** ← 新添加的菜单 - -### 4. 测试功能 -1. 点击"AI配置管理"菜单项 -2. 应该跳转到 `/aiconfig/list` 页面 -3. 页面应该显示AI配置管理界面,包括: - - 搜索表单 - - 统计信息 - - 配置列表表格 - - 新增配置按钮 - -### 5. 测试仪表板集成 -1. 返回仪表盘页面 (`/`) -2. 应该能看到AI配置的统计信息 -3. 右侧应该有AI配置快速操作组件 - -## 菜单配置说明 - -菜单配置位于 `web-admin/src/config/menu.ts` 文件中,采用以下结构: - -```typescript -export interface MenuItem { - path: string // 路由路径 - title: string // 菜单标题 - icon?: string // 图标名称 (Element Plus图标) - children?: MenuItem[] // 子菜单 - hidden?: boolean // 是否隐藏 -} -``` - -## 路由配置 - -AI配置管理的路由已在 `web-admin/src/router/index.ts` 中配置: - -```typescript -{ - path: '/aiconfig', - component: Layout, - redirect: '/aiconfig/list', - meta: { title: 'AI配置管理', icon: 'Setting' }, - children: [ - { - path: 'list', - name: 'AiConfigList', - component: () => import('@/views/aiconfig/AiConfigList.vue'), - meta: { title: 'AI配置列表' } - } - ] -} -``` - -## 注意事项 - -1. **图标**: 使用的是Element Plus的内置图标 `Setting` -2. **路由**: 菜单路径 `/aiconfig` 对应路由配置 -3. **权限**: 需要管理员登录权限才能访问 -4. **响应式**: 菜单支持折叠/展开功能 - -## 故障排除 - -如果菜单仍然不显示,请检查: - -1. **缓存问题**: 清除浏览器缓存或硬刷新 (Ctrl+F5) -2. **开发服务器**: 确保开发服务器正常运行 -3. **路由配置**: 确认路由配置正确 -4. **组件导入**: 确认组件文件存在且可正常导入 - -## 后续扩展 - -可以根据需要添加子菜单,例如: - -```typescript -{ - path: '/aiconfig', - title: 'AI配置管理', - icon: 'Setting', - children: [ - { - path: '/aiconfig/list', - title: '配置列表', - icon: 'List' - }, - { - path: '/aiconfig/template', - title: '配置模板', - icon: 'Document' - } - ] -} -``` \ No newline at end of file diff --git a/web-admin/AI_CONFIG_TEST_FEATURE.md b/web-admin/AI_CONFIG_TEST_FEATURE.md deleted file mode 100644 index 387f001..0000000 --- a/web-admin/AI_CONFIG_TEST_FEATURE.md +++ /dev/null @@ -1,157 +0,0 @@ -# AI配置接口测试功能 - -## 功能概述 -在AI配置管理页面新增了接口测试功能,允许管理员直接在页面上测试AI配置的接口连通性和正确性。 - -## 新增功能 - -### 1. 测试按钮 -- 在AI配置列表的操作列中新增了"测试"按钮 -- 点击后打开接口测试对话框 - -### 2. 测试对话框 -测试对话框分为左右两个区域: - -#### 左侧 - 请求配置区域 -- **请求URL**: 自动根据配置的API基础URL生成,默认为 `{apiBaseUrl}/v3/chat` -- **请求头**: JSON格式的请求头,自动包含Authorization和Content-Type -- **请求体**: JSON格式的请求体,基于Coze API标准格式生成 - -#### 右侧 - 响应结果区域 -- **状态码**: 显示HTTP响应状态码,带颜色标识 -- **响应头**: 显示服务器返回的响应头信息 -- **响应体**: 显示服务器返回的响应内容,自动格式化JSON - -### 3. 操作按钮 -- **发送测试请求**: 发送HTTP请求到配置的API端点 -- **格式化请求**: 格式化请求头和请求体的JSON格式 -- **格式化响应**: 格式化响应体的JSON格式 -- **复制响应**: 将响应内容复制到剪贴板 -- **重置**: 重置测试数据到初始状态 - -## 技术实现 - -### 1. 请求构建 -基于AiChatServiceImpl中的实现,自动构建符合Coze API标准的请求: - -```json -{ - "bot_id": "配置的Bot ID", - "workflow_id": "配置的Workflow ID (可选)", - "user_id": "test_user_时间戳", - "stream": false, - "additional_messages": [ - { - "role": "user", - "content": "你好,这是一个测试消息,请回复确认接口正常工作。", - "content_type": "text", - "type": "question" - } - ] -} -``` - -### 2. 请求头处理 -- 自动添加Authorization Bearer Token -- 自动添加Content-Type: application/json -- 支持合并自定义请求头 - -### 3. 响应处理 -- 显示完整的HTTP状态码 -- 显示所有响应头信息 -- 自动格式化JSON响应体 -- 支持非JSON响应的显示 - -### 4. 错误处理 -- 网络错误处理 -- JSON格式错误提示 -- HTTP错误状态码提示 - -## 使用方法 - -### 1. 打开测试对话框 -1. 在AI配置列表中找到要测试的配置 -2. 点击操作列中的"测试"按钮 -3. 测试对话框自动打开并填充默认数据 - -### 2. 自定义测试参数 -- 可以修改请求头添加额外的头信息 -- 可以修改请求体中的消息内容 -- 可以调整其他API参数 - -### 3. 发送测试请求 -1. 点击"发送测试请求"按钮 -2. 等待请求完成(显示加载状态) -3. 查看右侧的响应结果 - -### 4. 分析测试结果 -- **状态码 200**: 请求成功,配置正常 -- **状态码 401**: 认证失败,检查API Token -- **状态码 400**: 请求参数错误,检查Bot ID等配置 -- **状态码 500**: 服务器错误,联系API提供商 - -## 支持的配置类型 - -### 1. Coze配置 -- 完全支持Coze API的测试 -- 自动构建符合Coze标准的请求格式 -- 支持Bot ID和Workflow ID - -### 2. 其他配置类型 -- 基础的HTTP请求测试 -- 可以通过修改请求体适配不同的API格式 - -## 安全考虑 - -### 1. Token脱敏 -- 在请求头显示中,Token会部分脱敏显示 -- 实际请求使用完整的Token - -### 2. 跨域处理 -- 使用浏览器原生fetch API -- 可能受到CORS策略限制 -- 建议在开发环境或配置了CORS的环境中使用 - -### 3. 数据隔离 -- 测试数据不会影响生产数据 -- 使用独立的测试用户ID - -## 故障排除 - -### 1. 网络错误 -- 检查API URL是否正确 -- 检查网络连接 -- 检查防火墙设置 - -### 2. 认证错误 -- 检查API Token是否正确 -- 检查Token是否过期 -- 检查Token权限 - -### 3. 参数错误 -- 检查Bot ID是否正确 -- 检查Workflow ID是否存在 -- 检查请求体格式 - -### 4. CORS错误 -- 在开发环境中测试 -- 或使用支持CORS的代理服务器 - -## 后续扩展 - -### 1. 批量测试 -- 支持批量测试多个配置 -- 生成测试报告 - -### 2. 测试历史 -- 保存测试历史记录 -- 支持测试结果对比 - -### 3. 自动化测试 -- 定时自动测试配置可用性 -- 异常告警通知 - -### 4. 更多API支持 -- 支持OpenAI API测试 -- 支持Claude API测试 -- 支持其他AI服务商API测试 \ No newline at end of file diff --git a/web-admin/src/views/aiconfig/AiConfigList.vue b/web-admin/src/views/aiconfig/AiConfigList.vue index 107f5a7..e374777 100644 --- a/web-admin/src/views/aiconfig/AiConfigList.vue +++ b/web-admin/src/views/aiconfig/AiConfigList.vue @@ -1074,7 +1074,7 @@ const initTestData = (config: AiConfig) => { testRequest.headers = JSON.stringify(headers, null, 2) - // 构建请求体 - 基于Coze API格式 + // 构建请求体 - 完全按照AiChatServiceImpl.buildCozeRequest的格式 const requestBody: any = { bot_id: config.botId || '', user_id: 'test_user_' + Date.now(), @@ -1086,11 +1086,12 @@ const initTestData = (config: AiConfig) => { content_type: 'text', type: 'question' } - ] + ], + parameters: {} } // 如果有workflow_id,添加到请求体 - if (config.workflowId) { + if (config.workflowId && config.workflowId.trim()) { requestBody.workflow_id = config.workflowId }