Resolves #1782
~/Desktop/bounty/opik/apps/opik-backend$ mvn test -Dtest="SpanCostCalculatorTest,CostServiceTest"
Screencast from 2025-07-08 22-41-27.webm
python -m pytest tests/unit/llm_usage/test_multimodal_usage.py -v --tb=short
Screencast from 2025-07-08 22-43-01.webm
╰─ python3 << 'EOF' ─╯
import sys
sys.path.append('/home/mavrick/Desktop/bounty/opik/sdks/python/src')
from opik.llm_usage.opik_usage import OpikUsage
# Realistic OpenAI GPT-4o multimodal usage
usage_data = {
'completion_tokens': 150,
'prompt_tokens': 300,
'total_tokens': 450,
'completion_tokens_details': {
'audio_tokens': 75,
'reasoning_tokens': 25
},
'prompt_tokens_details': {
'audio_tokens': 50,
'cached_tokens': 20
}
}
print("🎤 Testing multimodal usage parsing...")
usage = OpikUsage.from_openai_completions_dict(usage_data)
print(f"✅ Audio Input Tokens: {usage.audio_input_tokens}")
print(f"✅ Audio Output Tokens: {usage.audio_output_tokens}")
print(f"✅ Text Input Tokens: {usage.prompt_tokens}")
print(f"✅ Text Output Tokens: {usage.completion_tokens}")
backend_dict = usage.to_backend_compatible_full_usage_dict()
audio_fields = [k for k in backend_dict.keys() if 'audio' in k]
print(f"✅ Backend compatibility: {len(audio_fields)} audio fields extracted")
for field in audio_fields:
print(f" - {field}: {backend_dict[field]}")
EOF
Screencast from 2025-07-08 22-51-33.webm
/claim #1782
Rishi Mondal
@MAVRICK-1
Comet
@comet-ml