85 lines
4.1 KiB
Go
85 lines
4.1 KiB
Go
package v1
|
||
|
||
import (
|
||
"encoding/json"
|
||
|
||
"github.com/gogf/gf/v2/frame/g"
|
||
)
|
||
|
||
// 渠道调试日志:调试开关开启的渠道,per-attempt 记录客户端↔系统↔上游四段完整报文。
|
||
// 端点全部为 GET/DELETE,路径在 /channels/ 下,自动命中 rbac 前缀规则
|
||
//(GET → channel:view,DELETE → channel:delete),无需新增权限点。
|
||
|
||
// ChannelDebugLogListReq 渠道调试日志列表请求(只返回元数据与四段体积,不返回 body)
|
||
type ChannelDebugLogListReq struct {
|
||
g.Meta `path:"/channels/{channel_id}/debug-logs" method:"get" mime:"json" tags:"管理后台-渠道" summary:"渠道调试日志列表"`
|
||
ChannelID int64 `json:"channel_id" in:"path" v:"required" dc:"渠道ID"`
|
||
Page int `json:"page" in:"query" d:"1" v:"min:1" dc:"页码"`
|
||
PageSize int `json:"page_size" in:"query" d:"20" v:"min:1|max:100" dc:"每页数量"`
|
||
RequestID string `json:"request_id" in:"query" dc:"请求ID精确筛选"`
|
||
ModelName string `json:"model_name" in:"query" dc:"模型名模糊筛选"`
|
||
UpstreamStatus *int `json:"upstream_status" in:"query" dc:"上游状态码筛选"`
|
||
ClientStatus *int `json:"client_status" in:"query" dc:"客户端状态码筛选"`
|
||
IsStream *bool `json:"is_stream" in:"query" dc:"是否流式"`
|
||
OnlyError *bool `json:"only_error" in:"query" dc:"仅看有错误的记录"`
|
||
StartDate string `json:"start_date" in:"query" dc:"开始日期 YYYY-MM-DD"`
|
||
EndDate string `json:"end_date" in:"query" dc:"结束日期 YYYY-MM-DD"`
|
||
}
|
||
|
||
// ChannelDebugLogListRes 渠道调试日志列表响应
|
||
type ChannelDebugLogListRes struct {
|
||
List []map[string]any `json:"list"`
|
||
Total int `json:"total"`
|
||
Page int `json:"page"`
|
||
PageSize int `json:"page_size"`
|
||
}
|
||
|
||
// ChannelDebugLogStatsReq 渠道调试日志统计请求
|
||
type ChannelDebugLogStatsReq struct {
|
||
g.Meta `path:"/channels/{channel_id}/debug-logs/stats" method:"get" mime:"json" tags:"管理后台-渠道" summary:"渠道调试日志统计"`
|
||
ChannelID int64 `json:"channel_id" in:"path" v:"required" dc:"渠道ID"`
|
||
}
|
||
|
||
// ChannelDebugLogStatsRes 渠道调试日志统计响应
|
||
type ChannelDebugLogStatsRes struct {
|
||
Total int64 `json:"total" dc:"记录条数"`
|
||
TotalBytes int64 `json:"total_bytes" dc:"四段 body 落库总字节数"`
|
||
OldestAt string `json:"oldest_at" dc:"最早记录时间"`
|
||
}
|
||
|
||
// ChannelDebugLogDetailReq 渠道调试日志详情请求(返回四段完整报文)
|
||
type ChannelDebugLogDetailReq struct {
|
||
g.Meta `path:"/channels/{channel_id}/debug-logs/{id}" method:"get" mime:"json" tags:"管理后台-渠道" summary:"渠道调试日志详情"`
|
||
ChannelID int64 `json:"channel_id" in:"path" v:"required" dc:"渠道ID"`
|
||
ID int64 `json:"id" in:"path" v:"required" dc:"记录ID"`
|
||
}
|
||
|
||
// ChannelDebugLogDetailRes 渠道调试日志详情响应:详情对象平铺进统一响应的 data 字段
|
||
// (json:"-" + 自定义 MarshalJSON),避免统一包装后再多包一层 data
|
||
type ChannelDebugLogDetailRes struct {
|
||
Data map[string]any `json:"-"`
|
||
}
|
||
|
||
func (r *ChannelDebugLogDetailRes) MarshalJSON() ([]byte, error) {
|
||
return json.Marshal(r.Data)
|
||
}
|
||
|
||
// ChannelDebugLogDeleteReq 删除单条调试日志请求(硬删除)
|
||
type ChannelDebugLogDeleteReq struct {
|
||
g.Meta `path:"/channels/{channel_id}/debug-logs/{id}" method:"delete" mime:"json" tags:"管理后台-渠道" summary:"删除调试日志"`
|
||
ChannelID int64 `json:"channel_id" in:"path" v:"required" dc:"渠道ID"`
|
||
ID int64 `json:"id" in:"path" v:"required" dc:"记录ID"`
|
||
}
|
||
|
||
// ChannelDebugLogDeleteRes 删除调试日志响应
|
||
type ChannelDebugLogDeleteRes struct{}
|
||
|
||
// ChannelDebugLogClearReq 清空渠道调试日志请求(按渠道硬删除全部)
|
||
type ChannelDebugLogClearReq struct {
|
||
g.Meta `path:"/channels/{channel_id}/debug-logs" method:"delete" mime:"json" tags:"管理后台-渠道" summary:"清空渠道调试日志"`
|
||
ChannelID int64 `json:"channel_id" in:"path" v:"required" dc:"渠道ID"`
|
||
}
|
||
|
||
// ChannelDebugLogClearRes 清空渠道调试日志响应
|
||
type ChannelDebugLogClearRes struct{}
|