Add projects
This commit is contained in:
parent
2d3a9ad623
commit
8b607dd700
1802 changed files with 503346 additions and 2 deletions
43
backend/internal/translator/common/file_data.go
Normal file
43
backend/internal/translator/common/file_data.go
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
package common
|
||||
|
||||
import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/router-for-me/CLIProxyAPI/v7/internal/misc"
|
||||
)
|
||||
|
||||
// NormalizeOpenAIFileData returns the MIME type and raw base64 payload for OpenAI file content.
|
||||
func NormalizeOpenAIFileData(filename, fallbackMIMEType, fileData string) (mimeType, data string, ok bool) {
|
||||
if fileData == "" {
|
||||
return "", "", false
|
||||
}
|
||||
|
||||
if fallbackMIMEType == "" {
|
||||
ext := strings.ToLower(strings.TrimPrefix(filepath.Ext(filename), "."))
|
||||
fallbackMIMEType = misc.MimeTypes[ext]
|
||||
}
|
||||
const dataURLPrefix = "data:"
|
||||
if len(fileData) < len(dataURLPrefix) || !strings.EqualFold(fileData[:len(dataURLPrefix)], dataURLPrefix) {
|
||||
if fallbackMIMEType == "" {
|
||||
return "", "", false
|
||||
}
|
||||
return fallbackMIMEType, fileData, true
|
||||
}
|
||||
|
||||
metadata, payload, found := strings.Cut(fileData[len(dataURLPrefix):], ",")
|
||||
if !found || payload == "" {
|
||||
return "", "", false
|
||||
}
|
||||
fields := strings.Split(metadata, ";")
|
||||
mimeType = strings.TrimSpace(fields[0])
|
||||
if mimeType == "" {
|
||||
return "", "", false
|
||||
}
|
||||
for _, field := range fields[1:] {
|
||||
if strings.EqualFold(strings.TrimSpace(field), "base64") {
|
||||
return mimeType, payload, true
|
||||
}
|
||||
}
|
||||
return "", "", false
|
||||
}
|
||||
Loading…
Reference in a new issue