updated DS compat

This commit is contained in:
Luxferre
2026-09-08 21:25:29 +03:00
parent 5291415d4e
commit e6472a77b7
2 changed files with 128 additions and 10 deletions
+21 -10
View File
@@ -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))
}