Remove unused parameters

This commit is contained in:
Kunal Karmakar 2026-03-28 03:50:11 +00:00
parent f62b104fbe
commit ce8b08f725
5 changed files with 12 additions and 93 deletions

View file

@ -32,10 +32,9 @@ const (
// It handles Azure-specific authentication (Bearer token), URL construction // It handles Azure-specific authentication (Bearer token), URL construction
// (Responses API), and request/response formatting. // (Responses API), and request/response formatting.
type Provider struct { type Provider struct {
apiKey string apiKey string
apiBase string apiBase string
httpClient *http.Client httpClient *http.Client
lastResponseID string // tracks the previous response ID for multi-turn reasoning context
} }
// Option configures the Azure Provider. // Option configures the Azure Provider.
@ -107,11 +106,6 @@ func (p *Provider) Chat(
requestBody.Instructions = openai.Opt(instructions) requestBody.Instructions = openai.Opt(instructions)
} }
// Use previous_response_id for multi-turn reasoning context
if p.lastResponseID != "" {
requestBody.PreviousResponseID = openai.Opt(p.lastResponseID)
}
if len(tools) > 0 { if len(tools) > 0 {
enableWebSearch, _ := options["native_search"].(bool) enableWebSearch, _ := options["native_search"].(bool)
requestBody.Tools = orc.TranslateTools(tools, enableWebSearch) requestBody.Tools = orc.TranslateTools(tools, enableWebSearch)
@ -157,7 +151,7 @@ func (p *Provider) Chat(
return nil, common.HandleErrorResponse(resp, p.apiBase) return nil, common.HandleErrorResponse(resp, p.apiBase)
} }
return orc.ParseResponseBody(resp.Body, &p.lastResponseID) return orc.ParseResponseBody(resp.Body)
} }
// GetDefaultModel returns an empty string as Azure deployments are user-configured. // GetDefaultModel returns an empty string as Azure deployments are user-configured.

View file

@ -247,54 +247,6 @@ func TestProviderChat_AzureParseToolCalls(t *testing.T) {
} }
} }
func TestProviderChat_AzurePreviousResponseID(t *testing.T) {
var firstRequestBody, secondRequestBody map[string]any
callCount := 0
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
callCount++
var body map[string]any
json.NewDecoder(r.Body).Decode(&body)
if callCount == 1 {
firstRequestBody = body
} else {
secondRequestBody = body
}
resp := map[string]any{
"id": "resp_turn_1",
"object": "response",
"status": "completed",
"output": []map[string]any{
{"type": "message", "content": []map[string]any{
{"type": "output_text", "text": "ok"},
}},
},
"usage": map[string]any{
"input_tokens": 5, "output_tokens": 2, "total_tokens": 7,
"input_tokens_details": map[string]any{"cached_tokens": 0},
"output_tokens_details": map[string]any{"reasoning_tokens": 0},
},
}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(resp)
}))
defer server.Close()
p := NewProvider("test-key", server.URL, "")
// First call — no previous_response_id
_, _ = p.Chat(t.Context(), []Message{{Role: "user", Content: "hi"}}, nil, "deployment", nil)
if firstRequestBody["previous_response_id"] != nil {
t.Error("first call should not have previous_response_id")
}
// Second call — should include previous_response_id from first response
_, _ = p.Chat(t.Context(), []Message{{Role: "user", Content: "hello again"}}, nil, "deployment", nil)
if secondRequestBody["previous_response_id"] != "resp_turn_1" {
t.Errorf("previous_response_id = %v, want %q", secondRequestBody["previous_response_id"], "resp_turn_1")
}
}
func TestProvider_AzureEmptyAPIBase(t *testing.T) { func TestProvider_AzureEmptyAPIBase(t *testing.T) {
p := NewProvider("test-key", "", "") p := NewProvider("test-key", "", "")
_, err := p.Chat(t.Context(), []Message{{Role: "user", Content: "hi"}}, nil, "deployment", nil) _, err := p.Chat(t.Context(), []Message{{Role: "user", Content: "hi"}}, nil, "deployment", nil)

View file

@ -96,7 +96,7 @@ func (p *CodexProvider) Chat(
} }
// Respect tools.web.prefer_native: only inject native search when the agent // Respect tools.web.prefer_native: only inject native search when the agent
// loop requested it (options["native_search"]), so prefer_native: false // loop passes options["native_search"]=true, so prefer_native=false means no injection.
useNativeSearch := p.enableWebSearch && (options["native_search"] == true) useNativeSearch := p.enableWebSearch && (options["native_search"] == true)
params := buildCodexParams(messages, tools, resolvedModel, options, useNativeSearch) params := buildCodexParams(messages, tools, resolvedModel, options, useNativeSearch)

View file

@ -214,17 +214,12 @@ func TranslateTools(tools []protocoltypes.ToolDefinition, enableWebSearch bool)
// ParseResponseBody parses an OpenAI Responses API JSON body into an LLMResponse. // ParseResponseBody parses an OpenAI Responses API JSON body into an LLMResponse.
// Handles output item types: "message" (output_text + refusal), "function_call", and "reasoning". // Handles output item types: "message" (output_text + refusal), "function_call", and "reasoning".
// If responseID is non-nil, stores the response ID for multi-turn context. func ParseResponseBody(body io.Reader) (*protocoltypes.LLMResponse, error) {
func ParseResponseBody(body io.Reader, responseID *string) (*protocoltypes.LLMResponse, error) {
var apiResp responses.Response var apiResp responses.Response
if err := json.NewDecoder(body).Decode(&apiResp); err != nil { if err := json.NewDecoder(body).Decode(&apiResp); err != nil {
return nil, err return nil, err
} }
if responseID != nil && apiResp.ID != "" {
*responseID = apiResp.ID
}
return parseResponse(&apiResp), nil return parseResponse(&apiResp), nil
} }

View file

@ -317,8 +317,7 @@ func TestParseResponseBody_TextOutput(t *testing.T) {
} }
}`) }`)
var respID string result, err := ParseResponseBody(body)
result, err := ParseResponseBody(body, &respID)
if err != nil { if err != nil {
t.Fatalf("ParseResponseBody error: %v", err) t.Fatalf("ParseResponseBody error: %v", err)
} }
@ -328,9 +327,6 @@ func TestParseResponseBody_TextOutput(t *testing.T) {
if result.FinishReason != "stop" { if result.FinishReason != "stop" {
t.Errorf("FinishReason = %q, want %q", result.FinishReason, "stop") t.Errorf("FinishReason = %q, want %q", result.FinishReason, "stop")
} }
if respID != "resp_123" {
t.Errorf("responseID = %q, want %q", respID, "resp_123")
}
if result.Usage.TotalTokens != 15 { if result.Usage.TotalTokens != 15 {
t.Errorf("TotalTokens = %d, want 15", result.Usage.TotalTokens) t.Errorf("TotalTokens = %d, want 15", result.Usage.TotalTokens)
} }
@ -358,7 +354,7 @@ func TestParseResponseBody_FunctionCall(t *testing.T) {
} }
}`) }`)
result, err := ParseResponseBody(body, nil) result, err := ParseResponseBody(body)
if err != nil { if err != nil {
t.Fatalf("ParseResponseBody error: %v", err) t.Fatalf("ParseResponseBody error: %v", err)
} }
@ -401,7 +397,7 @@ func TestParseResponseBody_Reasoning(t *testing.T) {
} }
}`) }`)
result, err := ParseResponseBody(body, nil) result, err := ParseResponseBody(body)
if err != nil { if err != nil {
t.Fatalf("ParseResponseBody error: %v", err) t.Fatalf("ParseResponseBody error: %v", err)
} }
@ -433,7 +429,7 @@ func TestParseResponseBody_Refusal(t *testing.T) {
} }
}`) }`)
result, err := ParseResponseBody(body, nil) result, err := ParseResponseBody(body)
if err != nil { if err != nil {
t.Fatalf("ParseResponseBody error: %v", err) t.Fatalf("ParseResponseBody error: %v", err)
} }
@ -458,7 +454,7 @@ func TestParseResponseBody_IncompleteStatus(t *testing.T) {
"output_tokens_details": {"reasoning_tokens": 0}} "output_tokens_details": {"reasoning_tokens": 0}}
}`) }`)
result, err := ParseResponseBody(body, nil) result, err := ParseResponseBody(body)
if err != nil { if err != nil {
t.Fatalf("error: %v", err) t.Fatalf("error: %v", err)
} }
@ -478,7 +474,7 @@ func TestParseResponseBody_FailedStatus(t *testing.T) {
"output_tokens_details": {"reasoning_tokens": 0}} "output_tokens_details": {"reasoning_tokens": 0}}
}`) }`)
result, err := ParseResponseBody(body, nil) result, err := ParseResponseBody(body)
if err != nil { if err != nil {
t.Fatalf("error: %v", err) t.Fatalf("error: %v", err)
} }
@ -488,24 +484,6 @@ func TestParseResponseBody_FailedStatus(t *testing.T) {
} }
} }
func TestParseResponseBody_NilResponseID(t *testing.T) {
body := strings.NewReader(`{
"id": "resp_nil",
"object": "response",
"status": "completed",
"output": [],
"usage": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0,
"input_tokens_details": {"cached_tokens": 0},
"output_tokens_details": {"reasoning_tokens": 0}}
}`)
// Should not panic when responseID is nil
_, err := ParseResponseBody(body, nil)
if err != nil {
t.Fatalf("error: %v", err)
}
}
// --- ParseDataAudioURL tests --- // --- ParseDataAudioURL tests ---
func TestParseDataAudioURL_Valid(t *testing.T) { func TestParseDataAudioURL_Valid(t *testing.T) {