fix: pass thinking to anthropic client (#4150)

This commit is contained in:
Kevin Lin
2025-08-25 13:36:55 -07:00
committed by GitHub
parent 9eb303b5f4
commit 80ea4a0608
2 changed files with 20 additions and 6 deletions

View File

@@ -287,12 +287,26 @@ class AnthropicClient(LLMClientBase):
else:
anthropic_tools = None
thinking_enabled = False
if messages:
for message in messages:
if isinstance(message.get("content"), list):
for content_block in message["content"]:
if content_block.get("type") == "thinking":
thinking_enabled = True
break
try:
result = await client.beta.messages.count_tokens(
model=model or "claude-3-7-sonnet-20250219",
messages=messages or [{"role": "user", "content": "hi"}],
tools=anthropic_tools or [],
)
count_params = {
"model": model or "claude-3-7-sonnet-20250219",
"messages": messages or [{"role": "user", "content": "hi"}],
"tools": anthropic_tools or [],
}
if thinking_enabled:
count_params["thinking"] = {"type": "enabled", "budget_tokens": 16000}
result = await client.beta.messages.count_tokens(**count_params)
except:
raise

View File

@@ -846,7 +846,7 @@ class Message(BaseMessage):
}
content = []
# COT / reasoning / thinking
if self.content is not None and len(self.content) > 1:
if self.content is not None and len(self.content) >= 1:
for content_part in self.content:
if isinstance(content_part, ReasoningContent):
content.append(