python 从langchain中调用ConversationalRetrievalChain.chains不工作

jtw3ybtb  于 12个月前  发布在  Python
关注(0)|答案(4)|浏览(145)

我正在尝试遵循各种关于langchain和streamlit的教程,我遇到了许多关于导入名称的问题。我的主要问题是,我似乎无法从langchain. chains导入ConversationalRetrievalChain。这不是这个奇怪问题的第一个案例,例如

from langchain.chains import ConversationBufferMemory

字符串
这行代码不起作用,并返回错误:cannot import name 'ConversationBufferMemory' from 'langchain.chains'(/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/langchain/chains/init.py)
但是,当我编写以下代码时,

from langchain.chains.conversation.memory import ConversationBufferMemory


它工作得很好。看起来好像在import语句中指定我想要使用的包的路径是它工作的必要条件。
考虑到这一点,我想知道是否有人对ConversationalRetrievalChain的路径有任何见解。我尝试了this,但langchain.chains.conversational_retrieval不存在,许多其他网站,如[官方langchain网站](https://python.langchain.com/docs/modules/memory/conversational_customization)只会让我更误入歧途。
有谁知道ConversationalRetrievalChain在Langchain 0.0.27版本中的位置,或者我如何自己去找到它。非常感谢:)
我在代码中尝试了:

  • from langchain.chains import ConversationalRetrievalChain
  • from langchain.chains.conversation import ConversationalRetrievalChain
  • from langchain.chains.conversation.memory import ConversationalRetrievalChain
  • langchain.chains.conversational_retrieval.base import ConversationalRetrievalChain

其他事情:

  • 安装一个旧版本的langchain(一直说我需要python >= 3.8.1,即使我有python 3.8.9)

我去哪里看:

  • /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/langchain/chains/
  • Langchain文档
1hdlvixo

1hdlvixo1#

我也有类似的问题:

ImportError: cannot import name 'ConversationalRetrievalChain' from 'langchain.chains'

字符串
对我来说,升级到最新的langchain包版本帮助:

pip install langchain --upgrade


实际版本是'0.0.266',所以可能安装它而不是有人指出的'0.0.208'。
请安装最新版本的Python(我使用的是v.3.11),因为旧版本可能不支持新版本的langchain。

rsl1atfo

rsl1atfo2#

你可以试试下面的步骤。
使用以下命令创建虚拟环境

python -m venv my_venv_name

字符串
通过执行源代码激活虚拟环境

my_venv_name/bin/activate


PIP安装库

pip install langchain==0.0.208 
pip install """Other required libraries like OpenAI etc..


您现在应该能够成功导入

from langchain.chains import ConversationBufferMemory

vuktfyat

vuktfyat3#

ConversationBufferMemory属于langchain.memory,或者具体地说是langchain.memory.buffer,如果您这样做的话

from langchain.memory.buffer import ConversationBufferMemory
from langchain.memory import ConversationBufferMemory

字符串
这两个都应该可以工作。检查API参考> https://api.python.langchain.com/en/latest/memory/langchain.memory.buffer.ConversationBufferMemory.html
顺便说一下,我的环境中的langchain

pip list | grep langchain
langchain                0.0.264

ozxc1zmp

ozxc1zmp4#

我在我的GoogleColab上做了以下事情,它奏效了!
第一:

!pip install langchain --upgrade

字符串
然后又道:

!pip3 install langchain==0.0.208


然后又道:

from langchain.chains import ConversationChain


然后又道:

from langchain.memory import ConversationBufferMemory

相关问题