[Score API][18132] return token usage in Score API response (#18381)

This commit is contained in:
Guy Stone
2026-03-03 13:45:35 -08:00
committed by GitHub
parent b0f26698f5
commit f749802402
7 changed files with 106 additions and 39 deletions
@@ -1038,6 +1038,18 @@ class TestOpenAIV1Score(CustomTestCase):
msg=f"Score {i} probabilities should sum to 1",
)
# Verify usage
self.assertIn("usage", response, "Response should have a 'usage' field")
self.assertGreater(response["usage"]["prompt_tokens"], 0)
self.assertEqual(
response["usage"]["prompt_tokens"], response["usage"]["total_tokens"]
)
self.assertEqual(
response["usage"]["completion_tokens"],
0,
"completion_tokens should be 0 for /v1/score",
)
def test_score_token_input(self):
"""Test scoring with token IDs input"""
query = "The capital of France is"
@@ -1088,6 +1100,18 @@ class TestOpenAIV1Score(CustomTestCase):
msg=f"Score {i} probabilities should sum to 1",
)
# Verify usage
self.assertIn("usage", response, "Response should have a 'usage' field")
self.assertGreater(response["usage"]["prompt_tokens"], 0)
self.assertEqual(
response["usage"]["prompt_tokens"], response["usage"]["total_tokens"]
)
self.assertEqual(
response["usage"]["completion_tokens"],
0,
"completion_tokens should be 0 for /v1/score",
)
def test_score_error_handling(self):
"""Test error handling for invalid inputs"""
query = "The capital of France is"
@@ -3,6 +3,7 @@ import unittest
from unittest.mock import Mock
from sglang.srt.entrypoints.openai.protocol import V1RerankReqInput
from sglang.srt.managers.tokenizer_manager_multiitem_mixin import ScoreResult
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
# Keep consistent with other openai_server/basic unit tests.
@@ -163,7 +164,7 @@ class TestOpenAIServingRerankUnit(unittest.TestCase):
# Return [p_yes, p_no] for each prompt
assert len(prompts) == 2
assert label_token_ids and len(label_token_ids) == 2
return [[0.9, 0.1], [0.2, 0.8]]
return ScoreResult(scores=[[0.9, 0.1], [0.2, 0.8]], prompt_tokens=42)
handler = OpenAIServingRerank(_TM())
req = V1RerankReqInput(query="q", documents=["d1", "d2"], return_documents=True)