mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-06 08:16:43 +00:00
test(passthrough): look up anthropic spend rows by the message id the caller received
This commit is contained in:
parent
46d7e92845
commit
54f4fa2e1b
1 changed files with 15 additions and 8 deletions
|
|
@ -50,9 +50,9 @@ async def test_anthropic_basic_completion_with_headers():
|
|||
anthropic_api_output_tokens = (
|
||||
reported_usage.get("output_tokens", None) if reported_usage else None
|
||||
)
|
||||
litellm_call_id = response_headers.get("x-litellm-call-id")
|
||||
anthropic_message_id = response_json.get("id")
|
||||
|
||||
print(f"LiteLLM Call ID: {litellm_call_id}")
|
||||
print(f"Anthropic message ID: {anthropic_message_id}")
|
||||
|
||||
# Wait for spend to be logged
|
||||
await asyncio.sleep(15)
|
||||
|
|
@ -64,7 +64,7 @@ async def test_anthropic_basic_completion_with_headers():
|
|||
print(f"Attempt {attempt + 1}/{max_retries} to check spend logs")
|
||||
|
||||
async with session.get(
|
||||
f"http://0.0.0.0:4000/spend/logs?request_id={litellm_call_id}",
|
||||
f"http://0.0.0.0:4000/spend/logs?request_id={anthropic_message_id}",
|
||||
headers={"Authorization": "Bearer sk-1234"},
|
||||
) as spend_response:
|
||||
print("text spend response")
|
||||
|
|
@ -102,7 +102,9 @@ async def test_anthropic_basic_completion_with_headers():
|
|||
assert isinstance(log_entry, dict), "Log entry should be a dictionary"
|
||||
|
||||
# Request metadata assertions
|
||||
assert log_entry["request_id"] == litellm_call_id, "Request ID should match"
|
||||
assert (
|
||||
log_entry["request_id"] == anthropic_message_id
|
||||
), "Request ID should be the message id the caller received"
|
||||
assert (
|
||||
log_entry["call_type"] == "pass_through_endpoint"
|
||||
), "Call type should be pass_through_endpoint"
|
||||
|
|
@ -182,8 +184,6 @@ async def test_anthropic_streaming_with_headers():
|
|||
assert response.status == 200, "Response should be successful"
|
||||
response_headers = response.headers
|
||||
print(f"Response headers: {response_headers}")
|
||||
litellm_call_id = response_headers.get("x-litellm-call-id")
|
||||
print(f"LiteLLM Call ID: {litellm_call_id}")
|
||||
|
||||
collected_output = []
|
||||
async for line in response.content:
|
||||
|
|
@ -194,13 +194,18 @@ async def test_anthropic_streaming_with_headers():
|
|||
|
||||
print("Collected output:", "".join(collected_output))
|
||||
anthropic_api_usage_chunks = []
|
||||
anthropic_message_id = None
|
||||
for chunk in collected_output:
|
||||
chunk_json = json.loads(chunk)
|
||||
if chunk_json.get("type") == "message_start":
|
||||
anthropic_message_id = chunk_json.get("message", {}).get("id")
|
||||
if "usage" in chunk_json:
|
||||
anthropic_api_usage_chunks.append(chunk_json["usage"])
|
||||
elif "message" in chunk_json and "usage" in chunk_json["message"]:
|
||||
anthropic_api_usage_chunks.append(chunk_json["message"]["usage"])
|
||||
|
||||
print(f"Anthropic message ID: {anthropic_message_id}")
|
||||
|
||||
print(
|
||||
"anthropic_api_usage_chunks",
|
||||
json.dumps(anthropic_api_usage_chunks, indent=4, default=str),
|
||||
|
|
@ -232,7 +237,7 @@ async def test_anthropic_streaming_with_headers():
|
|||
print(f"Attempt {attempt + 1}/{max_retries} to check spend logs")
|
||||
|
||||
async with session.get(
|
||||
f"http://0.0.0.0:4000/spend/logs?request_id={litellm_call_id}",
|
||||
f"http://0.0.0.0:4000/spend/logs?request_id={anthropic_message_id}",
|
||||
headers={"Authorization": "Bearer sk-1234"},
|
||||
) as spend_response:
|
||||
spend_data = await spend_response.json()
|
||||
|
|
@ -268,7 +273,9 @@ async def test_anthropic_streaming_with_headers():
|
|||
assert isinstance(log_entry, dict), "Log entry should be a dictionary"
|
||||
|
||||
# Request metadata assertions
|
||||
assert log_entry["request_id"] == litellm_call_id, "Request ID should match"
|
||||
assert (
|
||||
log_entry["request_id"] == anthropic_message_id
|
||||
), "Request ID should be the message id the caller received"
|
||||
assert (
|
||||
log_entry["call_type"] == "pass_through_endpoint"
|
||||
), "Call type should be pass_through_endpoint"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue