Tích hợp LangChain
Tìm hiểu cách tích hợp Rememberizer như một trình truy xuất LangChain để cung cấp cho ứng dụng LangChain của bạn quyền truy cập vào tìm kiếm cơ sở dữ liệu vector mạnh mẽ.
Last updated
Tìm hiểu cách tích hợp Rememberizer như một trình truy xuất LangChain để cung cấp cho ứng dụng LangChain của bạn quyền truy cập vào tìm kiếm cơ sở dữ liệu vector mạnh mẽ.
Last updated
Rememberizer tích hợp với LangChain thông qua lớp RememberizerRetriever
, cho phép bạn dễ dàng kết hợp khả năng tìm kiếm ngữ nghĩa của Rememberizer vào các ứng dụng được hỗ trợ bởi LangChain. Hướng dẫn này giải thích cách thiết lập và sử dụng tích hợp này để xây dựng các ứng dụng LLM tiên tiến với quyền truy cập vào cơ sở tri thức của bạn.
LangChain là một framework phổ biến để xây dựng các ứng dụng với các mô hình ngôn ngữ lớn (LLMs). Bằng cách tích hợp Rememberizer với LangChain, bạn có thể:
Sử dụng cơ sở kiến thức Rememberizer của bạn trong các ứng dụng RAG (Tạo ra Tăng cường Tìm kiếm)
Tạo ra các chatbot có quyền truy cập vào tài liệu và dữ liệu của bạn
Xây dựng các hệ thống trả lời câu hỏi tận dụng kiến thức của bạn
Phát triển các tác nhân có thể tìm kiếm và suy luận trên thông tin của bạn
Sự tích hợp có sẵn trong mô-đun langchain_community.retrievers
.
Trước khi bắt đầu, bạn cần:
Một tài khoản Rememberizer với Common Knowledge đã được tạo
Một khóa API để truy cập vào Common Knowledge của bạn
Môi trường Python với LangChain đã được cài đặt
Cài đặt các gói cần thiết:
Nếu bạn dự định sử dụng các mô hình OpenAI (như được hiển thị trong các ví dụ bên dưới):
Có hai cách để xác thực RememberizerRetriever
:
Biến Môi Trường: Đặt biến môi trường REMEMBERIZER_API_KEY
Tham Số Trực Tiếp: Truyền trực tiếp khóa API khi khởi tạo bộ thu
Lớp RememberizerRetriever
chấp nhận các tham số sau:
top_k_results
int
10
Số lượng tài liệu để trả về từ tìm kiếm
rememberizer_api_key
str
None
Khóa API để xác thực (tùy chọn nếu được đặt là biến môi trường)
Trong bối cảnh, bộ truy xuất thực hiện các cuộc gọi API đến điểm cuối tìm kiếm của Rememberizer với các tham số cấu hình bổ sung:
prev_chunks
Số lượng khối trước khối khớp để bao gồm (mặc định: 2)
next_chunks
Số lượng khối sau khối khớp để bao gồm (mặc định: 2)
return_full_content
Có trả về nội dung tài liệu đầy đủ hay không (mặc định: true)
Dưới đây là một ví dụ đơn giản về việc truy xuất tài liệu từ Rememberizer bằng cách sử dụng LangChain:
os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key"
retriever = RememberizerRetriever(top_k_results=5)
docs = retriever.get_relevant_documents(query="Vector embeddings hoạt động như thế nào?")
if docs: print(f"Tài liệu: {docs[0].metadata['name']}") print(f"Nội dung: {docs[0].page_content[:200]}...")
Ví dụ này tạo ra một hệ thống hỏi-đáp mà truy xuất thông tin từ Rememberizer và sử dụng GPT-3.5 để hình thành câu trả lời:
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", # Phương pháp đơn giản nhất - chỉ cần nhét tất cả tài liệu vào lời nhắc retriever=retriever, return_source_documents=True )
response = qa_chain.invoke({"query": "RAG là gì trong bối cảnh AI?"})
print(f"Câu trả lời: {response['result']}") print("\nNguồ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 là gì?", "Các mô hình ngôn ngữ lớn sử dụng nó như thế nào?", "Những hạn chế của phương pháp này là gì?", ]
for question in questions: response = conversation.invoke({"question": question}) print(f"Câu hỏi: {question}") print(f"Câu trả lời: {response['answer']}\n")
rememberizer_retriever = RememberizerRetriever(top_k_results=3) web_retriever = WebResearchRetriever(...) # Cấu hình bộ thu thập khác
ensemble_retriever = EnsembleRetriever( retrievers=[rememberizer_retriever, web_retriever], weights=[0.7, 0.3] # Kết quả từ Rememberizer có trọng số cao hơn )
Kiểm tra kết quả tìm kiếm thô trước khi truyền cho LLM để xác định các vấn đề truy xuất
Hướng dẫn khái niệm [Retriever] của LangChain (https://python.langchain.com/docs/concepts/#retrievers)
Hướng dẫn cách thực hiện [Retriever] của LangChain (https://python.langchain.com/docs/how_to/#retrievers)
Tài liệu [API] của Rememberizer (https://docs.rememberizer.ai/developer/api-docs/)
[Cửa hàng Vector] (https://docs.rememberizer.ai/developer/vector-stores) trong Rememberizer
[Tạo một Rememberizer GPT] (creating-a-rememberizer-gpt.md) - Một phương pháp thay thế cho việc tích hợp AI
Để biết hướng dẫn chi tiết về cách tạo Common Knowledge và tạo khóa API, xem .