mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-04-19 11:18:37 +00:00
feat(token_counter): add mime type extraction for base64 encoded data
This commit is contained in:
@@ -302,6 +302,30 @@ func CountRequestToken(c *gin.Context, meta *types.TokenCountMeta, info *relayco
|
|||||||
file.FileType = types.FileTypeFile
|
file.FileType = types.FileTypeFile
|
||||||
}
|
}
|
||||||
file.MimeType = mineType
|
file.MimeType = mineType
|
||||||
|
} else if strings.HasPrefix(file.OriginData, "data:") {
|
||||||
|
// get mime type from base64 header
|
||||||
|
parts := strings.SplitN(file.OriginData, ",", 2)
|
||||||
|
if len(parts) >= 1 {
|
||||||
|
header := parts[0]
|
||||||
|
// Extract mime type from "data:mime/type;base64" format
|
||||||
|
if strings.Contains(header, ":") && strings.Contains(header, ";") {
|
||||||
|
mimeStart := strings.Index(header, ":") + 1
|
||||||
|
mimeEnd := strings.Index(header, ";")
|
||||||
|
if mimeStart < mimeEnd {
|
||||||
|
mineType := header[mimeStart:mimeEnd]
|
||||||
|
if strings.HasPrefix(mineType, "image/") {
|
||||||
|
file.FileType = types.FileTypeImage
|
||||||
|
} else if strings.HasPrefix(mineType, "video/") {
|
||||||
|
file.FileType = types.FileTypeVideo
|
||||||
|
} else if strings.HasPrefix(mineType, "audio/") {
|
||||||
|
file.FileType = types.FileTypeAudio
|
||||||
|
} else {
|
||||||
|
file.FileType = types.FileTypeFile
|
||||||
|
}
|
||||||
|
file.MimeType = mineType
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user