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:

  1. Một tài khoản Rememberizer với Common Knowledge đã được tạo

  2. Một khóa API để truy cập vào Common Knowledge của bạn

  3. 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:

  1. Biến Môi Trường: Đặt biến môi trường REMEMBERIZER_API_KEY

  2. Tham 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:

Tham số
Loại
Mặc định
Mô tả

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:

Tham số Nâng Cao
Mô tả

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