| 12345678910111213141516171819202122232425262728 |
- package service
- import (
- "strings"
- "github.com/tidwall/gjson"
- )
- // clampOllamaCloudAnthropicMessagesMaxTokens 是 Anthropic Messages 出站
- // (/v1/messages,含 CC / Responses 桥接与 passthrough)的 max_tokens clamp 钩子,
- // 与 raw CC / Responses 路径共用 cap 配置与实现。判定与出站 URL 组装同源:调用方
- // 传入本次实际选用的 Anthropic 上游 base_url(GetBaseURL 或
- // GetAnthropicProtocolBaseURL,不用 GetOpenAIBaseURL——adaptive 时那是 CC/Responses
- // 地址),与真实出站组装一样先 TrimRight "/"(urlvalidator 与
- // nativeAnthropicTargetURL 同款归一化),仅当其为 ollama.com 且 body 中映射后出站
- // model 为 DeepSeek 系时压到 cap,否则原样返回。
- func clampOllamaCloudAnthropicMessagesMaxTokens(account *Account, baseURL string, body []byte) []byte {
- if account == nil || len(body) == 0 {
- return body
- }
- if !isOllamaCloudBaseURL(strings.TrimRight(strings.TrimSpace(baseURL), "/")) {
- return body
- }
- if !isDeepSeekModel(gjson.GetBytes(body, "model").String()) {
- return body
- }
- return clampOllamaCloudMaxTokens(account, body)
- }
|