fix: sessionId 改为请求体传参不再使用 X-Session-Id 请求头

This commit is contained in:
王佑琳 2026-06-17 17:43:20 +08:00
parent fea5f87e5b
commit 5022404792
3 changed files with 8 additions and 10 deletions

View File

@ -168,7 +168,7 @@ props: (config) => ({
1. 用户选择模型 → `platform.loadConfig(modelName, modelType)` → 调用 `GET /suanli/v1/models/:id/config`(优先 60s 缓存)加载参数 schema
2. 参数 schema 驱动 `controls` 渲染 UI用户填写参数
3. 用户点击发送 → `handleStart()``platform.buildTaskBody({ prompt, referenceImages })` 返回扁平 `modelParams`
4. `taskPolling.js` 直接读取 `data.body``getModelId(type, modelName)` 查找 UUID → POST `/suanli/v1/tasks``X-Session-Id` header
4. `taskPolling.js` 直接读取 `data.body``getModelId(type, modelName)` 查找 UUID → POST `/suanli/v1/tasks`请求体含 `sessionId`
5. 20s 间隔轮询直至完成/失败
### 模型标识与查找
@ -298,8 +298,7 @@ Music 平台与 Painting/Video 的关键差异:
### 关键注意事项
- **`sessionId`** 来自登录接口返回的 `userInfo.sessionId`,存储在 `useUserStore().userInfo` 中。`taskPolling.js` 必须使用该值,禁止随机生成。
- **`X-Session-Id`** 自定义 header 需要 nginx 在 `/suanli/` location 的 `Access-Control-Allow-Headers` 中加入,否则 POST 请求会触发 CORS 预检失败。
- **`sessionId`** 来自登录接口返回的 `userInfo.sessionId`,存储在 `useUserStore().userInfo` 中,通过请求体 `sessionId` 字段传递给创建任务接口。`taskPolling.js` 必须使用该值,禁止随机生成。
- **模型列表缓存**`modelApi.js` 中 `fetchPlatformModels` 使用 localStorage 30 秒 TTL + `pendingRequests` Map 并发去重。
- **模型配置缓存**`modelApi.js` 中 `getModelConfig` 使用 localStorage 60 秒 TTL + `pendingConfigRequests` Map 并发去重。`loadModels()` 会在获取模型列表后调用 `preloadModelConfigs` 批量预加载。
- **平台包预加载**dialogBox 顶层 `import` Painting 和 Video 平台包,触发自注册,确保首次使用时 registry 已就绪。
@ -344,7 +343,7 @@ Music 平台与 Painting/Video 的关键差异:
| 函数 | 端点 | 用途 |
|------|------|------|
| `requestCreateTask` | POST `/suanli/v1/tasks` | 创建任务(`X-Session-Id` header |
| `requestCreateTask` | POST `/suanli/v1/tasks` | 创建任务(请求体含 `sessionId` |
| `requestTaskStatus` | GET `/suanli/v1/tasks/:id` | 查询单个任务状态 |
| `requestTaskHistory` | GET `/suanli/v1/tasks/history` | 历史任务列表(支持 `user_id`/`platform_code`/`page`/`pageSize` |
| `fetchPlatformModels` | GET `/suanli/v1/platforms/:code/models` | 获取平台模型列表(返回 `{id(UUID), name, display_name, tags, disabled?}`)。`id`=UUID 主键,`name`=内部标识,`display_name`=用户可见名 |

View File

@ -15,10 +15,8 @@ export function deleteGenerateHistory(query) {
// ==================== 任务 APIaxios经由 /suanli 前缀路由到算力调度后端) ====================
// 创建生成任务HTTP POST /suanli/v1/tasks
export function requestCreateTask(body, sessionId) {
return service.post('/suanli/v1/tasks', body, {
headers: { 'X-Session-Id': sessionId }
})
export function requestCreateTask(body) {
return service.post('/suanli/v1/tasks', body)
}
// 查询任务状态 / 获取历史任务结果HTTP GET /suanli/v1/tasks/:id

View File

@ -100,11 +100,12 @@ export async function generate(data, generateData) {
model_id: data.modelId,
body,
request: data.request,
platform_code: getPlatformCode(data.type)
platform_code: getPlatformCode(data.type),
sessionId
}
// POST 创建任务
const createResult = await requestCreateTask(requestBody, sessionId)
const createResult = await requestCreateTask(requestBody)
if (createResult.code !== 0) {
ElNotification({