diff --git a/frontend/cp-to-static.mjs b/frontend/cp-to-static.mjs index be7e4d4..74b050b 100644 --- a/frontend/cp-to-static.mjs +++ b/frontend/cp-to-static.mjs @@ -2,7 +2,7 @@ * Vite build 后自动将产物复制到 Spring Boot 静态资源目录。 * 由 npm postbuild 钩子触发。 */ -import { cpSync, existsSync, readdirSync, rmSync } from 'node:fs'; +import { cpSync, existsSync, mkdirSync, readdirSync, rmSync } from 'node:fs'; import { join } from 'node:path'; const DIST = 'dist'; @@ -25,3 +25,13 @@ if (existsSync(DIST)) { console.error('✗ dist 目录不存在,请先执行 vite build'); process.exit(1); } + +// 3. 将 sdk-test 多页产物移动到 sdk/test.html(资源引用为绝对路径 /assets/...,移动后仍可解析) +const sdkTestHtml = join(TARGET, 'sdk-test.html'); +if (existsSync(sdkTestHtml)) { + const sdkDir = join(TARGET, 'sdk'); + if (!existsSync(sdkDir)) mkdirSync(sdkDir, { recursive: true }); + cpSync(sdkTestHtml, join(sdkDir, 'test.html')); + rmSync(sdkTestHtml); + console.log('✓ 已移动 sdk-test.html → sdk/test.html'); +} diff --git a/frontend/sdk-test.html b/frontend/sdk-test.html new file mode 100644 index 0000000..97cdb09 --- /dev/null +++ b/frontend/sdk-test.html @@ -0,0 +1,12 @@ + + + + + + ChatbotSDK 测试面板 + + +
+ + + diff --git a/frontend/src/sdk-test/SdkTestPanel.vue b/frontend/src/sdk-test/SdkTestPanel.vue new file mode 100644 index 0000000..36584bf --- /dev/null +++ b/frontend/src/sdk-test/SdkTestPanel.vue @@ -0,0 +1,1478 @@ + + + + + diff --git a/frontend/src/sdk-test/main.ts b/frontend/src/sdk-test/main.ts new file mode 100644 index 0000000..29ff3a7 --- /dev/null +++ b/frontend/src/sdk-test/main.ts @@ -0,0 +1,14 @@ +/** + * SDK 测试面板入口(多页应用) + * + * 独立于管理后台 main 入口,产物构建到 dist/sdk-test.html, + * 由 cp-to-static.mjs 移动到 static/sdk/test.html。 + */ +import { createApp } from 'vue' +import TDesign from 'tdesign-vue-next' +import 'tdesign-vue-next/es/style/index.css' +import SdkTestPanel from './SdkTestPanel.vue' + +const app = createApp(SdkTestPanel) +app.use(TDesign) +app.mount('#sdk-test-app') diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index 97e5e86..6ded3ee 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -39,6 +39,12 @@ export default defineConfig({ minify: 'esbuild', // esbuild 比 terser 快 20-40 倍 reportCompressedSize: false, // 跳过压缩体积报告,省 1~3s rollupOptions: { + input: { + // 管理后台主入口 + main: resolve(__dirname, 'index.html'), + // SDK 测试面板(多页入口,产物由 cp-to-static 移动到 static/sdk/test.html) + 'sdk-test': resolve(__dirname, 'sdk-test.html'), + }, output: { // 拆出独立 chunk,浏览器可长期缓存 manualChunks(id) { diff --git a/src/main/resources/static/sdk/test.html b/src/main/resources/static/sdk/test.html index b7e6ed6..946888d 100644 --- a/src/main/resources/static/sdk/test.html +++ b/src/main/resources/static/sdk/test.html @@ -1,710 +1,21 @@ - - - -ChatbotSDK 测试面板 - - - -
-
-
-
- ← 返回管理后台 - API 文档 ↗ -
-

🧪 ChatbotSDK 测试面板

-

P0 核心 · P1 体验增强 · P2 运营完善

-
-
-
- ⭕ SDK 未加载 - ⭕ API 未测 -
- - -
- 📋 参数映射(SDK → 后端)
- integrateId → roleId(客服角色 ID)
- userId → accountId(外部用户ID)
- chatId → 自动管理(从 /conversation/list 获取或自动生成) -
- - -
-
🔐 SDK Token 鉴权
-
- -
- - -
-
调用 POST /open-api/auth/token 换取 SDK Token
-
-
- - -
Token 有效期默认 2 小时,过期需重新获取
-
-
- -
- - -
对应后端 AiController 的 roleId 参数
-
-
- - -
-
- - -
对应后端 AiController 的 accountId 参数
-
-
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
-
-
- - -
-
- - -
留空则不显示水印
-
-
-
- -
-
- - - -
-
- - - -
- -
-
- 💡 操作提示
- 1. integrateId 填写客服角色 ID(数字,对应后端 roleId)
- 2. userId 填写外部用户ID(对应后端 accountId)
- 3. chatId 自动管理:从 /conversation/list 获取或自动生成
- 4. 拖拽窗口右下角手柄可缩放窗口,尺寸自动保存
- 5. 对话历史从后端加载(点击头部时钟图标查看)
- 6. AI 回复支持 Markdown 渲染
- 7. SDK 默认启用 RAG 检索;开启 showCategorySwitch 可选择知识库分类 -
- -
- - -
-
- 📋 接入代码 -
-
- - -
- -
-
-
-

-        
-
-
-
- -
-
-

📋 测试用例

-
-
- - - - -
- -
-
-
-
-
22
总用例数
-
0
通过
-
0
失败
-
0
API 调用
-
-
平均延迟
-
0
跳过
-
-
-
- -
-
- - - - - + + + + ChatbotSDK 测试面板 + + + + + + + + + + + + +
+