From 85250c26942eb1c760e1ffe15292e1a1302775a6 Mon Sep 17 00:00:00 2001 From: Liang Jiaqing Date: Wed, 25 Mar 2026 09:45:43 +0800 Subject: [PATCH] fix: unify assistant content format for prompt caching to work --- llmcore.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/llmcore.py b/llmcore.py index 3abc151..8fdb068 100644 --- a/llmcore.py +++ b/llmcore.py @@ -120,10 +120,10 @@ class ClaudeSession: except Exception as e: yield f"Error: {str(e)}" def make_messages(self, raw_list): trimmed = self._trim_messages(raw_list) - msgs = [{"role": m['role'], "content": m['prompt']} for m in trimmed] + msgs = [{"role": m['role'], "content": [{"type": "text", "text": m['prompt']}] if m['role'] == "assistant" else m['prompt']} for m in trimmed] for i in range(len(msgs)-1, -1, -1): if msgs[i]["role"] == "assistant": - msgs[i]["content"] = [{"type": "text", "text": msgs[i]["content"], "cache_control": {"type": "ephemeral"}}] + msgs[i]["content"][-1]["cache_control"] = {"type": "ephemeral"} break return msgs def ask(self, prompt, model=None, stream=False):