Merge pull request #3439 from ben-vargas/fix-grok-tool-params
fix(xai): default missing function tool parameters
This commit is contained in:
@@ -727,6 +727,7 @@ func normalizeXAITool(tool gjson.Result) ([]byte, bool, bool) {
|
|||||||
return nil, false, false
|
return nil, false, false
|
||||||
}
|
}
|
||||||
raw = updatedTool
|
raw = updatedTool
|
||||||
|
toolType = xaiFunctionToolType
|
||||||
changed = true
|
changed = true
|
||||||
}
|
}
|
||||||
if toolType == xaiWebSearchToolType && tool.Get("external_web_access").Exists() {
|
if toolType == xaiWebSearchToolType && tool.Get("external_web_access").Exists() {
|
||||||
@@ -737,6 +738,14 @@ func normalizeXAITool(tool gjson.Result) ([]byte, bool, bool) {
|
|||||||
raw = updatedTool
|
raw = updatedTool
|
||||||
changed = true
|
changed = true
|
||||||
}
|
}
|
||||||
|
if toolType == xaiFunctionToolType && !tool.Get("parameters").Exists() {
|
||||||
|
updatedTool, errSet := sjson.SetRawBytes(raw, "parameters", []byte(`{"type":"object","properties":{}}`))
|
||||||
|
if errSet != nil {
|
||||||
|
return nil, false, false
|
||||||
|
}
|
||||||
|
raw = updatedTool
|
||||||
|
changed = true
|
||||||
|
}
|
||||||
return raw, changed, true
|
return raw, changed, true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -123,6 +123,9 @@ func TestXAIExecutorExecuteShapesResponsesRequest(t *testing.T) {
|
|||||||
if toolType != "function" && toolType != "web_search" {
|
if toolType != "function" && toolType != "web_search" {
|
||||||
t.Fatalf("tools.%d.type = %q, want function or web_search; body=%s", i, toolType, string(gotBody))
|
t.Fatalf("tools.%d.type = %q, want function or web_search; body=%s", i, toolType, string(gotBody))
|
||||||
}
|
}
|
||||||
|
if toolType == "function" && !tool.Get("parameters").Exists() {
|
||||||
|
t.Fatalf("tools.%d.parameters missing for xAI function tool; body=%s", i, string(gotBody))
|
||||||
|
}
|
||||||
if got := tool.Get("name").String(); got == "apply_patch" {
|
if got := tool.Get("name").String(); got == "apply_patch" {
|
||||||
t.Fatalf("tools.%d.name = apply_patch, want removed; body=%s", i, string(gotBody))
|
t.Fatalf("tools.%d.name = apply_patch, want removed; body=%s", i, string(gotBody))
|
||||||
}
|
}
|
||||||
@@ -261,6 +264,9 @@ func TestXAIExecutorExecuteStreamFiltersToolSearchTool(t *testing.T) {
|
|||||||
if toolType != "function" && toolType != "web_search" {
|
if toolType != "function" && toolType != "web_search" {
|
||||||
t.Fatalf("tools.%d.type = %q, want function or web_search; body=%s", i, toolType, string(gotBody))
|
t.Fatalf("tools.%d.type = %q, want function or web_search; body=%s", i, toolType, string(gotBody))
|
||||||
}
|
}
|
||||||
|
if toolType == "function" && !tool.Get("parameters").Exists() {
|
||||||
|
t.Fatalf("tools.%d.parameters missing for xAI function tool; body=%s", i, string(gotBody))
|
||||||
|
}
|
||||||
if got := tool.Get("name").String(); got == "apply_patch" {
|
if got := tool.Get("name").String(); got == "apply_patch" {
|
||||||
t.Fatalf("tools.%d.name = apply_patch, want removed; body=%s", i, string(gotBody))
|
t.Fatalf("tools.%d.name = apply_patch, want removed; body=%s", i, string(gotBody))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user