From 50cdecf627e8760a14d628f4a495ab78e65dfb61 Mon Sep 17 00:00:00 2001 From: better629 Date: Sun, 29 Sep 2024 14:47:25 +0800 Subject: [PATCH] simplify code --- metagpt/provider/openai_api.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/metagpt/provider/openai_api.py b/metagpt/provider/openai_api.py index 85d5ef50e..1e0ccd206 100644 --- a/metagpt/provider/openai_api.py +++ b/metagpt/provider/openai_api.py @@ -99,12 +99,13 @@ class OpenAILLM(BaseLLM): ) log_llm_stream(chunk_message) collected_messages.append(chunk_message) + chunk_has_usage = hasattr(chunk, "usage") and chunk.usage if has_finished: # for oneapi, there has a usage chunk after finish_reason not none chunk - if hasattr(chunk, "usage"): + if chunk_has_usage: usage = CompletionUsage(**chunk.usage) if finish_reason: - if hasattr(chunk, "usage") and chunk.usage is not None: + if chunk_has_usage: # Some services have usage as an attribute of the chunk, such as Fireworks if isinstance(chunk.usage, CompletionUsage): usage = chunk.usage @@ -113,7 +114,7 @@ class OpenAILLM(BaseLLM): elif hasattr(chunk.choices[0], "usage"): # The usage of some services is an attribute of chunk.choices[0], such as Moonshot usage = CompletionUsage(**chunk.choices[0].usage) - elif "openrouter.ai" in self.config.base_url and hasattr(chunk, "usage") and chunk.usage is not None: + elif "openrouter.ai" in self.config.base_url and chunk_has_usage: # due to it get token cost from api usage = chunk.usage has_finished = True