MCPcopy
hub / github.com/docker/docker-agent / SetModelOverride

Method SetModelOverride

pkg/agent/agent.go:211–234  ·  view source on GitHub ↗

SetModelOverride sets runtime model override(s) for this agent. The override(s) take precedence over the configured models. For alloy models, multiple providers can be passed and one will be randomly selected. Pass no arguments or nil providers to clear the override. SetModelOverride returns a snap

(models ...provider.Provider)

Source from the content-addressed store, hash-verified

209// the deferred restore can detect concurrent changes via CAS. Callers
210// that only need the side-effect can ignore the return value.
211func (a *Agent) SetModelOverride(models ...provider.Provider) ModelOverrideSnapshot {
212 // Filter out nil providers
213 var validModels []provider.Provider
214 for _, m := range models {
215 if m != nil {
216 validModels = append(validModels, m)
217 }
218 }
219
220 var ptr *[]provider.Provider
221 if len(validModels) == 0 {
222 a.modelOverrides.Store(nil)
223 slog.Debug("Cleared model override", "agent", a.name)
224 } else {
225 ptr = &validModels
226 a.modelOverrides.Store(ptr)
227 ids := make([]string, len(validModels))
228 for i, m := range validModels {
229 ids[i] = m.ID().String()
230 }
231 slog.Debug("Set model override", "agent", a.name, "models", ids)
232 }
233 return ModelOverrideSnapshot{ptr: ptr}
234}
235
236// HasModelOverride returns true if a model override is currently set.
237func (a *Agent) HasModelOverride() bool {

Calls 4

DebugMethod · 0.80
IDMethod · 0.65
StoreMethod · 0.45
StringMethod · 0.45