feat: add checks for non-empty URLs in file metadata processing

This commit is contained in:
CaIon
2025-08-15 19:10:40 +08:00
parent 28bd31a30b
commit c63b6b3ef8

View File

@@ -115,6 +115,7 @@ func (r *GeneralOpenAIRequest) GetTokenCountMeta() *types.TokenCountMeta {
if m.Type == ContentTypeImageURL { if m.Type == ContentTypeImageURL {
imageUrl := m.GetImageMedia() imageUrl := m.GetImageMedia()
if imageUrl != nil { if imageUrl != nil {
if imageUrl.Url != "" {
meta := &types.FileMeta{ meta := &types.FileMeta{
FileType: types.FileTypeImage, FileType: types.FileTypeImage,
} }
@@ -122,6 +123,7 @@ func (r *GeneralOpenAIRequest) GetTokenCountMeta() *types.TokenCountMeta {
meta.Detail = imageUrl.Detail meta.Detail = imageUrl.Detail
fileMeta = append(fileMeta, meta) fileMeta = append(fileMeta, meta)
} }
}
} else if m.Type == ContentTypeInputAudio { } else if m.Type == ContentTypeInputAudio {
inputAudio := m.GetInputAudio() inputAudio := m.GetInputAudio()
if inputAudio != nil { if inputAudio != nil {
@@ -142,7 +144,7 @@ func (r *GeneralOpenAIRequest) GetTokenCountMeta() *types.TokenCountMeta {
} }
} else if m.Type == ContentTypeVideoUrl { } else if m.Type == ContentTypeVideoUrl {
videoUrl := m.GetVideoUrl() videoUrl := m.GetVideoUrl()
if videoUrl != nil { if videoUrl != nil && videoUrl.Url != "" {
meta := &types.FileMeta{ meta := &types.FileMeta{
FileType: types.FileTypeVideo, FileType: types.FileTypeVideo,
} }
@@ -783,16 +785,20 @@ func (r *OpenAIResponsesRequest) GetTokenCountMeta() *types.TokenCountMeta {
inputs := r.ParseInput() inputs := r.ParseInput()
for _, input := range inputs { for _, input := range inputs {
if input.Type == "input_image" { if input.Type == "input_image" {
if input.ImageUrl != "" {
fileMeta = append(fileMeta, &types.FileMeta{ fileMeta = append(fileMeta, &types.FileMeta{
FileType: types.FileTypeImage, FileType: types.FileTypeImage,
OriginData: input.ImageUrl, OriginData: input.ImageUrl,
Detail: input.Detail, Detail: input.Detail,
}) })
}
} else if input.Type == "input_file" { } else if input.Type == "input_file" {
if input.FileUrl != "" {
fileMeta = append(fileMeta, &types.FileMeta{ fileMeta = append(fileMeta, &types.FileMeta{
FileType: types.FileTypeFile, FileType: types.FileTypeFile,
OriginData: input.FileUrl, OriginData: input.FileUrl,
}) })
}
} else { } else {
texts = append(texts, input.Text) texts = append(texts, input.Text)
} }