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ẽ.
Tích hợp LangChain
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.
Giới thiệu
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.
Bắt đầu
Điều kiện tiên quyết
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
Để biết hướng dẫn chi tiết về cách tạo Common Knowledge và tạo khóa API, xem Đăng ký và Sử dụng Khóa API.
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):
Thiết lập xác thực
Có hai cách để xác thực RememberizerRetriever:
Biến Môi Trường: Đặt biến môi trường
REMEMBERIZER_API_KEYTham Số Trực Tiếp: Truyền trực tiếp khóa API khi khởi tạo bộ thu
Tùy Chọn Cấu Hình
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)
Cách Sử Dụng Cơ Bản
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:
Đặt khóa API của bạn
os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key"
Khởi tạo bộ truy xuất
retriever = RememberizerRetriever(top_k_results=5)
Lấy tài liệu liên quan cho một truy vấn
docs = retriever.get_relevant_documents(query="Vector embeddings hoạt động như thế nào?")
Hiển thị tài liệu đầu tiên
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âng Cao
Xây dựng Hệ thống Hỏi-Đáp RAG
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:
Thiết lập khóa API
os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key" os.environ["OPENAI_API_KEY"] = "your_openai_api_key"
Khởi tạo bộ truy xuất và mô hình ngôn ngữ
retriever = RememberizerRetriever(top_k_results=5) llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0)
Tạo một chuỗi QA truy xuất
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 )
Đặt câu hỏi
response = qa_chain.invoke({"query": "RAG là gì trong bối cảnh AI?"})
In ra câu trả lời
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']}")
Thiết lập khóa API
os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key" os.environ["OPENAI_API_KEY"] = "your_openai_api_key"
Khởi tạo các thành phần
retriever = RememberizerRetriever(top_k_results=5) llm = ChatOpenAI(model_name="gpt-3.5-turbo") memory = ConversationBufferMemory( memory_key="chat_history", return_messages=True )
Tạo chuỗi hội thoại
conversation = ConversationalRetrievalChain.from_llm( llm=llm, retriever=retriever, memory=memory )
Ví dụ cuộc trò chuyện
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")
Tạo bộ thu thập
rememberizer_retriever = RememberizerRetriever(top_k_results=3) web_retriever = WebResearchRetriever(...) # Cấu hình bộ thu thập khác
Tạo một bộ với điểm số có trọng số
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
Tài nguyên liên quan
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
Last updated