Skip to content

Commit ab77bde

Browse files
authored
Merge pull request #777 from iorisa/fixbug/openai_error
feat: Maintain the original exceptions of OpenAI and HTTPX during exception handling.
2 parents 4e3e5f8 + cd919aa commit ab77bde

2 files changed

Lines changed: 9 additions & 3 deletions

File tree

metagpt/utils/common.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import aiofiles
2929
import loguru
3030
from pydantic_core import to_jsonable_python
31-
from tenacity import RetryCallState, _utils
31+
from tenacity import RetryCallState, RetryError, _utils
3232

3333
from metagpt.const import MESSAGE_ROUTE_TO_ALL
3434
from metagpt.logs import logger
@@ -501,7 +501,7 @@ async def wrapper(self, *args, **kwargs):
501501
self.rc.memory.delete(self.latest_observed_msg)
502502
# raise again to make it captured outside
503503
raise Exception(format_trackback_info(limit=None))
504-
except Exception:
504+
except Exception as e:
505505
if self.latest_observed_msg:
506506
logger.warning(
507507
"There is a exception in role's execution, in order to resume, "
@@ -510,6 +510,12 @@ async def wrapper(self, *args, **kwargs):
510510
# remove role newest observed msg to make it observed again
511511
self.rc.memory.delete(self.latest_observed_msg)
512512
# raise again to make it captured outside
513+
if isinstance(e, RetryError):
514+
last_error = e.last_attempt._exception
515+
name = any_to_str(last_error)
516+
if re.match(r"^openai\.", name) or re.match(r"^httpx\.", name):
517+
raise last_error
518+
513519
raise Exception(format_trackback_info(limit=None))
514520

515521
return wrapper

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def run(self):
5757

5858
setup(
5959
name="metagpt",
60-
version="0.6.5",
60+
version="0.6.6",
6161
description="The Multi-Agent Framework",
6262
long_description=long_description,
6363
long_description_content_type="text/markdown",

0 commit comments

Comments
 (0)