MetaGPT icon indicating copy to clipboard operation
MetaGPT copied to clipboard

TypeError: issubclass() arg 1 must be a class when running startup.py

Open Stepbysteppsec opened this issue 2 years ago • 2 comments
trafficstars

Hello,

I've been encountering an issue while running the startup.py script in my project. When I try to run the script with the command python startup.py "write a snake game", the script fails with the following traceback:

Traceback (most recent call last): File "/home/lidenghui/MetaGPT/startup.py", line 5, in from metagpt.software_company import SoftwareCompany File "/home/lidenghui/MetaGPT/metagpt/software_company.py", line 11, in from metagpt.actions import BossRequirement File "/home/lidenghui/MetaGPT/metagpt/actions/init.py", line 14, in from metagpt.actions.design_api import WriteDesign File "/home/lidenghui/MetaGPT/metagpt/actions/design_api.py", line 13, in from metagpt.utils.common import CodeParser File "/home/lidenghui/MetaGPT/metagpt/utils/common.py", line 15, in from langchain.schema import AgentAction, AgentFinish, OutputParserException File "/home/lidenghui/lou/conda/envs/metagptenv/lib/python3.9/site-packages/langchain/init.py", line 6, in from langchain.agents import MRKLChain, ReActChain, SelfAskWithSearchChain File "/home/lidenghui/lou/conda/envs/metagptenv/lib/python3.9/site-packages/langchain/agents/init.py", line 2, in from langchain.agents.agent import ( File "/home/lidenghui/lou/conda/envs/metagptenv/lib/python3.9/site-packages/langchain/agents/agent.py", line 16, in from langchain.agents.tools import InvalidTool File "/home/lidenghui/lou/conda/envs/metagptenv/lib/python3.9/site-packages/langchain/agents/tools.py", line 8, in from langchain.tools.base import BaseTool, Tool, tool File "/home/lidenghui/lou/conda/envs/metagptenv/lib/python3.9/site-packages/langchain/tools/init.py", line 3, in from langchain.tools.arxiv.tool import ArxivQueryRun File "/home/lidenghui/lou/conda/envs/metagptenv/lib/python3.9/site-packages/langchain/tools/arxiv/tool.py", line 12, in from langchain.utilities.arxiv import ArxivAPIWrapper File "/home/lidenghui/lou/conda/envs/metagptenv/lib/python3.9/site-packages/langchain/utilities/init.py", line 3, in from langchain.utilities.apify import ApifyWrapper File "/home/lidenghui/lou/conda/envs/metagptenv/lib/python3.9/site-packages/langchain/utilities/apify.py", line 5, in from langchain.document_loaders import ApifyDatasetLoader File "/home/lidenghui/lou/conda/envs/metagptenv/lib/python3.9/site-packages/langchain/document_loaders/init.py", line 44, in from langchain.document_loaders.embaas import EmbaasBlobLoader, EmbaasLoader File "/home/lidenghui/lou/conda/envs/metagptenv/lib/python3.9/site-packages/langchain/document_loaders/embaas.py", line 54, in class BaseEmbaasLoader(BaseModel): File "pydantic/main.py", line 204, in pydantic.main.ModelMetaclass.new File "pydantic/fields.py", line 488, in pydantic.fields.ModelField.infer File "pydantic/fields.py", line 419, in pydantic.fields.ModelField.init File "pydantic/fields.py", line 539, in pydantic.fields.ModelField.prepare File "pydantic/fields.py", line 801, in pydantic.fields.ModelField.populate_validators File "pydantic/validators.py", line 696, in find_validators File "pydantic/validators.py", line 585, in pydantic.validators.make_typeddict_validator File "pydantic/annotated_types.py", line 35, in pydantic.annotated_types.create_model_from_typeddict File "pydantic/main.py", line 972, in pydantic.main.create_model File "pydantic/main.py", line 204, in pydantic.main.ModelMetaclass.new File "pydantic/fields.py", line 488, in pydantic.fields.ModelField.infer File "pydantic/fields.py", line 419, in pydantic.fields.ModelField.init File "pydantic/fields.py", line 534, in pydantic.fields.ModelField.prepare File "pydantic/fields.py", line 638, in pydantic.fields.ModelField._type_analysis File "/home/lidenghui/lou/conda/envs/metagptenv/lib/python3.9/typing.py", line 852, in subclasscheck return issubclass(cls, self.origin) TypeError: issubclass() arg 1 must be a class

The error seems to originate from typing.py and is related to issubclass(). The error message indicates that issubclass() was called with an argument that is not a class. The error is potentially linked to the pydantic library.

I've checked my code for any instances where I may be using a non-class argument as a class, but I couldn't find any such cases. I'm also using the latest versions of pydantic and all other relevant libraries.

Can you please provide any guidance on how to resolve this issue, or can you point out where I might be going wrong? Your help would be greatly appreciated.

Sent from PPHub

Stepbysteppsec avatar Jul 11 '23 03:07 Stepbysteppsec

This is a problem caused by the instability of the langchain code base. I will remove references to langchain as soon as possible.

geekan avatar Jul 11 '23 03:07 geekan

removed in https://github.com/geekan/MetaGPT/commit/bd9d6e94674f7bef9553835c7bfa3b9ffd347f25. check it again.

geekan avatar Jul 12 '23 16:07 geekan