You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于LangChain的Web研究Agent依赖冲突问题求助

问题:LangChain 0.1.x与langchain-contrib依赖冲突导致导入循环

核心矛盾

  • 升级LangChain到0.1.0后,create_openai_functions_agent导入正常,但langchain-contrib包因依赖旧版LangChain的langchain.schema.BaseLanguageModel报错
  • 降级LangChain到旧版本(如0.0.148)能解决langchain-contrib的导入问题,但create_openai_functions_agent又无法导入(该API在LangChain 0.1.x才稳定提供)

当前环境信息

Python版本

Python 3.12.1

完整依赖列表

aiohttp==3.9.1
aiosignal==1.3.1
annotated-types==0.6.0
anyio==4.2.0
attrs==23.2.0
beautifulsoup4==4.12.2
certifi==2023.11.17
charset-normalizer==3.3.2
click==8.1.7
colorama==0.4.6
dataclasses-json==0.5.14
distro==1.9.0
executing==2.0.1
fastapi==0.108.0
frozenlist==1.4.1
fsspec==2023.12.2
fvalues==0.0.3
gpt-index==0.8.42
greenlet==3.0.3
h11==0.14.0
httpcore==1.0.2
httpx==0.26.0
idna==3.6
joblib==1.3.2
jsonpatch==1.33
jsonpointer==2.4
langchain==0.1.0
langchain-community==0.0.11
langchain-contrib==0.0.4
langchain-core==0.1.8
langchain-openai==0.0.2
langsmith==0.0.79
llama_index==0.5.6
marshmallow==3.20.1
multidict==6.0.4
mypy-extensions==1.0.0
nest-asyncio==1.5.8
nltk==3.8.1
numexpr==2.8.8
numpy==1.26.3
openai==1.7.0
openapi-schema-pydantic==1.2.4
packaging==23.2
pandas==2.1.4
pexpect==4.9.0
ptyprocess==0.7.0
pydantic==1.10.8
pydantic_core==2.14.6
python-dateutil==2.8.2
python-dotenv==1.0.0
pytz==2023.3.post1
PyYAML==6.0.1
regex==2023.12.25
requests==2.31.0
setuptools==69.0.3
simple-term-menu==1.6.4
six==1.16.0
sniffio==1.3.0
soupsieve==2.5
SQLAlchemy==2.0.25
starlette==0.32.0.post1
tenacity==8.2.3
tiktoken==0.5.2
tqdm==4.66.1
typing-inspect==0.9.0
typing_extensions==4.9.0
tzdata==2023.4
urllib3==1.26.18
yarl==1.9.4

应用代码片段

import os
import json
import requests
from dotenv import load_dotenv
from langchain.prompts import PromptTemplate
from langchain_contrib.prompts import ChainedPromptTemplate
from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor, create_openai_functions_agent
from langchain.tools import BaseTool
from langchain.prompts import PromptTemplate, MessagesPlaceholder
from langchain.memory import ConversationSummaryBufferMemory
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.chains import LLMSummarizationCheckerChain
from pydantic import BaseModel, Field
from bs4 import BeautifulSoup
from fastapi import FastAPI

load_dotenv()
browserless_api_key = os.getenv("BROWSERLESS_API_KEY")
serper_api_key = os.getenv("SERP_API_KEY")

# 后续代码省略

解决方案

1. 替换langchain-contrib的依赖功能

langchain-contrib的ChainedPromptTemplate可以用LangChain官方的PipelinePromptTemplate替代,无需依赖第三方包:

# 原导入
# from langchain_contrib.prompts import ChainedPromptTemplate
# 替换为官方实现
from langchain.prompts import PipelinePromptTemplate

官方PipelinePromptTemplate的用法与ChainedPromptTemplate完全兼容,直接替换即可。

2. 手动修复langchain-contrib的导入兼容问题

如果必须使用langchain-contrib的其他功能,可临时修改其源码:

  • 找到langchain-contrib安装目录下的相关文件(如prompts.py)
  • 将from langchain.schema import BaseLanguageModel替换为from langchain_core.language_models import BaseLanguageModel
  • 保存后重新运行代码

3. 升级langchain-contrib到兼容版本

检查langchain-contrib的最新版本是否已适配LangChain 0.1.x,执行升级命令:

pip install --upgrade langchain-contrib

如果最新版本仍未适配,可提交Issue到其代码仓库请求更新。

4. 清理冲突依赖

移除旧版llama-index相关包(gpt-index和llama_index共存可能导致冲突):

pip uninstall -y gpt-index llama_index
pip install llama-index --upgrade

确保llama-index版本兼容LangChain 0.1.x。


内容的提问来源于stack exchange,提问作者Ozzymandius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 08:25:28