81 lines
4.3 KiB
Go
81 lines
4.3 KiB
Go
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"` // 测试消息内容,为空则使用默认
|
||
}
|