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