package models import "time" // PlatformAgentApi 智能体API管理表: yz_platform_agent_api // 按上游接口存储调用地址、请求协议、密钥列表、模型列表 // Provider 为用户自由填写的上游名称,不做枚举约束 // Protocol 显式指定请求协议,决定拼哪个端点路径与用哪种鉴权头 // ApiKeys 存 JSON 数组,支持同一上游下挂多个账号的密钥,每条可带备注 type PlatformAgentApi struct { ID uint64 `orm:"column(id);pk;auto" json:"id"` Provider string `orm:"column(provider);size(100)" json:"provider"` Protocol string `orm:"column(protocol);size(30);default(chat_completions)" json:"protocol"` BaseURL string `orm:"column(base_url);size(500)" json:"base_url"` UseCustomURL int8 `orm:"column(use_custom_url);default(0)" json:"use_custom_url"` CustomURL string `orm:"column(custom_url);size(500)" json:"custom_url"` ApiKeys string `orm:"column(api_keys);type(text);null" json:"api_keys"` Models string `orm:"column(models);type(text);null" json:"models"` Status int8 `orm:"column(status);default(1)" json:"status"` Remark string `orm:"column(remark);size(500)" json:"remark"` UserID *uint64 `orm:"column(user_id);null" json:"user_id"` UserName *string `orm:"column(user_name);size(100);null" json:"user_name"` IsDeleted int8 `orm:"column(is_deleted);default(0)" json:"is_deleted"` CreateTime time.Time `orm:"column(create_time);auto_now_add;type(datetime)" json:"create_time"` UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"` DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"` } func (m *PlatformAgentApi) TableName() string { return "yz_platform_agent_api" } // EffectiveURL 返回实际生效的接口地址 // 勾选了自定义地址时用 CustomURL,否则用 BaseURL func (m *PlatformAgentApi) EffectiveURL() string { if m.UseCustomURL == 1 && m.CustomURL != "" { return m.CustomURL } return m.BaseURL } // AgentApiKey 单条密钥:密钥本身 + 可选备注(如账号名 mimo198) type AgentApiKey struct { Key string `json:"key"` Remark string `json:"remark"` } // 请求协议枚举,与前端 constants.js 的 PROTOCOLS 保持一致 const ( // AgentProtocolChatCompletions OpenAI Chat Completions API,端点 {base}/chat/completions AgentProtocolChatCompletions = "chat_completions" // AgentProtocolResponses OpenAI Responses API,端点 {base}/responses AgentProtocolResponses = "responses" // AgentProtocolAnthropic Anthropic Messages API,端点 {base}/messages AgentProtocolAnthropic = "anthropic" // AgentProtocolGemini Google Gemini generateContent,端点 {base}/models/{model}:generateContent AgentProtocolGemini = "gemini" // AgentProtocolCustom 自定义:直接把填写的地址当完整端点请求,不追加任何路径 AgentProtocolCustom = "custom" )