pipecat icon indicating copy to clipboard operation
pipecat copied to clipboard

input_tokens could be None when calculate ussage (Anthropic service)

Open ldp12416 opened this issue 7 months ago • 3 comments

pipecat version

0.0.67

Python version

3.11

Operating System

mac

Issue description

Image

2025-05-20 16:56:23.768 | ERROR | pipecat.services.anthropic.llm:_process_context:260 - input_tokens为None,原始event: RawMessageDeltaEvent(delta=Delta(stop_reason='end_turn', stop_sequence=None), type='message_delta', usage=MessageDeltaUsage(cache_creation_input_tokens=None, cache_read_input_tokens=None, input_tokens=None, output_tokens=98, server_tool_use=None)) 2025-05-20 16:56:23.768 | ERROR | pipecat.services.anthropic.llm:_process_context:316 - API调用异常: unsupported operand type(s) for +=: 'int' and 'NoneType'

Reproduction steps

^

Expected behavior

^

Actual behavior

^

Logs


ldp12416 avatar May 20 '25 09:05 ldp12416

unsupported operand type(s) for +=: 'int' and 'NoneType'

ldp12416 avatar May 20 '25 09:05 ldp12416

Change event.usage.input_tokens if hasattr(event.usage, "input_tokens") else 0

To event.usage.input_tokens if (hasattr(event.usage, "input_tokens") and event.usage.input_tokens is not None) else 0

will fix

ldp12416 avatar May 20 '25 09:05 ldp12416

In what scenario does this happen? It would be helpful if you add repro steps.

markbackman avatar May 20 '25 12:05 markbackman