Merge branch 'main' of github.com:Wei-Shaw/sub2api
This commit is contained in:
3
.github/workflows/release.yml
vendored
3
.github/workflows/release.yml
vendored
@@ -222,8 +222,9 @@ jobs:
|
|||||||
REPO="${{ github.repository }}"
|
REPO="${{ github.repository }}"
|
||||||
GHCR_IMAGE="ghcr.io/${REPO,,}" # ${,,} converts to lowercase
|
GHCR_IMAGE="ghcr.io/${REPO,,}" # ${,,} converts to lowercase
|
||||||
|
|
||||||
# 获取 tag message 内容
|
# 获取 tag message 内容并转义 Markdown 特殊字符
|
||||||
TAG_MESSAGE='${{ steps.tag_message.outputs.message }}'
|
TAG_MESSAGE='${{ steps.tag_message.outputs.message }}'
|
||||||
|
TAG_MESSAGE=$(echo "$TAG_MESSAGE" | sed 's/\([_*`\[]\)/\\\1/g')
|
||||||
|
|
||||||
# 限制消息长度(Telegram 消息限制 4096 字符,预留空间给头尾固定内容)
|
# 限制消息长度(Telegram 消息限制 4096 字符,预留空间给头尾固定内容)
|
||||||
if [ ${#TAG_MESSAGE} -gt 3500 ]; then
|
if [ ${#TAG_MESSAGE} -gt 3500 ]; then
|
||||||
|
|||||||
@@ -4102,19 +4102,12 @@ func (s *GatewayService) parseSSEUsage(data string, usage *ClaudeUsage) {
|
|||||||
} `json:"usage"`
|
} `json:"usage"`
|
||||||
}
|
}
|
||||||
if json.Unmarshal([]byte(data), &msgDelta) == nil && msgDelta.Type == "message_delta" {
|
if json.Unmarshal([]byte(data), &msgDelta) == nil && msgDelta.Type == "message_delta" {
|
||||||
// output_tokens 总是从 message_delta 获取
|
// message_delta 是推理结束后的最终统计,应完全覆盖 message_start 的数据
|
||||||
|
// 这对于 Claude API 和 GLM 等兼容 API 都是正确的行为
|
||||||
|
usage.InputTokens = msgDelta.Usage.InputTokens
|
||||||
usage.OutputTokens = msgDelta.Usage.OutputTokens
|
usage.OutputTokens = msgDelta.Usage.OutputTokens
|
||||||
|
usage.CacheCreationInputTokens = msgDelta.Usage.CacheCreationInputTokens
|
||||||
// 如果 message_start 中没有值,则从 message_delta 获取(兼容GLM等API)
|
usage.CacheReadInputTokens = msgDelta.Usage.CacheReadInputTokens
|
||||||
if usage.InputTokens == 0 {
|
|
||||||
usage.InputTokens = msgDelta.Usage.InputTokens
|
|
||||||
}
|
|
||||||
if usage.CacheCreationInputTokens == 0 {
|
|
||||||
usage.CacheCreationInputTokens = msgDelta.Usage.CacheCreationInputTokens
|
|
||||||
}
|
|
||||||
if usage.CacheReadInputTokens == 0 {
|
|
||||||
usage.CacheReadInputTokens = msgDelta.Usage.CacheReadInputTokens
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user