Preserve exact smoke-test selections
This commit is contained in:
@@ -4,7 +4,6 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net/url"
|
||||
"strings"
|
||||
|
||||
"gitea.maximumdirect.net/eric/promptkit/internal/defaults"
|
||||
"gitea.maximumdirect.net/eric/promptkit/internal/domain"
|
||||
@@ -36,15 +35,12 @@ func (r *Runner) resolveSmokeTestTarget(ctx context.Context, req domain.SmokeTes
|
||||
return nil, fmt.Errorf("%w: %w", ErrInvalidRequest, err)
|
||||
}
|
||||
|
||||
promptID := strings.TrimSpace(req.PromptID)
|
||||
profileID := strings.TrimSpace(req.ProfileID)
|
||||
backendID := strings.TrimSpace(req.BackendID)
|
||||
if promptID == "" && strings.TrimSpace(req.PromptVersion) != "" {
|
||||
if req.PromptID == "" && req.PromptVersion != "" {
|
||||
return nil, fmt.Errorf("%w: prompt version requires a prompt id", ErrInvalidRequest)
|
||||
}
|
||||
|
||||
var promptInspection *domain.PromptInspection
|
||||
if promptID != "" {
|
||||
if req.PromptID != "" {
|
||||
promptInspection, err = r.resolvePromptInspection(ctx, req.PromptID, req.PromptVersion)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -54,13 +50,13 @@ func (r *Runner) resolveSmokeTestTarget(ctx context.Context, req domain.SmokeTes
|
||||
selection := &smokeTestSelection{transientRetries: transientRetries}
|
||||
var selectedProfileID string
|
||||
switch {
|
||||
case profileID != "":
|
||||
case req.ProfileID != "":
|
||||
selectedProfileID = req.ProfileID
|
||||
selection.target.SelectionSource = smokeSelectionSourceProfile
|
||||
case promptInspection != nil && (promptInspection.DefaultProfileID != "" || isInferenceSmokeTest(req.Kind)):
|
||||
selectedProfileID = promptInspection.DefaultProfileID
|
||||
selection.target.SelectionSource = smokeSelectionSourcePrompt
|
||||
case backendID != "" && isInferenceSmokeTest(req.Kind):
|
||||
case req.BackendID != "" && isInferenceSmokeTest(req.Kind):
|
||||
backend, err := r.resolveSmokeBackend(req.BackendID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -72,7 +68,7 @@ func (r *Runner) resolveSmokeTestTarget(ctx context.Context, req domain.SmokeTes
|
||||
selection.backend = backend
|
||||
selection.target.DefaultSourceBackendID = backend.ID
|
||||
selection.target.SelectionSource = smokeSelectionSourceBackendDefault
|
||||
case backendID != "":
|
||||
case req.BackendID != "":
|
||||
backend, err := r.resolveSmokeBackend(req.BackendID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -262,6 +262,27 @@ func TestResolveSmokeTestTargetSelectionAndSettingsErrors(t *testing.T) {
|
||||
},
|
||||
wantErr: ErrProfileLoad,
|
||||
},
|
||||
{
|
||||
name: "invalid prompt selection does not fall back",
|
||||
request: domain.SmokeTestRequest{
|
||||
Kind: domain.SmokeTestTextInference, PromptID: "missing.prompt", BackendID: "epsilon",
|
||||
},
|
||||
wantErr: ErrPromptLoad,
|
||||
},
|
||||
{
|
||||
name: "blank explicit profile does not fall back",
|
||||
request: domain.SmokeTestRequest{
|
||||
Kind: domain.SmokeTestTextInference, ProfileID: " ", BackendID: "epsilon",
|
||||
},
|
||||
wantErr: ErrInvalidRequest,
|
||||
},
|
||||
{
|
||||
name: "version cannot be supplied without prompt",
|
||||
request: domain.SmokeTestRequest{
|
||||
Kind: domain.SmokeTestTextInference, PromptVersion: " ", BackendID: "epsilon",
|
||||
},
|
||||
wantErr: ErrInvalidRequest,
|
||||
},
|
||||
{
|
||||
name: "dangling backend default fails only when selected",
|
||||
request: domain.SmokeTestRequest{Kind: domain.SmokeTestTextInference, BackendID: "delta"},
|
||||
|
||||
Reference in New Issue
Block a user