Skip to content

Commit 00951f9

Browse files
authored
Merge pull request #197 from helloissariel/stream
Fix gemini/anthropic on_llm_end payload
2 parents 87ee6bb + 7dfd1b7 commit 00951f9

File tree

3 files changed

+23
-17
lines changed

3 files changed

+23
-17
lines changed

spoon_ai/llm/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ def _get_provider_defaults(self, provider_name: str) -> Dict[str, Any]:
335335
'anthropic': {
336336
'model': 'claude-sonnet-4-20250514',
337337
'base_url': 'https://api.anthropic.com',
338-
'max_tokens': 200000,
338+
'max_tokens': 63000, # Claude Sonnet-4 supports max_token of context <64000
339339
'temperature': 0.1, # Lower temperature for Claude
340340
**{k: v for k, v in common_defaults.items() if k != 'temperature'}
341341
},

spoon_ai/llm/providers/anthropic_provider.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -330,15 +330,18 @@ async def chat_stream(self, messages: List[Message],callbacks: Optional[List] =
330330
usage_data["cache_read_input_tokens"] = chunk.usage.cache_read_input_tokens
331331

332332
# Trigger on_llm_end callback
333+
final_response = LLMResponse(
334+
content=full_content,
335+
provider="anthropic",
336+
model=model,
337+
finish_reason=finish_reason or "stop",
338+
native_finish_reason=finish_reason or "stop",
339+
tool_calls=[],
340+
usage=usage_data,
341+
metadata={}
342+
)
333343
await callback_manager.on_llm_end(
334-
response=LLMResponseChunk(
335-
content=full_content,
336-
provider="anthropic",
337-
model=model,
338-
finish_reason=finish_reason,
339-
tool_calls=[],
340-
usage=usage_data
341-
),
344+
response=final_response,
342345
run_id=run_id
343346
)
344347

spoon_ai/llm/providers/gemini_provider.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -343,15 +343,18 @@ async def chat_stream(self, messages: List[Message],callbacks: Optional[List] =
343343
yield response_chunk
344344

345345
# Trigger on_llm_end callback
346+
final_response = LLMResponse(
347+
content=full_content,
348+
provider="gemini",
349+
model=model,
350+
finish_reason=finish_reason or "stop",
351+
native_finish_reason=finish_reason or "stop",
352+
tool_calls=[],
353+
usage=usage_data,
354+
metadata={}
355+
)
346356
await callback_manager.on_llm_end(
347-
response=LLMResponseChunk(
348-
content=full_content,
349-
provider="gemini",
350-
model=model,
351-
finish_reason=finish_reason,
352-
tool_calls=[],
353-
usage=usage_data
354-
),
357+
response=final_response,
355358
run_id=run_id
356359
)
357360

0 commit comments

Comments
 (0)