🎨 优化扩展模块,完成ai接入和对话功能

This commit is contained in:
2026-02-12 23:12:28 +08:00
parent 4e611d3a5e
commit 572f3aa15b
779 changed files with 194400 additions and 3136 deletions

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