# 压缩下载模型原始请求

`GET` `/api/sessionAnalysis/downloadLlmRequests`

llmRequestId与messageId必须二选一。单份返回json.gz，单消息返回ZIP（manifest.json及各份json.gz），解压内容与详情data一致。ZIP内请求文件使用step-步骤-a版本或compact-s步骤-c序号命名，重跑文件追加-r重跑标识；manifest中的每个请求条目包含kind、stepIndex、attempt、compactSeq和rerunId，可在不解压请求文件的情况下按步骤定位。禁止整会话下载，不接受步骤或分页筛选，不自动解析用户消息ID。单消息最多2000份；客户端应校验压缩包完整性后确认导出成功。

## 请求参数

### 请求头参数

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| X-Principal-Id | integer | 否 | 身份主体ID（Long类型）。通过API访问时必须传递以标识操作主体；通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。 |

### Query 参数

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| sessionId | integer | 是 | 会话ID |
| llmRequestId | string | 否 | 前序分析接口返回的请求标识，请原样传入；与另一下载范围参数二选一 |
| messageId | integer | 否 | 助手或压缩承载消息ID；消息查询支持用户消息解析回复，下载不自动解析；与另一下载范围参数二选一 |

## 响应

### 400

| 参数名 | 类型 | 说明 |
|--------|------|------|
| httpStatusCode | integer | HTTP状态码 |
| message | string | 响应消息 |
| data | object | 响应数据 |
| success | boolean | 是否成功 |
| requestId | string | 上游请求ID，用于跨系统链路追踪排查问题 |
| errCode | string | 上游错误码，前端可据此做特殊UI处理 |

### 500

| 参数名 | 类型 | 说明 |
|--------|------|------|
| httpStatusCode | integer | HTTP状态码 |
| message | string | 响应消息 |
| data | object | 响应数据 |
| success | boolean | 是否成功 |
| requestId | string | 上游请求ID，用于跨系统链路追踪排查问题 |
| errCode | string | 上游错误码，前端可据此做特殊UI处理 |

