fix(openai): preset selector effort를 결속한다
caller body에 effort가 없어도 preset selector가 소유한 reasoning effort를 operation 요구사항에 포함해야 올바른 Responses wire를 선택할 수 있다.
This commit is contained in:
parent
e9f043e417
commit
dbf278e854
2 changed files with 19 additions and 1 deletions
|
|
@ -398,7 +398,11 @@ func (s *Server) handleChatCompletionsProviderPool(w http.ResponseWriter, dc *ch
|
|||
if err != nil {
|
||||
return tunnelReq, err
|
||||
}
|
||||
return prepareHotPathChatProviderOperation(prepared, selected, chatProviderRequirements(req))
|
||||
requirements := chatProviderRequirements(req)
|
||||
if effort, ok := dc.route.Preset.Selector.Options["reasoning_effort"].(string); ok && strings.TrimSpace(effort) != "" {
|
||||
requirements.Effort = strings.TrimSpace(effort)
|
||||
}
|
||||
return prepareHotPathChatProviderOperation(prepared, selected, requirements)
|
||||
}
|
||||
prepared, err = prepareProviderChatRequestNormalization(prepared, selected)
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -230,6 +230,20 @@ func TestHotPathOpenAIToolsAndEffortUseResponsesOperation(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestChatProviderRequirementsAllowPresetOwnedEffort(t *testing.T) {
|
||||
requirements := chatProviderRequirements(chatCompletionRequest{Tools: []any{map[string]any{"type": "function"}}})
|
||||
if requirements.Effort != "" || !requirements.HasTools {
|
||||
t.Fatalf("caller requirements=%+v", requirements)
|
||||
}
|
||||
presetOptions := map[string]any{"reasoning_effort": "high"}
|
||||
if effort, ok := presetOptions["reasoning_effort"].(string); ok {
|
||||
requirements.Effort = strings.TrimSpace(effort)
|
||||
}
|
||||
if requirements.Effort != "high" || !requirements.HasTools {
|
||||
t.Fatalf("effective selector requirements=%+v", requirements)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGeminiChatProviderHTTPToolContinuationRoundTrip(t *testing.T) {
|
||||
var providerRequests []map[string]any
|
||||
provider := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue