MCPcopy
hub / github.com/docker/compose / ensureModels

Method ensureModels

pkg/compose/model.go:39–71  ·  pkg/compose/model.go::composeService.ensureModels
(ctx context.Context, project *types.Project, quietPull bool)

Source from the content-addressed store, hash-verified

37)
38
39func (s *composeService) ensureModels(ctx context.Context, project *types.Project, quietPull bool) error {
40 if len(project.Models) == 0 {
41 return nil
42 }
43
44 mdlAPI, err := s.newModelAPI(project)
45 if err != nil {
46 return err
47 }
48 defer mdlAPI.Close()
49 availableModels, err := mdlAPI.ListModels(ctx)
50
51 eg, ctx := errgroup.WithContext(ctx)
52 eg.Go(func() error {
53 return mdlAPI.SetModelVariables(ctx, project)
54 })
55
56 for name, config := range project.Models {
57 if config.Name == "" {
58 config.Name = name
59 }
60 eg.Go(func() error {
61 if !slices.Contains(availableModels, config.Model) {
62 err = mdlAPI.PullModel(ctx, config, quietPull, s.events)
63 if err != nil {
64 return err
65 }
66 }
67 return mdlAPI.ConfigureModel(ctx, config, s.events)
68 })
69 }
70 return eg.Wait()
71}
72
73type modelAPI struct {
74 path string

Callers 2

prepareRunMethod · 0.95
createMethod · 0.95

Calls 7

newModelAPIMethod · 0.95
ListModelsMethod · 0.80
SetModelVariablesMethod · 0.80
PullModelMethod · 0.80
ConfigureModelMethod · 0.80
CloseMethod · 0.65
WaitMethod · 0.65

Tested by

no test coverage detected