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 帳戶,並擁有 Common Knowledge
一個用於訪問您的 Common Knowledge 的 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 獲取文檔的簡單示例:
os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key"
retriever = RememberizerRetriever(top_k_results=5)
docs = retriever.get_relevant_documents(query="向量嵌入是如何工作的?")
if docs: print(f"文件: {docs[0].metadata['name']}") print(f"內容: {docs[0].page_content[:200]}...")
此範例創建一個從 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 之前檢查原始搜索結果,以識別檢索問題
有關創建 Common Knowledge 和生成 API 金鑰的詳細說明,請參見 。
LangChain
LangChain
Rememberizer
Rememberizer 中的
- 一種 AI 整合的替代方法