- entity/dto 落地 ref_system_model_id 字段 + ReferenceSystemModelReq/Res - DAO 新增 CountReferences / UpdateReferencesName 辅助方法 - roundtrip 单测验证 DTO→entity 映射 Co-Authored-By: Claude <noreply@anthropic.com>
117 lines
7.1 KiB
Go
117 lines
7.1 KiB
Go
package entity
|
||
|
||
import (
|
||
"model-gateway/consts/model"
|
||
|
||
"gitea.redpowerfuture.com/red-future/common/beans"
|
||
)
|
||
|
||
type modelManageCol struct {
|
||
beans.SQLBaseCol
|
||
ModelSupplier string
|
||
ModelName string
|
||
ModelType string
|
||
BaseURL string
|
||
SystemModel string
|
||
RefSystemModelId string
|
||
HttpMethod string
|
||
ChatModel string
|
||
ResponseType string
|
||
ApiKey string
|
||
Enabled string
|
||
RequestHeadMapping string
|
||
RequestBodyMapping string
|
||
RequestBusinessFieldMapping string
|
||
ResponseMapping string
|
||
ResponseBodyMapping string
|
||
ResponseBusinessFieldMapping string
|
||
MaxConcurrency string
|
||
TokenPredictPrice string
|
||
TokenPredictPriceUnit string
|
||
MaxTokens string
|
||
MinDuration string
|
||
MaxDuration string
|
||
LastFrame string
|
||
}
|
||
|
||
var ModelManageCol = modelManageCol{
|
||
SQLBaseCol: beans.DefSQLBaseCol,
|
||
ModelSupplier: "model_supplier",
|
||
ModelName: "model_name",
|
||
ModelType: "model_type",
|
||
BaseURL: "base_url",
|
||
SystemModel: "system_model",
|
||
RefSystemModelId: "ref_system_model_id",
|
||
HttpMethod: "http_method",
|
||
ChatModel: "chat_model",
|
||
ResponseType: "response_type",
|
||
ApiKey: "api_key",
|
||
Enabled: "enabled",
|
||
RequestHeadMapping: "request_head_mapping",
|
||
RequestBodyMapping: "request_body_mapping",
|
||
RequestBusinessFieldMapping: "request_business_field_mapping",
|
||
ResponseMapping: "response_mapping",
|
||
ResponseBodyMapping: "response_body_mapping",
|
||
ResponseBusinessFieldMapping: "response_business_field_mapping",
|
||
MaxConcurrency: "max_concurrency",
|
||
TokenPredictPrice: "token_predict_price",
|
||
TokenPredictPriceUnit: "token_predict_price_unit",
|
||
MaxTokens: "max_tokens",
|
||
MinDuration: "min_duration",
|
||
MaxDuration: "max_duration",
|
||
LastFrame: "last_frame",
|
||
}
|
||
|
||
type ModelManage struct {
|
||
beans.SQLBaseDO `orm:",inline"`
|
||
ModelSupplier model.SupplierType `orm:"model_supplier" json:"modelSupplier" description:"模型供应商"`
|
||
ModelName string `orm:"model_name" json:"modelName" description:"模型名称"`
|
||
ModelType model.ModelType `orm:"model_type" json:"modelType" description:"模型类型"`
|
||
BaseURL string `orm:"base_url" json:"baseUrl" description:"模型地址"`
|
||
SystemModel *bool `orm:"system_model" json:"systemModel" description:"系统模型"`
|
||
RefSystemModelId int64 `orm:"ref_system_model_id" json:"refSystemModelId" description:"引用的系统模型ID(NULL=非引用行)"`
|
||
HttpMethod string `orm:"http_method" json:"httpMethod" description:"http方法"`
|
||
ChatModel *bool `orm:"chat_model" json:"chatModel" description:"是否聊天模型"`
|
||
ResponseType model.ResponseType `orm:"response_type" json:"responseType" description:"返回类型:1同步,2异步,3流"`
|
||
ApiKey string `orm:"api_key" json:"apiKey" description:"api key"`
|
||
Enabled *bool `orm:"enabled" json:"enabled" description:"是否启用"`
|
||
RequestHeadMapping map[string]string `orm:"request_head_mapping" json:"requestHeadMapping" description:"请求头映射"`
|
||
RequestBodyMapping map[string]any `orm:"request_body_mapping" json:"requestBodyMapping" description:"请求体映射"`
|
||
RequestBusinessFieldMapping map[string]string `orm:"request_business_field_mapping" json:"requestBusinessFieldMapping" description:"请求业务字段映射"`
|
||
ResponseMapping map[string]any `orm:"response_mapping" json:"responseMapping" description:"响应映射"`
|
||
ResponseBodyMapping map[string]string `orm:"response_body_mapping" json:"responseBodyMapping" description:"响应主体映射"`
|
||
ResponseBusinessFieldMapping map[string]string `orm:"response_business_field_mapping" json:"responseBusinessFieldMapping" description:"响应业务字段映射"`
|
||
MaxConcurrency int `orm:"max_concurrency" json:"maxConcurrency" description:"最大并发数"`
|
||
TokenMapping *TokenMapping `orm:"token_mapping" json:"tokenMapping" description:"token映射"`
|
||
AsyncTaskMapping *AsyncTaskMapping `orm:"async_task_mapping" json:"asyncTaskMapping" description:"异步任务映射"`
|
||
TokenPredictPrice float64 `orm:"token_predict_price" json:"tokenPredictPrice" description:"模型Token预估价格"`
|
||
TokenPredictPriceUnit string `orm:"token_predict_price_unit" json:"tokenPredictPriceUnit" description:"模型token预估价格单位(秒,百万Token,千Token,字数)"`
|
||
MaxTokens int `orm:"max_tokens" json:"maxTokens" description:"最大token数"`
|
||
MinDuration int `orm:"min_duration" json:"minDuration" description:"最小时长(秒)"`
|
||
MaxDuration int `orm:"max_duration" json:"maxDuration" description:"最大时长(秒)"`
|
||
LastFrame string `orm:"last_frame" json:"lastFrame" description:"视频的尾帧图像"`
|
||
ErrorMessageMapping map[string]any `orm:"error_message_mapping" json:"errorMessageMapping" description:"错误消息映射"`
|
||
}
|
||
|
||
type TokenMapping struct {
|
||
PromptTokens string `json:"promptTokens" dc:"输入token"`
|
||
CompletionTokens string `json:"completionTokens" dc:"输出token"`
|
||
TotalTokens string `json:"totalTokens" dc:"总token"`
|
||
}
|
||
|
||
type AsyncTaskMapping struct {
|
||
Url string `json:"url" dc:"url"`
|
||
HttpMethod string `json:"httpMethod" dc:"http方法" d:"POST"`
|
||
RequestBodyMapping map[string]any `json:"requestBodyMapping" description:"请求体映射"`
|
||
RequestHeadMapping map[string]string `json:"requestHeadMapping" description:"请求头映射"`
|
||
ResponseMapping map[string]any `json:"responseMapping" description:"响应映射"`
|
||
TaskId string `json:"taskId" dc:"任务id"`
|
||
TaskStatus string `json:"taskStatus" dc:"任务状态"`
|
||
TaskStatusPending string `json:"taskStatusPending" dc:"任务状态-待处理"`
|
||
TaskStatusRunning string `json:"taskStatusRunning" dc:"任务状态-运行中"`
|
||
TaskStatusSuccess string `json:"taskStatusSuccess" dc:"任务状态-成功"`
|
||
TaskStatusFailed string `json:"taskStatusFailed" dc:"任务状态-失败"`
|
||
TaskStatusCancel string `json:"taskStatusCancel" dc:"任务状态-取消"`
|
||
TaskStatusUnknown string `json:"taskStatusUnknown" dc:"任务状态-未知"`
|
||
}
|