Protect retained metadata from custom JSON encoders
This commit is contained in:
@@ -17,6 +17,7 @@ import (
|
||||
|
||||
"go.maximumdirect.net/promptkit/internal/defaults"
|
||||
"go.maximumdirect.net/promptkit/internal/domain"
|
||||
"go.maximumdirect.net/promptkit/internal/jsonvalue"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -125,6 +126,9 @@ func (c *OpenAICompatibleClient) PrepareGeneration(req domain.GenerateRequest) (
|
||||
return nil, fmt.Errorf("%w: invalid endpoint path: %v", ErrInvalidRequest, err)
|
||||
}
|
||||
|
||||
// Custom JSON encoders may mutate their receivers. Both payload encoding
|
||||
// and encoding-failure diagnostics must use values detached from metadata.
|
||||
req.Target.ExtraParams = jsonvalue.CloneTrusted(req.Target.ExtraParams).(map[string]any)
|
||||
wirePayload, err := openAIChatRequestPayload(req)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%w: %v", ErrInvalidRequest, err)
|
||||
|
||||
Reference in New Issue
Block a user