package entity import "gitea.redpowerfuture.com/red-future/common/beans" type modelGatewayModelCol struct { beans.SQLBaseCol ModelName string ModelType string BaseURL string HttpMethod string HeadMsg string FormJSON string RequestMapping string ResponseMapping string RequiredFields string IsPrivate string IsChatModel string CallMode string ApiKey string Enabled string MaxConcurrency string TimeoutSeconds string RetryTimes string AutoCleanSeconds string IsOwner string OperatorName string TokenConfig string ExtendMapping string QueryConfig string StreamConfig string FirstFrame string LastFrame string BillingConfig string } var ModelGatewayModelCol = modelGatewayModelCol{ SQLBaseCol: beans.DefSQLBaseCol, ModelName: "model_name", ModelType: "model_type", BaseURL: "base_url", HttpMethod: "http_method", HeadMsg: "head_msg", FormJSON: "form_json", RequestMapping: "request_mapping", ResponseMapping: "response_mapping", RequiredFields: "required_fields", IsPrivate: "is_private", IsChatModel: "is_chat_model", CallMode: "call_mode", ApiKey: "api_key", Enabled: "enabled", MaxConcurrency: "max_concurrency", TimeoutSeconds: "timeout_seconds", RetryTimes: "retry_times", AutoCleanSeconds: "auto_clean_seconds", IsOwner: "is_owner", OperatorName: "operator_name", TokenConfig: "token_config", ExtendMapping: "extend_mapping", QueryConfig: "query_config", StreamConfig: "stream_config", FirstFrame: "first_frame", LastFrame: "last_frame", BillingConfig: "billing_config", } type ModelGatewayModel struct { beans.SQLBaseDO `orm:",inline"` ModelName string `orm:"model_name" json:"modelName"` ModelType int `orm:"model_type" json:"modelType"` BaseURL string `orm:"base_url" json:"baseUrl"` HttpMethod string `orm:"http_method" json:"httpMethod"` HeadMsg map[string]any `orm:"head_msg" json:"headMsg"` Form []Form `orm:"form_json" json:"form"` RequestMapping map[string]any `orm:"request_mapping" json:"requestMapping"` ResponseMapping map[string]any `orm:"response_mapping" json:"responseMapping"` RequiredFields []string `orm:"required_fields" json:"requiredFields"` IsPrivate *int `orm:"is_private" json:"isPrivate"` IsChatModel *int `orm:"is_chat_model" json:"isChatModel"` CallMode *int `orm:"call_mode" json:"callMode"` ApiKey string `orm:"api_key" json:"apiKey"` Enabled *int `orm:"enabled" json:"enabled"` MaxConcurrency int `orm:"max_concurrency" json:"maxConcurrency"` TimeoutSeconds int `orm:"timeout_seconds" json:"timeoutSeconds"` RetryTimes int `orm:"retry_times" json:"retryTimes"` AutoCleanSeconds int `orm:"auto_clean_seconds" json:"autoCleanSeconds"` IsOwner *int `orm:"is_owner" json:"isOwner"` OperatorName string `orm:"operator_name" json:"operatorName"` TokenConfig map[string]any `orm:"token_config" json:"tokenConfig"` ExtendMapping map[string]any `orm:"extend_mapping" json:"extendMapping"` QueryConfig map[string]any `orm:"query_config" json:"queryConfig"` StreamConfig map[string]any `orm:"stream_config" json:"streamConfig"` FirstFrame string `orm:"first_frame" json:"firstFrame"` LastFrame string `orm:"last_frame" json:"lastFrame"` BillingConfig map[string]any `orm:"billing_config" json:"billingConfig"` } type Form struct { Key string `json:"key"` // 字段名 Value any `json:"value"` // 值 Label string `json:"label"` // 标签 Type string `json:"type"` // 类型:string / number / boolean / select / radio / upload / json / array DefaultValue any `json:"defaultValue"` // 默认值 Required bool `json:"required"` // 是否必填 IsForm bool `json:"isForm"` // 是否作为表单(用作工作流展示) Options []map[string]any `json:"options"` // 选项(下拉/单选) Role string `json:"role"` FieldConstraint FieldConstraint `json:"fieldConstraint"` // 字段约束 } type FieldConstraint struct { // 字符串校验 MaxLength int `json:"maxLength"` // 最大长度 MinLength int `json:"minLength"` // 最小长度 // 数字校验 NumberType string `json:"numberType"` // 数字类型:integer / float / positiveInteger / positiveFloat / negativeInteger / negativeFloat Min any `json:"min"` // 最小值 Max any `json:"max"` // 最大值 // 文件上传校验 MaxSize int `json:"maxSize"` // 最大文件(MB) MaxCount int `json:"maxCount"` // 最大上传数量 Accept string `json:"accept"` // 允许格式(逗号分隔) } const ( ResponseBody = "content" //返回主体(必填) TotalTokens = "total_tokens" //总token数 )