如果想保留 LangChain 1.0+ 的新功能,不降级环境,可替换 doctran 的 “问答转换” 功能(用 LangChain 原生工具或其他兼容库实现)。
替代方案:用 LangChain 1.0+ 实现问答转换
doctran 的核心功能是 “文档→问答对”,可直接用 langchain-community 的 QATransformer 或 OpenAIQATransformer 替代(无需依赖 doctran),修改代码如下:
原 doctran 代码(示例):LangChain 只能用 0.x,功能受限
python
# 原依赖(需要 doctran)
from doctran import Doctran
# 原代码逻辑(假设是文档转问答对)
doctran = Doctran(openai_api_key="你的密钥")
document = "xxx 文档内容 xxx"
qa_pairs = doctran.document(document).qna().execute()
print(qa_pairs)
替换为 LangChain 1.0+ 代码(无需 doctran):
python
# 新依赖(LangChain 1.0+ 原生支持)
from langchain_community.document_transformers import QATransformer
from langchain_openai import ChatOpenAI
# 初始化大模型(用 openai 1.x 版本,兼容 LangChain 1.0+)
llm = ChatOpenAI(model="gpt-3.5-turbo", api_key="你的密钥", openai_api_version="v1")
# 文档转问答对(功能与 doctran 一致)
qa_transformer = QATransformer(llm=llm)
document = "xxx 文档内容 xxx" # 你的文档内容
qa_pairs = qa_transformer.transform_documents([document]) # 传入文档列表
# 输出问答对
for qa in qa_pairs:
print(f"问题:{qa.metadata['question']}")
print(f"答案:{qa.page_content}\n")
步骤 1:确保当前环境是 LangChain 1.0+
如果之前执行过方案 A,环境已满足;若未执行,重新安装:
bash
# 确保 LangChain 1.0+ 和兼容的依赖
pip install langchain==1.0.8 langchain-core==1.0.6 langchain-community==0.4.1 langchain-openai==1.0.2 openai==1.109.1 tiktoken==0.12.0 pydantic==2.12.4 packaging==24.2
步骤 2:运行修改后的代码
无需 doctran,代码可正常生成问答对,且保留了 LangChain 1.0+ 的功能。