package request // CreateProviderRequest 创建AI提供商请求 type CreateProviderRequest struct { ProviderName string `json:"providerName" binding:"required,min=1,max=100"` // 提供商名称(如"我的OpenAI") ProviderType string `json:"providerType" binding:"required,oneof=openai claude gemini custom"` // 提供商类型 BaseURL string `json:"baseUrl"` // API基础地址(自定义或中转站) APIKey string `json:"apiKey" binding:"required"` // API密钥 APIConfig map[string]interface{} `json:"apiConfig"` // 额外配置 Models []CreateModelRequest `json:"models"` // 同时创建的模型列表 } // UpdateProviderRequest 更新AI提供商请求 type UpdateProviderRequest struct { ID uint `json:"id" binding:"required"` ProviderName string `json:"providerName" binding:"required,min=1,max=100"` ProviderType string `json:"providerType" binding:"required,oneof=openai claude gemini custom"` BaseURL string `json:"baseUrl"` APIKey string `json:"apiKey"` // 为空表示不修改 APIConfig map[string]interface{} `json:"apiConfig"` IsEnabled *bool `json:"isEnabled"` IsDefault *bool `json:"isDefault"` SortOrder *int `json:"sortOrder"` } // CreateModelRequest 创建AI模型请求 type CreateModelRequest struct { ProviderID uint `json:"providerId"` // 关联提供商ID ModelName string `json:"modelName" binding:"required,min=1,max=200"` // 模型标识(如 gpt-4o) DisplayName string `json:"displayName"` // 显示名称 ModelType string `json:"modelType" binding:"required,oneof=chat image_gen"` // 模型类型 Config map[string]interface{} `json:"config"` // 模型参数配置 IsEnabled *bool `json:"isEnabled"` } // UpdateModelRequest 更新AI模型请求 type UpdateModelRequest struct { ID uint `json:"id" binding:"required"` ModelName string `json:"modelName" binding:"required,min=1,max=200"` DisplayName string `json:"displayName"` ModelType string `json:"modelType" binding:"required,oneof=chat image_gen"` Config map[string]interface{} `json:"config"` IsEnabled *bool `json:"isEnabled"` } // ProviderListRequest 提供商列表请求 type ProviderListRequest struct { Page int `form:"page" binding:"min=1"` PageSize int `form:"pageSize" binding:"min=1,max=100"` Keyword string `form:"keyword"` } // TestProviderRequest 测试提供商连通性请求 type TestProviderRequest struct { ProviderType string `json:"providerType" binding:"required,oneof=openai claude gemini custom"` BaseURL string `json:"baseUrl"` APIKey string `json:"apiKey" binding:"required"` ModelName string `json:"modelName"` // 可选,用于测试特定模型 } // SetDefaultProviderRequest 设置默认提供商请求 type SetDefaultProviderRequest struct { ProviderID uint `json:"providerId" binding:"required"` } // FetchRemoteModelsRequest 获取远程可用模型列表请求 type FetchRemoteModelsRequest struct { ProviderType string `json:"providerType" binding:"required,oneof=openai claude gemini custom"` BaseURL string `json:"baseUrl"` APIKey string `json:"apiKey" binding:"required"` } // SendTestMessageRequest 发送测试消息请求 type SendTestMessageRequest struct { ProviderType string `json:"providerType" binding:"required,oneof=openai claude gemini custom"` BaseURL string `json:"baseUrl"` APIKey string `json:"apiKey" binding:"required"` ModelName string `json:"modelName" binding:"required"` // 要测试的模型 Message string `json:"message"` // 测试消息内容,为空则使用默认 }