CaIon
35d0704640
Merge branch 'origin/main' into nightly
...
Resolve 4 conflicts:
- relay/compatible_handler.go: accept main's refactor (postConsumeQuota -> service.PostTextConsumeQuota)
- service/quota.go: accept main's PostClaudeConsumeQuota deletion, keep nightly's tiered billing in PostWssConsumeQuota and PostAudioConsumeQuota
- web/src/i18n/locales/{en,zh-CN}.json: merge both sets of translation keys
Post-merge integration:
- Add tiered billing (TryTieredSettle, InjectTieredBillingInfo) to PostTextConsumeQuota
- Update tool pricing calls to use nightly's generic GetToolPriceForModel/GetToolPrice API
2026-04-02 00:39:13 +08:00
Calcium-Ion
7efb1922fe
Merge pull request #3526 from feitianbubu/pr/e560265b6e57aa7b95bc98cb53397ef0a3082d9d
...
支持wan2.7生图-wan2.7-image
2026-04-02 00:15:04 +08:00
Calcium-Ion
89fe99f3bd
Merge pull request #3512 from imlhb/patch-2
...
fix: prevent double-counting of image count n in billing
2026-04-02 00:14:39 +08:00
feitianbubu
e5b5331d3b
feat: wan 2.7 support N for gen images number
2026-04-01 17:39:50 +08:00
feitianbubu
18373c6eac
feat: add wan 2.7
2026-04-01 17:39:11 +08:00
CaIon
ab99c30884
fix: move image count n to OtherRatio to prevent double-counting
...
The previous commit commented out AddOtherRatio("n") in the Ali
adaptor to fix double-counting but this could cause billing evasion
when n is specified via extra["parameters"] instead of request.N.
Root cause: ImagePriceRatio in GetTokenCountMeta() already included
n, AND channel adaptors added OtherRatio("n"), resulting in n²
billing.
Proper fix:
- Remove n from ImagePriceRatio (keep sizeRatio * qualityRatio only)
- In ImageHelper, add default OtherRatio("n") when adaptor hasn't
set one; set fallback tokens to 1 (base unit)
- Restore Ali adaptor's AddOtherRatio("n") — it uses actual upstream
parameters/response count, preventing billing evasion
2026-03-31 23:58:10 +08:00
CaIon
d22f889e5d
fix(xAI): set MaxTokens to nil when MaxCompletionTokens is 0 for grok-3-mini model
2026-03-31 19:16:16 +08:00
刘泓宾
53aeee4ff7
Comment out price data adjustment logic
...
Comment out code that modifies price data based on image count.
测试发现,如果是接入阿里百炼平台的qwen-image-2.0系列模型,这边计费的时候会出现 0.2*n*倍率*n的情况,最前面的0.2*n会直接显示为模型价格。
例如:
日志详情 模型价格 $0.600000,专属倍率 0.3
其他详情 大小 1080*1920, 品质 standard, 生成数量 3, 其他倍率 n: 3.000000
计费过程 模型价格:$0.600000 * 专属倍率:0.3 = $0.180000
2026-03-31 17:12:06 +08:00
CaIon
5238f279db
feat: record stream interruption reasons via StreamStatus
...
Publish Docker image (Multi Registries, native amd64+arm64) / Build & push (amd64) [native] (push) Has been cancelled
Publish Docker image (Multi Registries, native amd64+arm64) / Build & push (arm64) [native] (push) Has been cancelled
Publish Docker image (Multi Registries, native amd64+arm64) / Create multi-arch manifests (Docker Hub) (push) Has been cancelled
Build Electron App / build (windows-latest) (push) Has been cancelled
Build Electron App / release (push) Has been cancelled
Release (Linux, macOS, Windows) / Linux Release (push) Has been cancelled
Release (Linux, macOS, Windows) / macOS Release (push) Has been cancelled
Release (Linux, macOS, Windows) / Windows Release (push) Has been cancelled
- Add StreamStatus type (relay/common) to track stream end reason
(done/timeout/client_gone/scanner_error/eof/panic/ping_fail) and
accumulate soft errors during streaming via sync.Once + sync.Mutex.
- Add StreamResult (relay/helper) as the callback interface: adapters
call sr.Error() for soft errors, sr.Stop() for fatal, sr.Done() for
normal completion. No early-return problem — multiple errors per chunk
are naturally supported.
- Refactor StreamScannerHandler callback from func(string) bool to
func(string, *StreamResult). All 9 channel adapters updated.
- Write stream_status into log other JSON field (admin-only) with
status ok/error, end_reason, error_count, and error messages.
- Frontend: display stream status in log detail expansion for admins.
2026-03-31 16:54:39 +08:00
feitianbubu
62b9aaa520
feat: prevent metadata from overriding model fields
2026-03-27 15:31:41 +08:00
Calcium-Ion
0191a68d4e
Merge pull request #3400 from seefs001/fix/openai-usage
...
refactor: optimize billing flow for OpenAI-to-Anthropic convert
2026-03-23 15:03:57 +08:00
Calcium-Ion
763c3ff709
Merge pull request #3331 from seefs001/fix/claude-beta-query
...
fix: apply forced beta query at final upstream URL stage
2026-03-23 15:03:36 +08:00
Seefs
9ecad90652
refactor: optimize billing flow for OpenAI-to-Anthropic convert
2026-03-23 14:22:12 +08:00
wenyifan
2c3ae32c8e
fix map
2026-03-20 16:48:04 +08:00
wenyifan
498199b37d
fix code quality
2026-03-20 16:38:48 +08:00
wenyifan
ff29900f30
feat: Add support for counting cache-hit tokens in llama.cpp OpenAI-Compatible API
2026-03-20 16:10:18 +08:00
Seefs
e520977efc
fix: apply forced beta query at final upstream URL stage
2026-03-19 15:49:50 +08:00
CaIon
c5405b2a12
feat: add billing expression system documentation and enhance tiered billing logic
...
- Introduced a new rule for the Billing Expression System, emphasizing the importance of reading `pkg/billingexpr/expr.md` for dynamic billing.
- Updated the billing expression logic to support new variables and improved handling of image and audio tokens.
- Enhanced the tiered billing functionality with versioning support for expressions and refined quota calculations.
- Added tests to validate the new billing expression features and ensure correctness in pricing calculations.
2026-03-17 16:59:25 +08:00
CaIon
da8a52f50a
feat: add conditional setting for HTTP headers in OpenRouter channel type
2026-03-12 19:05:30 +08:00
Seefs
24ec27f844
Merge pull request #3221 from RedwindA/chore/updateModelList
...
Publish Docker image (Multi Registries, native amd64+arm64) / Build & push (amd64) [native] (push) Has been cancelled
Publish Docker image (Multi Registries, native amd64+arm64) / Build & push (arm64) [native] (push) Has been cancelled
Publish Docker image (Multi Registries, native amd64+arm64) / Create multi-arch manifests (Docker Hub) (push) Has been cancelled
Build Electron App / build (windows-latest) (push) Has been cancelled
Build Electron App / release (push) Has been cancelled
Release (Linux, macOS, Windows) / Linux Release (push) Has been cancelled
Release (Linux, macOS, Windows) / macOS Release (push) Has been cancelled
Release (Linux, macOS, Windows) / Windows Release (push) Has been cancelled
chore: update model lists for frequently used channels
2026-03-12 15:13:03 +08:00
CaIon
5e9cc681f5
feat: update header title for OpenRouter channel type
2026-03-12 15:05:58 +08:00
RedwindA
7e68e1b36a
chore: update model lists for frequently used channels
2026-03-11 23:39:18 +08:00
Calcium-Ion
3b5d1daf39
Merge pull request #3148 from feitianbubu/pr/d8a25d36204224f8a4248b0ab3b03ba703796ea3
...
fix: kling risk fail return openAIVideo error
2026-03-09 22:19:04 +08:00
CaIon
fb76abb329
fix: update OpenAI request fields to use json.RawMessage for dynamic data handling
2026-03-06 19:10:42 +08:00
feitianbubu
2e20ede2a0
fix: kling risk fail return openAIVideo error
2026-03-06 16:32:52 +08:00
Calcium-Ion
728607b8f5
Merge pull request #2769 from feitianbubu/pr/3d0aaa75866f8d958a777a7e7ac8c1e4b5b3e537
...
feat: kling cost quota support use FinalUnitDeduction as totalToken
2026-03-06 11:46:59 +08:00
Seefs
cd1d43ae47
Merge pull request #3120 from nekohy/main
...
feats: repair the thinking of claude to openrouter convert
2026-03-05 18:10:46 +08:00
feitianbubu
42500b3317
fix: fetch model add header passthrough rule key check
2026-03-05 17:49:36 +08:00
Nekohy
a4629f2630
feats: repair the thinking of claude to openrouter convert
2026-03-05 06:12:48 +08:00
CaIon
6f818574ab
fix: improve error message for unsupported image generation models
2026-03-04 00:36:03 +08:00
Seefs
618fce621b
Revert "fix: aws text content blocks must be non-empty"
2026-03-02 19:43:00 +08:00
Seefs
04954f1058
Revert "Fix/aws non empty text"
2026-03-02 19:40:53 +08:00
Calcium-Ion
0d81053e56
fix: tool responses ( #3080 )
2026-03-02 19:23:50 +08:00
Seefs
7cc8ec2c91
fix: tool responses
2026-03-02 19:22:37 +08:00
Seefs
ad326beb10
Merge pull request #3066 from seefs001/fix/aws-header-override
...
Fix/aws header override
2026-03-02 18:54:56 +08:00
Seefs
2df604bbad
fix: default empty input_json_delta arguments to {} for tool call parsing
2026-03-02 15:51:55 +08:00
Seefs
da11617776
fix: preserve tool_use on malformed tool arguments to keep tool_result pairing valid
2026-03-02 15:41:03 +08:00
Seefs
4d6f9a94a3
fix: aws text content blocks must be non-empty
2026-03-02 15:31:37 +08:00
Seefs
2cf3c1836c
fix: preserve explicit zero values in native relay requests
2026-03-01 15:47:03 +08:00
CaIon
e22f59e449
feat(gemini): update request structures for Veo predictLongRunning
...
Publish Docker image (Multi Registries, native amd64+arm64) / Build & push (amd64) [native] (push) Has been cancelled
Publish Docker image (Multi Registries, native amd64+arm64) / Build & push (arm64) [native] (push) Has been cancelled
Publish Docker image (Multi Registries, native amd64+arm64) / Create multi-arch manifests (Docker Hub) (push) Has been cancelled
- Refactored the request URL and body construction methods to align with the Veo predictLongRunning endpoint.
- Introduced new data structures for Veo instances and parameters, replacing the previous Gemini video generation configurations.
- Updated the Vertex adaptor to utilize the new Veo request payload format.
2026-02-28 18:42:54 +08:00
Seefs
8103b4b1a7
Merge pull request #3009 from seefs001/feature/improve-param-override
...
feat: improve channel override ui/ux
2026-02-28 18:19:40 +08:00
CaIon
32d9ae1f83
feat(gemini): implement video generation configuration and billing estimation
...
- Added Gemini video generation configuration structures and payloads.
- Introduced functions for parsing and resolving video duration and resolution from metadata.
- Enhanced the Vertex adaptor to support Gemini video generation requests and billing estimation based on duration and resolution.
- Updated model pricing settings for new Gemini video models.
2026-02-28 17:37:08 +08:00
Seefs
a955d4102d
refactor(override): simplify header overrides to a lowercase single map
2026-02-25 17:24:18 +08:00
Seefs
3034fb8899
fix: merge runtime and channel header overrides, skip missing source headers
2026-02-25 16:12:34 +08:00
Seefs
58fcd9cbca
fix pass_headers
2026-02-25 15:39:49 +08:00
Seefs
0f09dbda2b
Merge branch 'upstream-main' into feature/improve-param-override
...
# Conflicts:
# relay/channel/api_request_test.go
# relay/common/override_test.go
# web/src/components/table/channels/modals/EditChannelModal.jsx
2026-02-25 13:39:54 +08:00
CaIon
8f14687d61
fix: improve multipart form data handling by detecting content type. fix #3007
Publish Docker image (Multi Registries, native amd64+arm64) / Build & push (amd64) [native] (push) Has been cancelled
Publish Docker image (Multi Registries, native amd64+arm64) / Build & push (arm64) [native] (push) Has been cancelled
Publish Docker image (Multi Registries, native amd64+arm64) / Create multi-arch manifests (Docker Hub) (push) Has been cancelled
2026-02-25 12:51:46 +08:00
hekx
b32e1c9ef1
fix: skip Accept-Encoding during header passthrough ( #2214 )
2026-02-24 09:58:50 +08:00
Calcium-Ion
053ee18637
Merge pull request #2959 from seefs001/fix/gemini-tool-use-token
...
Publish Docker image (Multi Registries, native amd64+arm64) / Build & push (amd64) [native] (push) Has been cancelled
Publish Docker image (Multi Registries, native amd64+arm64) / Build & push (arm64) [native] (push) Has been cancelled
Publish Docker image (Multi Registries, native amd64+arm64) / Create multi-arch manifests (Docker Hub) (push) Has been cancelled
fix: unify usage mapping and include toolUsePromptTokenCount
2026-02-22 23:35:09 +08:00
Calcium-Ion
f8f3ee29de
Merge pull request #2960 from seefs001/feature/minimax-native-claude
...
feat: minimax native /v1/messages
2026-02-22 23:32:53 +08:00