package aiwire import "encoding/json" // ModerationsRequest 是 /ai/v1/moderations 请求体;input 兼容 OpenAI 的 // string 与 []string 两种形态,model 字段接受但忽略(上游为服务级 API)。 type ModerationsRequest struct { Model string `json:"model,omitempty"` Input json.RawMessage `json:"input"` } // ModerationPii 是一处 PII 命中(OCI 扩展,OpenAI 协议无对应物)。 type ModerationPii struct { Text string `json:"text"` Label string `json:"label"` Score float64 `json:"score"` Offset int `json:"offset"` Length int `json:"length"` } // ModerationResult 是一条输入的审核结果:categories / category_scores 用 // OCI 原生维度(overall / blocklist / prompt_injection),pii 为扩展字段。 type ModerationResult struct { Flagged bool `json:"flagged"` Categories map[string]bool `json:"categories"` CategoryScores map[string]float64 `json:"category_scores"` Pii []ModerationPii `json:"pii,omitempty"` } // ModerationsResponse 是 /ai/v1/moderations 响应体(OpenAI moderations 外壳)。 type ModerationsResponse struct { ID string `json:"id"` Model string `json:"model"` Results []ModerationResult `json:"results"` } // SpeechRequest 描述 /ai/v1/audio/speech 请求体的已知字段(文档用途)。 // 直通端点实际按原样透传,未列字段与 xAI 专属参数(如 output_format)同样保留。 type SpeechRequest struct { Model string `json:"model"` Input string `json:"input"` Voice string `json:"voice,omitempty"` ResponseFormat string `json:"response_format,omitempty"` Language string `json:"language,omitempty"` }