返回 DeepSeek-Reasonix
image.go
1 package anthropic
2
3 import "reasonix/internal/provider"
4
5 func imageSourceFromRef(ref string) *imageSource {
6 switch provider.ClassifyImage(ref) {
7 case provider.ImageDataURL:
8 mt, data, ok := provider.ParseImageDataURL(ref)
9 if !ok {
10 return nil
11 }
12 return &imageSource{Type: "base64", MediaType: mt, Data: data}
13 case provider.ImageHTTPURL:
14 return &imageSource{Type: "url", URL: ref}
15 case provider.ImageFileID:
16 return &imageSource{Type: "file", FileID: ref}
17 default:
18 return nil
19 }
20 }
21
22 func visionRequestUsesFileID(req provider.Request) bool {
23 for _, m := range req.Messages {
24 if m.Role != provider.RoleUser && m.Role != provider.RoleTool {
25 continue
26 }
27 for _, ref := range m.Images {
28 if provider.ClassifyImage(ref) == provider.ImageFileID {
29 return true
30 }
31 }
32 }
33 return false
34 }
35
35 lines GO