updated DS compat
This commit is contained in:
@@ -835,7 +835,13 @@ type streamDelta struct {
|
||||
func cleanMessagesForLLM(msgs []Message) []Message {
|
||||
out := make([]Message, len(msgs))
|
||||
for i, m := range msgs {
|
||||
out[i] = Message{Role: m.Role, Content: m.Content, ToolCalls: m.ToolCalls, ToolCallID: m.ToolCallID}
|
||||
out[i] = Message{
|
||||
Role: m.Role,
|
||||
Content: m.Content,
|
||||
ReasoningContent: m.ReasoningContent,
|
||||
ToolCalls: m.ToolCalls,
|
||||
ToolCallID: m.ToolCallID,
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
@@ -855,17 +861,22 @@ func filterText(s string) string {
|
||||
|
||||
func sanitizeMessages(msgs []Message) {
|
||||
for i := range msgs {
|
||||
if msgs[i].Role == "assistant" && len(msgs[i].ToolCalls) > 0 {
|
||||
for j := range msgs[i].ToolCalls {
|
||||
tc := &msgs[i].ToolCalls[j]
|
||||
tc.Function.Arguments = filterText(tc.Function.Arguments)
|
||||
astr := tc.Function.Arguments
|
||||
var a map[string]any
|
||||
if err := json.Unmarshal([]byte(astr), &a); err != nil || a == nil {
|
||||
fixed, _ := json.Marshal(map[string]string{"invalid_raw": astr})
|
||||
tc.Function.Arguments = string(fixed)
|
||||
if msgs[i].Role == "assistant" {
|
||||
if len(msgs[i].ToolCalls) > 0 {
|
||||
for j := range msgs[i].ToolCalls {
|
||||
tc := &msgs[i].ToolCalls[j]
|
||||
tc.Function.Arguments = filterText(tc.Function.Arguments)
|
||||
astr := tc.Function.Arguments
|
||||
var a map[string]any
|
||||
if err := json.Unmarshal([]byte(astr), &a); err != nil || a == nil {
|
||||
fixed, _ := json.Marshal(map[string]string{"invalid_raw": astr})
|
||||
tc.Function.Arguments = string(fixed)
|
||||
}
|
||||
}
|
||||
}
|
||||
if msgs[i].ReasoningContent != "" {
|
||||
msgs[i].ReasoningContent = filterText(msgs[i].ReasoningContent)
|
||||
}
|
||||
} else if msgs[i].Role == "tool" && msgs[i].Content != nil {
|
||||
msgs[i].Content = strp(filterText(*msgs[i].Content))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user