refactor: 前端全面替换 any 为 unknown 并统一错误处理,后端用量记录补写请求头/体

- 前端 API 层、stores、conversation 解析器、组件全面替换 any 为 unknown/具体类型
- 错误处理统一使用 parseApiError/getErrorStatus 替代 err.response?.data?.detail 模式
- 后端 handler/TaskService/UsageLifecycle/StreamTracker 链路传递 request_headers/request_body
- streaming/pending 状态更新时可补写客户端和提供商的请求头及请求体
- 新增 TaskService 和 UsageService 相关测试
This commit is contained in:
fawney19
2026-02-22 00:43:41 +08:00
parent 98e60e8f74
commit cf2eee222e
121 changed files with 1652 additions and 1179 deletions
+12 -12
View File
@@ -165,15 +165,15 @@ export interface RequestDetail {
error_message?: string
response_time_ms: number
created_at: string
request_headers?: Record<string, any>
request_body?: Record<string, any>
provider_request_headers?: Record<string, any>
provider_request_body?: Record<string, any>
response_headers?: Record<string, any>
client_response_headers?: Record<string, any>
response_body?: Record<string, any>
client_response_body?: Record<string, any>
metadata?: Record<string, any>
request_headers?: Record<string, unknown>
request_body?: Record<string, unknown>
provider_request_headers?: Record<string, unknown>
provider_request_body?: Record<string, unknown>
response_headers?: Record<string, unknown>
client_response_headers?: Record<string, unknown>
response_body?: Record<string, unknown>
client_response_body?: Record<string, unknown>
metadata?: Record<string, unknown>
// 阶梯计费信息
tiered_pricing?: {
total_input_context: number // 总输入上下文 (input + cache_read)
@@ -211,7 +211,7 @@ export interface CurlData {
url: string
method: string
headers: Record<string, string>
body: Record<string, any>
body: Record<string, unknown>
curl: string
}
@@ -219,7 +219,7 @@ export interface ReplayRequest {
provider_id?: string
endpoint_id?: string
api_key_id?: string
body_override?: Record<string, any>
body_override?: Record<string, unknown>
}
export interface ReplayResponse {
@@ -227,7 +227,7 @@ export interface ReplayResponse {
provider: string
status_code: number
response_headers: Record<string, string>
response_body: Record<string, any>
response_body: Record<string, unknown>
response_time_ms: number
}