Files
2026-08-27 01:02:09 +08:00

61 lines
2.9 KiB
Go

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"
)