From 6aa80d2a4cda6f44b65f76419ad0472e6c0c6f0f Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Mon, 9 Dec 2024 07:45:50 -0800 Subject: [PATCH] feat: handle cost calculation differently for context window vs other errors --- aider/coders/base_coder.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/aider/coders/base_coder.py b/aider/coders/base_coder.py index 6b7c971a0..ff37c423f 100755 --- a/aider/coders/base_coder.py +++ b/aider/coders/base_coder.py @@ -1559,6 +1559,16 @@ class Coder: yield from self.show_send_output_stream(completion) else: self.show_send_output(completion) + + # Calculate costs for successful responses + self.calculate_and_show_tokens_and_cost(messages, completion) + + except litellm_ex.exceptions_tuple() as err: + ex_info = litellm_ex.get_ex_info(err) + if ex_info.name == "ContextWindowExceededError": + # Still calculate costs for context window errors + self.calculate_and_show_tokens_and_cost(messages, completion) + raise except KeyboardInterrupt as kbi: self.keyboard_interrupt() raise kbi @@ -1576,8 +1586,6 @@ class Coder: if args: self.io.ai_output(json.dumps(args, indent=4)) - self.calculate_and_show_tokens_and_cost(messages, completion) - def show_send_output(self, completion): if self.verbose: print(completion)