Commit Graph

1292 Commits

Author SHA1 Message Date
Seefs
76164e951e fix: codex Unsupported parameter: max_output_tokens 2026-01-17 21:42:28 +08:00
Seefs
1d8a11b37a fix: for chat-based calls to the Claude model, tagging is required. Using Claude's rendering logs, the two approaches handle input rendering differently. 2026-01-15 15:28:02 +08:00
Seefs
ea802f2297 fix: openAI function to gemini function field adjusted to whitelist mode 2026-01-15 13:26:42 +08:00
Seefs
e5cb9ac03a feat: codex channel (#2652)
* feat: codex channel

* feat: codex channel

* feat: codex oauth flow

* feat: codex refresh cred

* feat: codex usage

* fix: codex err message detail

* fix: codex setting ui

* feat: codex refresh cred task

* fix: import err

* fix: codex store must be false

* fix: chat -> responses tool call

* fix: chat -> responses tool call
2026-01-14 22:29:43 +08:00
Seefs
ca11fcbabd Merge pull request #2632 from feitianbubu/pr/add-doubao-video-1.5 2026-01-14 16:33:30 +08:00
Seefs
6169f46cc6 Merge pull request #2627 from seefs001/feature/channel-test-param-override
feat: channel testing supports parameter overriding
2026-01-12 18:49:05 +08:00
Seefs
138fcd2327 fix: clean propertyNames for gemini function 2026-01-11 23:34:18 +08:00
Seefs
62b796fa6a feat: /v1/chat/completion -> /v1/response (#2629)
* feat: /v1/chat/completion -> /v1/response
2026-01-11 21:38:07 +08:00
feitianbubu
a4f28f0b79 feat: add doubao video 1.5 2026-01-10 22:23:31 +08:00
Seefs
1a5c8f3c35 Merge pull request #2615 from RedwindA/feat/GeminiNativeFetchModels
fix(gemini): fetch model list via native v1beta/models endpoint
2026-01-09 23:54:36 +08:00
RedwindA
c975b4cfa8 fix(minimax): 添加 MiniMax-M2 系列模型到 ModelList 2026-01-09 20:46:47 +08:00
RedwindA
07e77b3c6f refactor(gemini): 更新 GeminiModelsResponse 以使用 dto.GeminiModel 类型 2026-01-09 18:08:11 +08:00
RedwindA
c2464fc877 fix(gemini): fetch model list via native v1beta/models endpoint
Use the native Gemini Models API (/v1beta/models) instead of the OpenAI-compatible
path when listing models for Gemini channels, improving compatibility with
third-party Gemini-format providers that don't implement OpenAI routes.

- Add paginated model listing with timeout and optional proxy support
- Select an enabled key for multi-key Gemini channels
2026-01-09 18:00:40 +08:00
郑伯涛
aed1900364 fix(task): 修复使用 auto 分组时 Task Relay 不记录日志和不扣费的问题
问题描述:
- 使用 auto 分组的令牌调用 /v1/videos 等 Task 接口时,虽然任务能成功创建,
  但使用日志不显示记录,且不会扣费

根本原因:
- Distribute 中间件在选择渠道后,会将实际选中的分组存储在 ContextKeyAutoGroup 中
- 但 RelayTaskSubmit 函数没有从 context 中读取这个值来更新 info.UsingGroup
- 导致 info.UsingGroup 始终是 "auto" 而不是实际选中的分组(如 "sora2逆")
- 当 auto 分组的倍率配置为 0 时,quota 计算结果为 0
- 日志记录条件 "if quota != 0" 不满足,导致日志不记录、不扣费

修复方案:
- 在 RelayTaskSubmit 函数中计算分组倍率之前,添加从 ContextKeyAutoGroup
  获取实际分组的逻辑
- 使用安全的类型断言,避免潜在的 panic 风险

影响范围:
- 仅影响 Task Relay 流程(/v1/videos, /suno, /kling 等接口)
- 不影响使用具体分组令牌的调用
- 不影响其他 Relay 类型(chat/completions 等已有类似处理逻辑)
2026-01-06 00:16:50 +08:00
Seefs
5f37a1e97c fix: fix the proxyURL is empty, not using the default HTTP client configuration && the AWS calling side did not apply the relay timeout. 2026-01-05 17:56:24 +08:00
Calcium-Ion
177553af37 Merge pull request #2578 from xyfacai/fix/gemini-mimetype
fix: 修复 gemini 文件类型不支持 image/jpg
2026-01-04 22:19:16 +08:00
Xyfacai
5ed4583c0c fix: 修复 gemini 文件类型不支持 image/jpg 2026-01-04 22:09:03 +08:00
Seefs
1519e97bc6 Merge pull request #2550 from shikaiwei1/patch-2 2026-01-04 18:11:46 +08:00
Seefs
6b1f8b84c6 Merge pull request #2568 from seefs001/feature/channel_override_trim_prefix 2026-01-03 12:38:32 +08:00
Seefs
67ba913b44 feat: add support for Doubao /v1/responses (#2567)
* feat: add support for Doubao /v1/responses
2026-01-03 12:35:35 +08:00
Seefs
817da8d73c feat: add parameter coverage for the operations: copy, trim_prefix, trim_suffix, ensure_prefix, ensure_suffix, trim_space, to_lower, to_upper, replace, and regex_replace 2026-01-03 10:27:16 +08:00
Seefs
43c671b8b3 Merge pull request #2393 from prnake/fix-claude-haiku 2026-01-03 09:36:42 +08:00
Seefs
3510b3e6fc Merge pull request #2532 from feitianbubu/pr/620211e02bd55545f0fa4568f3d55c3b4d7f3305 2026-01-03 09:36:17 +08:00
CaIon
d06915c30d feat(ratio): add functions to check for audio ratios and clean up unused code 2025-12-31 21:29:10 +08:00
CaIon
23a68137ad feat(adaptor): update resolution handling for wan2.6 model 2025-12-31 00:44:06 +08:00
CaIon
2a5b2add9a refactor(image): remove unnecessary logging in oaiImage2Ali function 2025-12-31 00:23:19 +08:00
John Chen
ab81d6e444 fix: 修复智普、Moonshot渠道在stream=true时无法拿到cachePrompt的统计数据。
根本原因:
1. 在OaiStreamHandler流式处理函数中,调用applyUsagePostProcessing(info, usage, nil)时传入的responseBody为nil,导致无法从响应体中提取缓存tokens。
2. 两个渠道的cached_tokens位置不同:
  - 智普:标准位置 usage.prompt_tokens_details.cached_tokens
  - Moonshot:非标准位置 choices[].usage.cached_tokens

处理方案:
1. 传递body信息到applyUsagePostProcessing中
2. 拆分智普和Moonshot的解析,并为Moonshot单独写一个解析方法。
2025-12-30 17:38:32 +08:00
CaIon
48d358faec feat(adaptor): 新适配百炼多种图片生成模型
- wan2.6系列生图与编辑,适配多图生成计费
- wan2.5系列生图与编辑
- z-image-turbo生图,适配prompt_extend计费
2025-12-29 23:00:17 +08:00
Seefs
8063897998 fix: glm 4.7 finish reason (#2545) 2025-12-29 19:41:15 +08:00
Seefs
24d359cf40 feat: Add "wan2.6-i2v" video ratio configuration to Ali adaptor. 2025-12-29 14:13:33 +08:00
Seefs
725d61c5d3 feat: ionet integrate (#2105)
* wip ionet integrate

* wip ionet integrate

* wip ionet integrate

* ollama wip

* wip

* feat: ionet integration & ollama manage

* fix merge conflict

* wip

* fix: test conn cors

* wip

* fix ionet

* fix ionet

* wip

* fix model select

* refactor: Remove `pkg/ionet` test files and update related Go source and web UI model deployment components.

* feat: Enhance model deployment UI with styling improvements, updated text, and a new description component.

* Revert "feat: Enhance model deployment UI with styling improvements, updated text, and a new description component."

This reverts commit 8b75cb5bf0d1a534b339df8c033be9a6c7df7964.
2025-12-28 15:55:35 +08:00
Your Name
b6a25d9f0f feat(gemini): 支持 tool_choice 参数转换,优化错误处理 2025-12-27 18:33:09 +08:00
RedwindA
1de78f8749 feat: map OpenAI developer role to Gemini system instructions 2025-12-27 02:52:33 +08:00
feitianbubu
37a1882798 fix: kling correct fail reason 2025-12-26 16:35:46 +08:00
papersnake
2c2dfea60f Merge branch 'QuantumNous:main' into fix-claude-haiku 2025-12-26 16:23:34 +08:00
Calcium-Ion
654bb10b45 Merge pull request #2460 from seefs001/feature/gemini-flash-minial
fix(gemini): handle minimal reasoning effort budget
2025-12-26 13:57:56 +08:00
Calcium-Ion
0b1a562df9 Merge pull request #2477 from 1420970597/fix/anthropic-cache-billing
fix: 修复 Anthropic 渠道缓存计费错误
2025-12-24 16:59:23 +08:00
Seefs
a0c3d37d66 Merge pull request #2493 from shikaiwei1/patch-1 2025-12-24 16:52:24 +08:00
feitianbubu
3652dfdbd5 fix: check claudeResponse delta StopReason nil point 2025-12-24 11:54:23 +08:00
John Chen
dbaba87c39 为Moonshot添加缓存tokens读取逻辑
为Moonshot添加缓存tokens读取逻辑。其与智普V4的逻辑相同,所以共用逻辑
2025-12-22 17:05:16 +08:00
Seefs
28f7a4feef fix: 在Vertex Adapter过滤content[].part[].functionResponse.id 2025-12-21 17:22:04 +08:00
Seefs
5a64ae2a29 fix: 模型设置增加针对Vertex渠道过滤content[].part[].functionResponse.id的选项,默认启用 2025-12-21 17:09:49 +08:00
长安
0a2f12c04e fix: 修复 Anthropic 渠道缓存计费错误
## 问题描述

当使用 Anthropic 渠道通过 `/v1/chat/completions` 端点调用且启用缓存功能时,
计费逻辑错误地减去了缓存 tokens,导致严重的收入损失(94.5%)。

## 根本原因

不同 API 的 `prompt_tokens` 定义不同:

- **Anthropic API**: `input_tokens` 字段已经是纯输入 tokens(不包含缓存)
- **OpenAI API**: `prompt_tokens` 字段包含所有 tokens(包含缓存)
- **OpenRouter API**: `prompt_tokens` 字段包含所有 tokens(包含缓存)

当前 `postConsumeQuota` 函数对所有渠道都减去缓存 tokens,这对 Anthropic
渠道是错误的,因为其 `input_tokens` 已经不包含缓存。

## 修复方案

在 `relay/compatible_handler.go` 的 `postConsumeQuota` 函数中,添加渠道类型判断:

```go
if relayInfo.ChannelType != constant.ChannelTypeAnthropic {
    baseTokens = baseTokens.Sub(dCacheTokens)
}
```

只对非 Anthropic 渠道减去缓存 tokens。

## 影响分析

###  不受影响的场景

1. **无缓存调用**(所有渠道)
   - cache_tokens = 0
   - 减去 0 = 不减去
   - 结果:完全一致

2. **OpenAI/OpenRouter 渠道 + 缓存**
   - 继续减去缓存(因为 ChannelType != Anthropic)
   - 结果:完全一致

3. **Anthropic 渠道 + /v1/messages 端点**
   - 使用 PostClaudeConsumeQuota(不修改)
   - 结果:完全不受影响

###  修复的场景

4. **Anthropic 渠道 + /v1/chat/completions + 缓存**
   - 修复前:错误地减去缓存,导致 94.5% 收入损失
   - 修复后:不减去缓存,计费正确

## 验证数据

以实际记录 143509 为例:

| 项目 | 修复前 | 修复后 | 差异 |
|------|--------|--------|------|
| Quota | 10,489 | 191,330 | +180,841 |
| 费用 | ¥0.020978 | ¥0.382660 | +¥0.361682 |
| 收入恢复 | - | - | **+1724.1%** |

## 测试建议

1. 测试 Anthropic 渠道 + 缓存场景
2. 测试 OpenAI 渠道 + 缓存场景(确保不受影响)
3. 测试无缓存场景(确保不受影响)

## 相关 Issue

修复 Anthropic 渠道使用 prompt caching 时的计费错误。
2025-12-20 14:17:12 +08:00
Seefs
da24a165d0 fix(gemini): handle minimal reasoning effort budget
- Add minimal case to clampThinkingBudgetByEffort to avoid defaulting to full thinking budget
2025-12-18 08:10:46 +08:00
t0ng7u
8e3f9b1faa 🛡️ fix: prevent OOM on large/decompressed requests; skip heavy prompt meta when token count is disabled
Clamp request body size (including post-decompression) to avoid memory exhaustion caused by huge payloads/zip bombs, especially with large-context Claude requests. Add a configurable `MAX_REQUEST_BODY_MB` (default `32`) and document it.

- Enforce max request body size after gzip/br decompression via `http.MaxBytesReader`
- Add a secondary size guard in `common.GetRequestBody` and cache-safe handling
- Return **413 Request Entity Too Large** on oversized bodies in relay entry
- Avoid building large `TokenCountMeta.CombineText` when both token counting and sensitive check are disabled (use lightweight meta for pricing)
- Update READMEs (CN/EN/FR/JA) with `MAX_REQUEST_BODY_MB`
- Fix a handful of vet/formatting issues encountered during the change
- `go test ./...` passes
2025-12-16 17:00:19 +08:00
CaIon
7cae4a640b fix(audio): correct TotalTokens calculation for accurate usage reporting 2025-12-13 17:49:57 +08:00
CaIon
e36e2e1b69 feat(audio): enhance audio request handling with token type detection and streaming support 2025-12-13 17:24:23 +08:00
CaIon
21fca238bf refactor(error): replace dto.OpenAIError with types.OpenAIError for consistency 2025-12-13 16:43:57 +08:00
CaIon
b58fa3debc fix(helper): improve error handling in FlushWriter and related functions 2025-12-13 13:29:21 +08:00
CaIon
1c167c1068 refactor(auth): replace direct token group setting with context key retrieval 2025-12-13 01:38:12 +08:00