RUC-GSAI / YuLan-Rec

MIT License
270 stars 18 forks source link

模拟中出现StockPickler.save(self, obj, save_persistent_id)运行报错 #12

Closed sod1010 closed 3 months ago

sod1010 commented 7 months ago

您好!我在尝试模拟recagent的过程中,在能够输出用户观看电影的行为后发生了如下报错: D:\Anaconda3\envs\recagent\lib\site-packages\dill_dill.py:414: PicklingWarning: Cannot locate reference to <class 'datetime.datetime'>. StockPickler.save(self, obj, save_persistent_id) D:\Anaconda3\envs\recagent\lib\site-packages\dill_dill.py:414: PicklingWarning: Cannot pickle <class 'datetime.datetime'>: datetime.datetime has recursive self-references that trigger a RecursionError. StockPickler.save(self, obj, save_persistent_id) 0%| | 0/50 [01:03<?, ?it/s] 能请问一下是什么原因吗?如何解决呢,非常感谢!

Paitesanshi commented 6 months ago

@sod1010 您好,请问使用的langchain版本是什么呢

sod1010 commented 6 months ago

我使用的是requirements.txt里0.0.186版本的langchain,另外,我使用conda install faiss-cpu -c pytorch安装的faiss是1.8.0版本的,dill是使用pip Install dill直接安装的0.3.8。这些包的版本会影响吗?十分感谢您的回复。

Paitesanshi commented 6 months ago

@sod1010 您好,这个报错是由LangChain的mock_now()函数引起的,如果config中agent_memory使用recagent,可以注释掉agents/recagent_memory中509行的mock_now,如果使用GenerativeAgentMemory可能需要注释掉langchain/utils.py中的mock_now函数