LangChain 集成
了解如何将 Rememberizer 作为 LangChain 检索器集成,以便为您的 LangChain 应用程序提供强大的向量数据库搜索访问。
Last updated
了解如何将 Rememberizer 作为 LangChain 检索器集成,以便为您的 LangChain 应用程序提供强大的向量数据库搜索访问。
Last updated
Rememberizer 通过 RememberizerRetriever
类与 LangChain 集成,使您能够轻松地将 Rememberizer 的语义搜索功能纳入您的 LangChain 驱动的应用程序中。本指南解释了如何设置和使用此集成,以构建具有访问您的知识库的高级 LLM 应用程序。
LangChain 是一个流行的框架,用于构建大型语言模型(LLMs)应用程序。通过将 Rememberizer 与 LangChain 集成,您可以:
在 RAG(检索增强生成)应用程序中使用您的 Rememberizer 知识库
创建可以访问您的文档和数据的聊天机器人
构建利用您的知识的问答系统
开发能够搜索和推理您信息的代理
该集成可在 langchain_community.retrievers
模块中使用。
在开始之前,您需要:
一个创建了公共知识的 Rememberizer 账户
一个用于访问您的公共知识的 API 密钥
安装了 LangChain 的 Python 环境
安装所需的包:
如果您计划使用 OpenAI 模型(如下例所示):
有两种方法可以验证 RememberizerRetriever
:
环境变量:设置 REMEMBERIZER_API_KEY
环境变量
直接参数:在初始化检索器时直接传递 API 密钥
RememberizerRetriever
类接受以下参数:
top_k_results
int
10
从搜索中返回的文档数量
rememberizer_api_key
str
None
用于身份验证的 API 密钥(如果设置为环境变量,则为可选)
在后台,检索器通过额外的可配置参数向 Rememberizer 的搜索端点发出 API 调用:
prev_chunks
包含的匹配块之前的块数(默认:2)
next_chunks
包含的匹配块之后的块数(默认:2)
return_full_content
是否返回完整文档内容(默认:true)
这是一个使用 LangChain 从 Rememberizer 检索文档的简单示例:
检索器返回的每个文档都有:
page_content
: 匹配文档块的文本内容
metadata
: 关于文档的附加信息
元数据结构示例:
此示例创建一个从 Rememberizer 检索信息并使用 GPT-3.5 形成答案的问答系统:
os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key" os.environ["OPENAI_API_KEY"] = "your_openai_api_key"
retriever = RememberizerRetriever(top_k_results=5) llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0)
qa_chain = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", # 最简单的方法 - 只需将所有文档填入提示中 retriever=retriever, return_source_documents=True )
response = qa_chain.invoke({"query": "在人工智能的背景下,RAG是什么?"})
print(f"答案: {response['result']}") print("\n来源:") for idx, doc in enumerate(response['source_documents']): print(f"{idx+1}. {doc.metadata['name']}")
os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key" os.environ["OPENAI_API_KEY"] = "your_openai_api_key"
retriever = RememberizerRetriever(top_k_results=5) llm = ChatOpenAI(model_name="gpt-3.5-turbo") memory = ConversationBufferMemory( memory_key="chat_history", return_messages=True )
conversation = ConversationalRetrievalChain.from_llm( llm=llm, retriever=retriever, memory=memory )
questions = [ "什么是RAG?", "大型语言模型如何使用它?", "这种方法有哪些局限性?", ]
for question in questions: response = conversation.invoke({"question": question}) print(f"问题: {question}") print(f"回答: {response['answer']}\n")
rememberizer_retriever = RememberizerRetriever(top_k_results=3) web_retriever = WebResearchRetriever(...) # 配置另一个检索器
ensemble_retriever = EnsembleRetriever( retrievers=[rememberizer_retriever, web_retriever], weights=[0.7, 0.3] # Rememberizer 的结果权重更高 )
在传递给 LLM 之前检查原始搜索结果,以识别检索问题
有关创建公共知识和生成 API 密钥的详细说明,请参见 。
LangChain
LangChain
Rememberizer
Rememberizer 中的
- 一种 AI 集成的替代方法