From ea47d2878374cd84f5d06dc1b485b69abb734197 Mon Sep 17 00:00:00 2001 From: yym68686 Date: Sun, 29 Sep 2024 17:18:29 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Bug:=20Fix=20the=20bug=20where?= =?UTF-8?q?=20there=20is=20no=20error=20handling=20for=20response=20JSON?= =?UTF-8?q?=20parsing=20errors.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/main.py b/main.py index cdc7e40..8560df1 100644 --- a/main.py +++ b/main.py @@ -268,18 +268,19 @@ async def _logging_iterator(self): if line.startswith("data:"): line = line.lstrip("data: ") if not line.startswith("[DONE]"): - resp: dict = json.loads(line) - input_tokens = safe_get(resp, "message", "usage", "input_tokens", default=0) - input_tokens = safe_get(resp, "usage", "prompt_tokens", default=0) - output_tokens = safe_get(resp, "usage", "completion_tokens", default=0) - total_tokens = input_tokens + output_tokens - - model = self.current_info.get("model", "") - # total_cost = calculate_cost(model, input_tokens, output_tokens) - self.current_info["prompt_tokens"] = input_tokens - self.current_info["completion_tokens"] = output_tokens - self.current_info["total_tokens"] = total_tokens - # self.current_info["cost"] = total_cost + try: + resp: dict = json.loads(line) + input_tokens = safe_get(resp, "message", "usage", "input_tokens", default=0) + input_tokens = safe_get(resp, "usage", "prompt_tokens", default=0) + output_tokens = safe_get(resp, "usage", "completion_tokens", default=0) + total_tokens = input_tokens + output_tokens + + self.current_info["prompt_tokens"] = input_tokens + self.current_info["completion_tokens"] = output_tokens + self.current_info["total_tokens"] = total_tokens + except Exception as e: + logger.error(f"Error parsing response: {str(e)}, line: {repr(line)}") + continue yield chunk except Exception as e: raise