Làm cách nào để sử dụng VectorStoreRetrieverMemory trong LangChain?

Lam Cach Nao De Su Dung Vectorstoreretrievermemory Trong Langchain



Mô hình ngôn ngữ lớn hoặc LLM là giải pháp cho các vấn đề Xử lý ngôn ngữ tự nhiên được xây dựng bằng khung LangChain. Mô-đun LangChain cung cấp tất cả các phần phụ thuộc hoặc thư viện cần thiết để thiết kế mô hình trò chuyện hoặc LLM. Người dùng cũng có thể thiết lập công cụ truy xuất để trích xuất dữ liệu từ các kho lưu trữ vectơ hoặc cơ sở dữ liệu bằng cách sử dụng các mô hình.

Hướng dẫn này sẽ minh họa cách sử dụng VectorStoreRetrieverMemory bằng khung LangChain.

Làm cách nào để sử dụng VectorStoreRetrieverMemory trong LangChain?

VectorStoreRetrieverMemory là thư viện của LangChain có thể được sử dụng để trích xuất thông tin/dữ liệu từ bộ nhớ bằng cách sử dụng các cửa hàng vectơ. Cửa hàng vectơ có thể được sử dụng để lưu trữ và quản lý dữ liệu nhằm trích xuất thông tin một cách hiệu quả theo lời nhắc hoặc truy vấn.







Để tìm hiểu quy trình sử dụng VectorStoreRetrieverMemory trong LangChain, chỉ cần xem qua hướng dẫn sau:



Bước 1: Cài đặt mô-đun

Bắt đầu quá trình sử dụng trình truy xuất bộ nhớ bằng cách cài đặt LangChain bằng lệnh pip:



pip cài đặt langchain





Cài đặt các mô-đun FAISS để lấy dữ liệu bằng cách sử dụng tìm kiếm tương tự về ngữ nghĩa:

cài đặt pip thất bại-gpu



Cài đặt mô-đun chromadb để sử dụng cơ sở dữ liệu Chroma. Nó hoạt động như một kho lưu trữ vector để xây dựng bộ nhớ cho chó tha mồi:

pip cài đặt chromadb

Cần cài đặt một mô-đun khác tiktoken, mô-đun này có thể được sử dụng để tạo mã thông báo bằng cách chuyển đổi dữ liệu thành các phần nhỏ hơn:

pip cài đặt tiktoken

Cài đặt mô-đun OpenAI để sử dụng các thư viện của nó nhằm xây dựng LLM hoặc chatbot bằng môi trường của nó:

cài đặt pip openai

Thiết lập môi trường trên Python IDE hoặc sổ ghi chép bằng khóa API từ tài khoản OpenAI:

nhập khẩu Bạn

nhập khẩu vượt qua

Bạn . khoảng [ 'OPENAI_API_KEY' ] = vượt qua . vượt qua ( 'Khóa API OpenAI:' )

Bước 2: Nhập thư viện

Bước tiếp theo là lấy thư viện từ các mô-đun này để sử dụng trình truy xuất bộ nhớ trong LangChain:

từ langchain. lời nhắc nhập khẩu Mẫu nhắc nhở

từ ngày giờ nhập khẩu ngày giờ

từ langchain. llms nhập khẩu OpenAI

từ langchain. phần nhúng . openai nhập khẩu OpenAIEmbeddings

từ langchain. dây chuyền nhập khẩu Chuỗi hội thoại

từ langchain. ký ức nhập khẩu VectorCửa hàngRetrieverBộ nhớ

Bước 3: Khởi tạo Cửa hàng Vector

Hướng dẫn này sử dụng cơ sở dữ liệu Chroma sau khi nhập thư viện FAISS để trích xuất dữ liệu bằng lệnh đầu vào:

nhập khẩu thất bại

từ langchain. tiệm thuốc nhập khẩu InMemoryDocstore
#importing thư viện để định cấu hình cơ sở dữ liệu hoặc kho vectơ
từ langchain. cửa hàng vector nhập khẩu THẤT ​​BẠI

#tạo các phần nhúng và văn bản để lưu trữ chúng trong kho vectơ
nhúng_size = 1536
mục lục = thất bại. Chỉ sốPhẳngL2 ( nhúng_size )
nhúng_fn = OpenAIEmbeddings ( ) . embed_query
cửa hàng vector = THẤT ​​BẠI ( nhúng_fn , mục lục , InMemoryDocstore ( { } ) , { } )

Bước 4: Xây dựng Retriever được hỗ trợ bởi Vector Store

Xây dựng bộ nhớ để lưu trữ các tin nhắn gần đây nhất trong cuộc trò chuyện và lấy bối cảnh của cuộc trò chuyện:

người săn mồi = vectorstore. as_retriever ( search_kwargs = mệnh lệnh ( k = 1 ) )
ký ức = VectorCửa hàngRetrieverBộ nhớ ( người săn mồi = người săn mồi )

ký ức. lưu_bối cảnh ( { 'đầu vào' : 'Tôi thích ăn pizza' } , { 'đầu ra' : 'tuyệt vời' } )
ký ức. lưu_bối cảnh ( { 'đầu vào' : 'Tôi chơi bóng đá giỏi' } , { 'đầu ra' : 'Được rồi' } )
ký ức. lưu_bối cảnh ( { 'đầu vào' : “Tôi không thích chính trị” } , { 'đầu ra' : 'Chắc chắn' } )

Kiểm tra bộ nhớ của mô hình bằng cách sử dụng dữ liệu đầu vào do người dùng cung cấp cùng với lịch sử của mô hình:

in ( ký ức. tải_memory_variables ( { 'lời nhắc' : 'Tôi nên xem môn thể thao nào?' } ) [ 'lịch sử' ] )

Bước 5: Sử dụng Retriever trong chuỗi

Bước tiếp theo là sử dụng trình truy xuất bộ nhớ với các chuỗi bằng cách xây dựng LLM bằng phương thức OpenAI() và định cấu hình mẫu lời nhắc:

ừm = OpenAI ( nhiệt độ = 0 )
_DEFAULT_TEMPLATE = '''Là sự tương tác giữa con người và máy móc
Hệ thống tạo ra thông tin hữu ích với các chi tiết sử dụng ngữ cảnh
Nếu hệ thống không có câu trả lời cho bạn, nó chỉ nói rằng tôi không có câu trả lời

Thông tin quan trọng từ cuộc trò chuyện:
{lịch sử}
(nếu văn bản không liên quan thì không sử dụng nó)

Trò chuyện hiện tại:
Con người: {đầu vào}
AI:'''

LỜI NHẮC = Mẫu nhắc nhở (
đầu vào_biến = [ 'lịch sử' , 'đầu vào' ] , bản mẫu = _DEFAULT_TEMPLATE
)
#configure ConversationChain() bằng cách sử dụng các giá trị cho tham số của nó
cuộc trò chuyện_với_tóm tắt = Chuỗi hội thoại (
ừm = ừm ,
lời nhắc = LỜI NHẮC ,
ký ức = ký ức ,
dài dòng = ĐÚNG VẬY
)
cuộc trò chuyện_với_tóm tắt. dự đoán ( đầu vào = 'Xin chào, tên tôi là Perry, có chuyện gì thế?' )

đầu ra

Việc thực thi lệnh sẽ chạy chuỗi và hiển thị câu trả lời do mô hình hoặc LLM cung cấp:

Bắt đầu cuộc trò chuyện bằng lời nhắc dựa trên dữ liệu được lưu trữ trong kho vectơ:

cuộc trò chuyện_với_tóm tắt. dự đoán ( đầu vào = 'môn thể thao yêu thích của tôi là gì?' )

Các thông báo trước đó được lưu trữ trong bộ nhớ của mô hình và mô hình có thể sử dụng bộ nhớ này để hiểu ngữ cảnh của thông báo:

cuộc trò chuyện_với_tóm tắt. dự đoán ( đầu vào = 'Món ăn yêu thích của tôi là gì' )

Nhận câu trả lời được cung cấp cho mô hình trong một trong các tin nhắn trước đó để kiểm tra cách trình truy xuất bộ nhớ hoạt động với mô hình trò chuyện:

cuộc trò chuyện_với_tóm tắt. dự đoán ( đầu vào = 'Tên tôi là gì?' )

Mô hình đã hiển thị chính xác đầu ra bằng cách sử dụng tìm kiếm tương tự từ dữ liệu được lưu trong bộ nhớ:

Đó là tất cả về việc sử dụng công cụ truy xuất cửa hàng vector trong LangChain.

Phần kết luận

Để sử dụng trình truy xuất bộ nhớ dựa trên kho lưu trữ vectơ trong LangChain, chỉ cần cài đặt các mô-đun, khung và thiết lập môi trường. Sau đó, nhập thư viện từ các mô-đun để xây dựng cơ sở dữ liệu bằng Chroma, sau đó đặt mẫu lời nhắc. Kiểm tra trình truy xuất sau khi lưu trữ dữ liệu vào bộ nhớ bằng cách bắt đầu cuộc trò chuyện và đặt câu hỏi liên quan đến các tin nhắn trước đó. Hướng dẫn này đã trình bày chi tiết về quy trình sử dụng thư viện VectorStoreRetrieverMemory trong LangChain.