Unverified Commit 55bbf3b4 authored by Jeffrey Morgan's avatar Jeffrey Morgan Committed by GitHub
Browse files

tools: return empty arguments object instead of null (#11113)

parent 6bda1d24
...@@ -115,11 +115,10 @@ func (p *Parser) findTag() (int, bool) { ...@@ -115,11 +115,10 @@ func (p *Parser) findTag() (int, bool) {
// parseToolCall finds the next complete tool call in the buffer // parseToolCall finds the next complete tool call in the buffer
// incrementing n and advancing the buffer. // incrementing n and advancing the buffer.
func (p *Parser) parseToolCall() *api.ToolCall { func (p *Parser) parseToolCall() *api.ToolCall {
var args map[string]any
var tool *api.Tool var tool *api.Tool
var end int = len(p.buffer) var end int = len(p.buffer)
var i int var i int
// find tool name // find tool name
for _, t := range p.tools { for _, t := range p.tools {
n := t.Function.Name n := t.Function.Name
...@@ -136,6 +135,7 @@ func (p *Parser) parseToolCall() *api.ToolCall { ...@@ -136,6 +135,7 @@ func (p *Parser) parseToolCall() *api.ToolCall {
} }
// only look for arguments if the tool has parameters // only look for arguments if the tool has parameters
args := map[string]any{}
if len(tool.Function.Parameters.Properties) > 0 { if len(tool.Function.Parameters.Properties) > 0 {
if args, i = p.findArguments(*tool); args == nil { if args, i = p.findArguments(*tool); args == nil {
return nil return nil
......
...@@ -190,8 +190,9 @@ func TestParser(t *testing.T) { ...@@ -190,8 +190,9 @@ func TestParser(t *testing.T) {
calls: []api.ToolCall{ calls: []api.ToolCall{
{ {
Function: api.ToolCallFunction{ Function: api.ToolCallFunction{
Index: 0, Index: 0,
Name: "say_hello", Name: "say_hello",
Arguments: api.ToolCallFunctionArguments{},
}, },
}, },
}, },
...@@ -265,8 +266,9 @@ func TestParser(t *testing.T) { ...@@ -265,8 +266,9 @@ func TestParser(t *testing.T) {
calls: []api.ToolCall{ calls: []api.ToolCall{
{ {
Function: api.ToolCallFunction{ Function: api.ToolCallFunction{
Index: 0, Index: 0,
Name: "say_hello", Name: "say_hello",
Arguments: api.ToolCallFunctionArguments{},
}, },
}, },
{ {
...@@ -413,8 +415,9 @@ func TestParser(t *testing.T) { ...@@ -413,8 +415,9 @@ func TestParser(t *testing.T) {
calls: []api.ToolCall{ calls: []api.ToolCall{
{ {
Function: api.ToolCallFunction{ Function: api.ToolCallFunction{
Index: 0, Index: 0,
Name: "say_hello", Name: "say_hello",
Arguments: api.ToolCallFunctionArguments{},
}, },
}, },
}, },
...@@ -441,8 +444,9 @@ func TestParser(t *testing.T) { ...@@ -441,8 +444,9 @@ func TestParser(t *testing.T) {
calls: []api.ToolCall{ calls: []api.ToolCall{
{ {
Function: api.ToolCallFunction{ Function: api.ToolCallFunction{
Index: 0, Index: 0,
Name: "say_hello", Name: "say_hello",
Arguments: api.ToolCallFunctionArguments{},
}, },
}, },
}, },
...@@ -577,8 +581,9 @@ func TestParser(t *testing.T) { ...@@ -577,8 +581,9 @@ func TestParser(t *testing.T) {
calls: []api.ToolCall{ calls: []api.ToolCall{
{ {
Function: api.ToolCallFunction{ Function: api.ToolCallFunction{
Index: 0, Index: 0,
Name: "say_hello", Name: "say_hello",
Arguments: api.ToolCallFunctionArguments{},
}, },
}, },
}, },
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment