🎨 优化扩展模块,完成ai接入和对话功能
This commit is contained in:
80
server/model/app/request/provider.go
Normal file
80
server/model/app/request/provider.go
Normal file
@@ -0,0 +1,80 @@
|
||||
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"` // 测试消息内容,为空则使用默认
|
||||
}
|
||||
Reference in New Issue
Block a user