From e0258708c724bdcd1dfd18fe343ca81f2095cde4 Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Wed, 26 Jun 2024 14:21:57 -0700 Subject: [PATCH 1/2] fix cost tracking for whisper --- litellm/proxy/spend_tracking/spend_tracking_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/litellm/proxy/spend_tracking/spend_tracking_utils.py b/litellm/proxy/spend_tracking/spend_tracking_utils.py index 54772ca9a75..e4027b98482 100644 --- a/litellm/proxy/spend_tracking/spend_tracking_utils.py +++ b/litellm/proxy/spend_tracking/spend_tracking_utils.py @@ -29,7 +29,7 @@ def get_logging_payload( completion_start_time = kwargs.get("completion_start_time", end_time) call_type = kwargs.get("call_type") cache_hit = kwargs.get("cache_hit", False) - usage = response_obj["usage"] + usage = response_obj.get("usage", None) or {} if type(usage) == litellm.Usage: usage = dict(usage) id = response_obj.get("id", kwargs.get("litellm_call_id")) From 5c673551a12d3282777c38e6995a5534c02c3352 Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Wed, 26 Jun 2024 15:21:49 -0700 Subject: [PATCH 2/2] test_spend_logs_payload_whisper --- litellm/tests/test_spend_logs.py | 87 ++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/litellm/tests/test_spend_logs.py b/litellm/tests/test_spend_logs.py index 3e8301e1e44..4cd43bb048b 100644 --- a/litellm/tests/test_spend_logs.py +++ b/litellm/tests/test_spend_logs.py @@ -205,3 +205,90 @@ def test_spend_logs_payload(): assert ( payload["request_tags"] == '["model-anthropic-claude-v2.1", "app-ishaan-prod"]' ) + + +def test_spend_logs_payload_whisper(): + """ + Ensure we can write /transcription request/responses to spend logs + """ + + kwargs: dict = { + "model": "whisper-1", + "messages": [{"role": "user", "content": "audio_file"}], + "optional_params": {}, + "litellm_params": { + "api_base": "", + "metadata": { + "user_api_key": "88dc28d0f030c55ed4ab77ed8faf098196cb1c05df778539800c9f1243fe6b4b", + "user_api_key_alias": None, + "user_api_end_user_max_budget": None, + "litellm_api_version": "1.40.19", + "global_max_parallel_requests": None, + "user_api_key_user_id": "default_user_id", + "user_api_key_org_id": None, + "user_api_key_team_id": None, + "user_api_key_team_alias": None, + "user_api_key_team_max_budget": None, + "user_api_key_team_spend": None, + "user_api_key_spend": 0.0, + "user_api_key_max_budget": None, + "user_api_key_metadata": {}, + "headers": { + "host": "localhost:4000", + "user-agent": "curl/7.88.1", + "accept": "*/*", + "content-length": "775501", + "content-type": "multipart/form-data; boundary=------------------------21d518e191326d20", + }, + "endpoint": "http://localhost:4000/v1/audio/transcriptions", + "litellm_parent_otel_span": None, + "model_group": "whisper-1", + "deployment": "whisper-1", + "model_info": { + "id": "d7761582311451c34d83d65bc8520ce5c1537ea9ef2bec13383cf77596d49eeb", + "db_model": False, + }, + "caching_groups": None, + }, + }, + "start_time": datetime.datetime(2024, 6, 26, 14, 20, 11, 313291), + "stream": False, + "user": "", + "call_type": "atranscription", + "litellm_call_id": "05921cf7-33f9-421c-aad9-33310c1e2702", + "completion_start_time": datetime.datetime(2024, 6, 26, 14, 20, 13, 653149), + "stream_options": None, + "input": "tmp-requestc8640aee-7d85-49c3-b3ef-bdc9255d8e37.wav", + "original_response": '{"text": "Four score and seven years ago, our fathers brought forth on this continent a new nation, conceived in liberty and dedicated to the proposition that all men are created equal. Now we are engaged in a great civil war, testing whether that nation, or any nation so conceived and so dedicated, can long endure."}', + "additional_args": { + "complete_input_dict": { + "model": "whisper-1", + "file": "<_io.BufferedReader name='tmp-requestc8640aee-7d85-49c3-b3ef-bdc9255d8e37.wav'>", + "language": None, + "prompt": None, + "response_format": None, + "temperature": None, + } + }, + "log_event_type": "post_api_call", + "end_time": datetime.datetime(2024, 6, 26, 14, 20, 13, 653149), + "cache_hit": None, + "response_cost": 0.00023398580000000003, + } + + response = litellm.utils.TranscriptionResponse( + text="Four score and seven years ago, our fathers brought forth on this continent a new nation, conceived in liberty and dedicated to the proposition that all men are created equal. Now we are engaged in a great civil war, testing whether that nation, or any nation so conceived and so dedicated, can long endure." + ) + + payload: SpendLogsPayload = get_logging_payload( + kwargs=kwargs, + response_obj=response, + start_time=datetime.datetime.now(), + end_time=datetime.datetime.now(), + end_user_id="test-user", + ) + + print("payload: ", payload) + + assert payload["call_type"] == "atranscription" + assert payload["spend"] == 0.00023398580000000003