返回 DeepSeek-Reasonix
image_routes.go
根目录 / internal / boot / image_routes.go
1 package boot
2
3 import (
4 "context"
5 "fmt"
6 "reasonix/internal/attachment"
7 "reasonix/internal/config"
8 "reasonix/internal/control"
9 "reasonix/internal/imageinput"
10 "reasonix/internal/provider"
11 )
12
13 type childImageRouting struct {
14 controller func() *control.Controller
15 config *imageinput.Config
16 }
17
18 type controllerImageResolver struct{ controller func() *control.Controller }
19
20 func (r controllerImageResolver) ResolveRequestImages(ctx context.Context, messages []provider.Message) ([]provider.Message, error) {
21 if c := r.controller(); c != nil {
22 return c.ResolveRequestImages(ctx, messages)
23 }
24 return nil, fmt.Errorf("attachment owner is unavailable")
25 }
26
27 func (r controllerImageResolver) ResolveRequestImagesForModel(ctx context.Context, messages []provider.Message, model string, native bool) ([]provider.Message, error) {
28 if c := r.controller(); c != nil {
29 return c.ResolveRequestImagesForModel(ctx, messages, model, native)
30 }
31 return nil, fmt.Errorf("attachment owner is unavailable")
32 }
33
34 func (r controllerImageResolver) PersistToolImages(ctx context.Context, images []string) ([]attachment.ImageInput, error) {
35 if c := r.controller(); c != nil {
36 return c.PersistToolImages(ctx, images)
37 }
38 return nil, fmt.Errorf("attachment owner is unavailable")
39 }
40
41 func newControllerWithImageRoutes(opts control.Options, cfg *config.Config) *control.Controller {
42 opts.ImageRouteConfig = cfg
43 return control.New(opts)
44 }
45
45 lines GO