Langchain导入AgentType报错:无法导入create_model
解决Langchain导入AgentType时的ImportError问题
问题情况
在Python 3.11.7的空conda环境中,通过pip安装了最新版Langchain,当前包版本:
langchain 0.1.13 langchain-community 0.0.29 langchain-core 0.1.33 langchain-text-splitters 0.0.1
执行导入语句from langchain.agents import AgentType时触发错误:
ImportError: cannot import name 'create_model' from 'langchain_core.runnables.utils'
完整回溯信息:
--------------------------------------------------------------------------- ImportError Traceback (most recent call last) Cell In[14], line 7 5 import openai 6 from langchain_openai import AzureChatOpenAI ----> 7 from langchain.agents import AgentType 8 from azure.storage.blob import BlobServiceClient 9 from azure.identity import DefaultAzureCredential File c:\Users\a704601\AppData\Local\miniconda3\envs\spie\Lib\site-packages\langchain\agents\__init__.py:34 31 from pathlib import Path 32 from typing import Any ---> 34 from langchain_community.agent_toolkits import ( 35 create_json_agent, 36 create_openapi_agent, 37 create_pbi_agent, 38 create_pbi_chat_agent, 39 create_spark_sql_agent, 40 create_sql_agent, 41 ) 42 from langchain_core._api.path import as_import_path 44 from langchain.agents.agent import ( 45 Agent, 46 AgentExecutor, (...) 50 LLMSingleActionAgent, 51 ) File c:\Users\a704601\AppData\Local\miniconda3\envs\spie\Lib\site-packages\langchain_community\agent_toolkits\__init__.py:41, in __getattr__(name) 39 def __getattr__(name: str) -> Any: 40 if name in _module_lookup: ---> 41 module = importlib.import_module(_module_lookup[name]) 42 return getattr(module, name) 43 raise AttributeError(f"module {__name__} has no attribute {name}") File c:\Users\a704601\AppData\Local\miniconda3\envs\spie\Lib\importlib\__init__.py:126, in import_module(name, package) 124 break 125 level += 1 ---> 126 return _bootstrap._gcd_import(name[level:], package, level) File c:\Users\a704601\AppData\Local\miniconda3\envs\spie\Lib\site-packages\langchain_community\agent_toolkits\powerbi\base.py:13 7 from langchain_core.language_models import BaseLanguageModel 9 from langchain_community.agent_toolkits.powerbi.prompt import ( 10 POWERBI_PREFIX, 11 POWERBI_SUFFIX, 12 ) ---> 13 from langchain_community.agent_toolkits.powerbi.toolkit import PowerBIToolkit 14 from langchain_community.utilities.powerbi import PowerBIDataset 16 if TYPE_CHECKING: File c:\Users\a704601\AppData\Local\miniconda3\envs\spie\Lib\site-packages\langchain_community\agent_toolkits\powerbi\toolkit.py:9 7 from langchain_core.language_models import BaseLanguageModel 8 from langchain_core.language_models.chat_models import BaseChatModel ---> 9 from langchain_core.prompts import PromptTemplate 10 from langchain_core.prompts.chat import ( 11 ChatPromptTemplate, 12 HumanMessagePromptTemplate, 13 SystemMessagePromptTemplate, 14 ) 15 from langchain_core.pydantic_v1 import Field File c:\Users\a704601\AppData\Local\miniconda3\envs\spie\Lib\site-packages\langchain_core\prompts\__init__.py:27 1 """**Prompt** is the input to the model. 2 3 Prompt is often constructed (...) 25 26 """ # noqa: E501 ---> 27 from langchain_core.prompts.base import BasePromptTemplate, format_document 28 from langchain_core.prompts.chat import ( 29 AIMessagePromptTemplate, 30 BaseChatPromptTemplate, (...) 35 SystemMessagePromptTemplate, 36 ) 37 from langchain_core.prompts.few_shot import ( 38 FewShotChatMessagePromptTemplate, 39 FewShotPromptTemplate, 40 ) File c:\Users\a704601\AppData\Local\miniconda3\envs\spie\Lib\site-packages\langchain_core\prompts\base.py:31 29 from langchain_core.runnables import RunnableConfig, RunnableSerializable 30 from langchain_core.runnables.config import ensure_config ---> 31 from langchain_core.runnables.utils import create_model 33 if TYPE_CHECKING: 34 from langchain_core.documents import Document ImportError: cannot import name 'create_model' from 'langchain_core.runnables.utils'
解决方案
方案1:升级langchain-core到兼容版本
当前langchain-community 0.0.29依赖的langchain-core版本高于0.1.33,执行以下命令升级:
pip install --upgrade langchain-core
升级完成后重新运行导入语句即可。
方案2:降级到稳定兼容的旧版本
如果升级后仍有问题,可安装经过验证的兼容版本组合,执行以下命令:
pip install langchain==0.1.12 langchain-community==0.0.28 langchain-core==0.1.32 langchain-text-splitters==0.0.1
该版本组合可稳定运行基础Agent相关功能,包括AgentType的导入。
方案3:临时绕过PowerBI工具包导入(针对无需PowerBI功能的场景)
如果不需要PowerBI相关功能,可直接导入AgentType所在的具体模块,避免触发langchain-community中PowerBI工具包的自动导入:
from langchain.agents.agent import AgentType
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

