Skip to content

Commit 99f4045

Browse files
fix: resolve type mismatch in usage summary propagation (#55)
Update BaseLM.get_last_usage type hint to return ModelUsageSummary, reflecting actual client implementations. Wrap atomic usage stats in UsageSummary within LMHandler to satisfy RLMChatCompletion type expectations and ensure consistent serialization structure.
1 parent 98131cf commit 99f4045

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

rlm/clients/base_lm.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from abc import ABC, abstractmethod
22
from typing import Any
33

4-
from rlm.core.types import UsageSummary
4+
from rlm.core.types import ModelUsageSummary, UsageSummary
55

66

77
class BaseLM(ABC):
@@ -28,6 +28,6 @@ def get_usage_summary(self) -> UsageSummary:
2828
raise NotImplementedError
2929

3030
@abstractmethod
31-
def get_last_usage(self) -> UsageSummary:
31+
def get_last_usage(self) -> ModelUsageSummary:
3232
"""Get the last cost summary of the model."""
3333
raise NotImplementedError

rlm/core/lm_handler.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,12 @@ def _handle_single(self, request: LMRequest, handler: "LMHandler") -> LMResponse
5151
content = client.completion(request.prompt)
5252
end_time = time.perf_counter()
5353

54-
usage_summary = client.get_last_usage()
54+
model_usage = client.get_last_usage()
55+
root_model = request.model or client.model_name
56+
usage_summary = UsageSummary(model_usage_summaries={root_model: model_usage})
5557
return LMResponse.success_response(
5658
chat_completion=RLMChatCompletion(
57-
root_model=request.model or client.model_name,
59+
root_model=root_model,
5860
prompt=request.prompt,
5961
response=content,
6062
usage_summary=usage_summary,
@@ -76,11 +78,13 @@ async def run_all():
7678
end_time = time.perf_counter()
7779

7880
total_time = end_time - start_time
79-
usage_summary = client.get_last_usage()
81+
model_usage = client.get_last_usage()
82+
root_model = request.model or client.model_name
83+
usage_summary = UsageSummary(model_usage_summaries={root_model: model_usage})
8084

8185
chat_completions = [
8286
RLMChatCompletion(
83-
root_model=request.model or client.model_name,
87+
root_model=root_model,
8488
prompt=prompt,
8589
response=content,
8690
usage_summary=usage_summary,

0 commit comments

Comments
 (0)