from langchain import Chain, LLM, LLMCache, LLMProcgen, MongoLLM
from langchain.chains import LLMChain
from langchain.memory import MongoMemory
from langchain.vectorstores import MongoVectorstore
# 初始化MongoDB客户端
from pymongo import MongoClient
client = MongoClient("mongodb://localhost:27017")
db = client.rag_database
# 使用MongoDB作为LLM的缓存
llm_cache = LLMCache(MongoLLM(db=db))
# 使用MongoDB作为向量存储
vectorstore = MongoVectorstore(db=db)
# 使用MongoDB作为内存
memory = MongoMemory(db=db)
# 创建LLM模型,使用MongoDB作为缓存
llm = LLM(model_name="gpt-3.5-turbo", llm_cache=llm_cache)
# 创建一个简单的LLMProcgen,使用MongoDB作为向量存储和内存
llm_procgen = LLMProcgen(llm=llm, vectorstore=vectorstore, memory=memory)
# 创建一个基于LLMProcgen的应用链
app_chain = Chain(llm_procgen)
# 用户可以通过CLI或其他方式提交查询
user_query = "What is the capital of France?"
# 执行查询并获取结果
result = app_chain.run(user_query)
# 打印结果
print(result)
这段代码展示了如何使用MongoDB来存储LangChain应用中的LLM模型、内存和向量存储。这样可以确保即使在应用程序重启后,也可以快速访问之前的信息,提高应用的效率和用户体验。