mirror of https://github.com/ollama/ollama.git
server: fix error when parsing bad harmony tool calls
Thanks @moll for reporting! Fixes: #11781
This commit is contained in:
parent
b269450fb4
commit
654082b587
|
@ -371,7 +371,8 @@ func (s *Server) GenerateHandler(c *gin.Context) {
|
||||||
*toolName = strings.TrimPrefix(*toolName, "functions.")
|
*toolName = strings.TrimPrefix(*toolName, "functions.")
|
||||||
var args api.ToolCallFunctionArguments
|
var args api.ToolCallFunctionArguments
|
||||||
if err := json.Unmarshal([]byte(toolContent), &args); err != nil {
|
if err := json.Unmarshal([]byte(toolContent), &args); err != nil {
|
||||||
ch <- gin.H{"error parsing tool call": err.Error()}
|
errStr := fmt.Sprintf("error parsing tool call: raw='%s', err=%s", toolContent, err.Error())
|
||||||
|
ch <- gin.H{"error": errStr}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1671,7 +1672,8 @@ func (s *Server) ChatHandler(c *gin.Context) {
|
||||||
*toolName = strings.TrimPrefix(*toolName, "functions.")
|
*toolName = strings.TrimPrefix(*toolName, "functions.")
|
||||||
var args api.ToolCallFunctionArguments
|
var args api.ToolCallFunctionArguments
|
||||||
if err := json.Unmarshal([]byte(toolContent), &args); err != nil {
|
if err := json.Unmarshal([]byte(toolContent), &args); err != nil {
|
||||||
ch <- gin.H{"error parsing tool call": err.Error()}
|
errStr := fmt.Sprintf("error parsing tool call: raw='%s', err=%s", toolContent, err.Error())
|
||||||
|
ch <- gin.H{"error": errStr}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
res.Message.ToolCalls = []api.ToolCall{{Function: api.ToolCallFunction{Name: *toolName, Arguments: args}}}
|
res.Message.ToolCalls = []api.ToolCall{{Function: api.ToolCallFunction{Name: *toolName, Arguments: args}}}
|
||||||
|
|
Loading…
Reference in New Issue