Merge remote-tracking branch 'origin/upstream/main'

This commit is contained in:
Laisky.Cai
2024-01-03 05:54:05 +00:00
84 changed files with 17983 additions and 59 deletions

View File

@@ -15,6 +15,9 @@ import (
_ "golang.org/x/image/webp"
)
// Regex to match data URL pattern
var dataURLPattern = regexp.MustCompile(`data:image/([^;]+);base64,(.*)`)
func IsImageUrl(url string) (bool, error) {
resp, err := http.Head(url)
if err != nil {
@@ -44,9 +47,13 @@ func GetImageSizeFromUrl(url string) (width int, height int, err error) {
}
func GetImageFromUrl(url string) (mimeType string, data string, err error) {
// openai's image_url support base64 encoded image
if strings.HasPrefix(url, "data:image/jpeg;base64,") {
return "image/jpeg", strings.TrimPrefix(url, "data:image/jpeg;base64,"), nil
// Check if the URL is a data URL
matches := dataURLPattern.FindStringSubmatch(url)
if len(matches) == 3 {
// URL is a data URL
mimeType = "image/" + matches[1]
data = matches[2]
return
}
isImage, err := IsImageUrl(url)