feat: Gemini thought_signature korrekt lesen und zurücksenden
- thought_signature aus delta.tool_calls[n].extra_content.google.thought_signature lesen (korrekter Pfad) - ThoughtSignature-Feld in MessageRecord + DB-Migration (ALTER TABLE messages ADD COLUMN thought_signature) - SaveMessage speichert ThoughtSignature pro Tool-Call - OpenAiService: toolCallAccumulators Tuple um ThoughtSignature erweitert - Tool-Calls mit thought_signature werden mit extra_content.google.thought_signature zurückgesendet (nicht function.thought_signature) - ConvertMessage (History-Rebuild) setzt thought_signature ebenfalls korrekt - ChatService.BuildApiMessages übergibt thought_signature aus DB-Record - Gemini-Modelle dynamisch laden statt hardcodiert - Tool-Call-Akkumulator nutzt id als primären Key (Gemini sendet parallele Calls ohne index) - content=null → content='' für Gemini-Kompatibilität
This commit is contained in:
1 parent
e87455ffe9
commit
145441fa7b
6 files changed
+149
-65
No files matched your search
@@ -13,6 +13,7 @@ public class MessageRecord
|
||||
public int Iteration { get; set; } // welche Loop-Iteration
|
||||
public int AttachmentCount { get; set; } // Anzahl angehängter Dateien
|
||||
public string AttachmentNames { get; set; } // JSON-Array mit Dateinamen
|
||||
public string ThoughtSignature { get; set; } // Gemini thought_signature (nur bei tool_use)
|
||||
public string Tag { get; set; } // null = normal, "preparer"/"review"/"finalizer" = Sub-Agent-Message
|
||||
public bool IsMarked { get; set; } // als wichtig markiert
|
||||
public string DeletedOn { get; set; } // null = aktiv, sonst Zeitstempel der Löschung
|
||||
|
||||
Reference in new issue
Block a user