(cfg *latest.Config, ref string)
| 258 | } |
| 259 | |
| 260 | func resolveRoutingRuleModel(cfg *latest.Config, ref string) (latest.ModelConfig, error) { |
| 261 | if model, exists := cfg.Models[ref]; exists { |
| 262 | if model.IsFirstAvailable() { |
| 263 | return latest.ModelConfig{}, fmt.Errorf("routing target '%s' is a first_available selector and cannot be used as a first_available candidate dependency", ref) |
| 264 | } |
| 265 | if len(model.Routing) > 0 { |
| 266 | return latest.ModelConfig{}, fmt.Errorf("routing target '%s' has routing rules and cannot be used as a first_available candidate dependency", ref) |
| 267 | } |
| 268 | if err := validateCandidateProvider(cfg, ref, model.Provider); err != nil { |
| 269 | return latest.ModelConfig{}, err |
| 270 | } |
| 271 | return model, nil |
| 272 | } |
| 273 | |
| 274 | parsed, err := latest.ParseModelRef(ref) |
| 275 | if err != nil { |
| 276 | return latest.ModelConfig{}, fmt.Errorf("routing target '%s' is not a known model nor a valid 'provider/model' spec", ref) |
| 277 | } |
| 278 | if err := validateCandidateProvider(cfg, ref, parsed.Provider); err != nil { |
| 279 | return latest.ModelConfig{}, err |
| 280 | } |
| 281 | return parsed, nil |
| 282 | } |
no test coverage detected