support gemini & claude domain setting (#3638)

This commit is contained in:
rinfx
2026-03-26 11:12:30 +08:00
committed by GitHub
parent 3fc01913cf
commit 231ba1cd23
4 changed files with 71 additions and 8 deletions

View File

@@ -476,6 +476,9 @@ type ProviderConfig struct {
// @Title zh-CN 合并连续同角色消息
// @Description zh-CN 开启后,若请求的 messages 中存在连续的同角色消息(如连续两条 user 消息将其内容合并为一条以满足要求严格轮流交替user→assistant→user→...)的模型服务商的要求。
mergeConsecutiveMessages bool `required:"false" yaml:"mergeConsecutiveMessages" json:"mergeConsecutiveMessages"`
// @Title zh-CN 通用 Provider 域名
// @Description zh-CN 通用的 Provider 服务域名配置,适用于所有 Provider。当配置此字段时将优先使用此域名覆盖默认的硬编码域名。常用于代理服务器场景
providerDomain string `required:"false" yaml:"providerDomain" json:"providerDomain"`
// @Title zh-CN 空内容时提升思考为正文
// @Description zh-CN 开启后,若模型响应只包含 reasoning_content/thinking 而没有正文内容,将 reasoning 内容提升为正文内容返回,避免客户端收到空回复。
promoteThinkingOnEmpty bool `required:"false" yaml:"promoteThinkingOnEmpty" json:"promoteThinkingOnEmpty"`
@@ -496,6 +499,20 @@ func (c *ProviderConfig) GetProtocol() string {
return c.protocol
}
// resolveDomain resolves the domain to use based on priority:
// 1. providerDomain (generic override for all providers)
// 2. provider-specific domain config (e.g., geminiDomain, doubaoDomain)
// 3. default hardcoded domain
func (c *ProviderConfig) resolveDomain(providerSpecificDomain, defaultDomain string) string {
if c.providerDomain != "" {
return c.providerDomain
}
if providerSpecificDomain != "" {
return providerSpecificDomain
}
return defaultDomain
}
func (c *ProviderConfig) GetVllmCustomUrl() string {
return c.vllmCustomUrl
}
@@ -707,6 +724,7 @@ func (c *ProviderConfig) FromJson(json gjson.Result) {
}
}
c.mergeConsecutiveMessages = json.Get("mergeConsecutiveMessages").Bool()
c.providerDomain = json.Get("providerDomain").String()
c.promoteThinkingOnEmpty = json.Get("promoteThinkingOnEmpty").Bool()
c.hiclawMode = json.Get("hiclawMode").Bool()
if c.hiclawMode {