Hướng dẫn này sẽ minh họa quá trình thêm bộ nhớ vào chuỗi có nhiều đầu vào trong LangChain.
Làm cách nào để thêm bộ nhớ vào chuỗi có nhiều đầu vào trong LangChain?
Bộ nhớ có thể được thêm vào LLM hoặc chatbot để lưu trữ các tin nhắn hoặc dữ liệu gần đây nhất để mô hình có thể hiểu ngữ cảnh của lệnh. Để tìm hiểu quy trình thêm bộ nhớ vào chuỗi có nhiều đầu vào trong LangChain, chỉ cần thực hiện các bước sau:
Bước 1: Cài đặt mô-đun
Đầu tiên, hãy cài đặt khung LangChain vì nó có nhiều phụ thuộc khác nhau để xây dựng mô hình ngôn ngữ:
pip cài đặt langchain
Cài đặt chromadb để lưu trữ dữ liệu được bộ nhớ sử dụng trong kho vectơ Chroma:
pip cài đặt chromadb
Tiktoken là công cụ mã thông báo được sử dụng để tạo các khối tài liệu lớn nhỏ để có thể quản lý chúng dễ dàng:
pip cài đặt tiktoken
OpenAI là mô-đun có thể được sử dụng để xây dựng chuỗi và LLM bằng phương thức OpenAI():
cài đặt pip openai
Bước 2: Thiết lập môi trường và tải dữ liệu lên
Bước tiếp theo sau khi cài đặt tất cả các mô-đun cần thiết cho quá trình này là thiết lập môi trường sử dụng khóa API từ tài khoản OpenAI:
nhập khẩu Bạnnhập khẩu vượt qua
Bạn . khoảng [ 'OPENAI_API_KEY' ] = vượt qua . vượt qua ( 'Khóa API OpenAI:' )
Tải tài liệu lên bằng thư viện tệp để xây dựng chuỗi trong khung LangChain:
từ Google. ET AL nhập khẩu các tập tinđã tải lên = các tập tin. tải lên ( )
Bước 3: Nhập thư viện
Sau khi tài liệu được tải lên thành công, bạn chỉ cần nhập các thư viện cần thiết từ mô-đun Langchain:
từ langchain. phần nhúng . openai nhập khẩu OpenAIEmbeddingstừ langchain. phần nhúng . mạch lạc nhập khẩu CohereNhúng
từ langchain. bộ chia văn bản nhập khẩu Bộ chia văn bản ký tự
từ langchain. cửa hàng vector . đàn hồi_vector_search nhập khẩu Tìm kiếm đàn hồiVector
từ langchain. cửa hàng vector nhập khẩu sắc độ
từ langchain. tiệm thuốc . tài liệu nhập khẩu Tài liệu
Bước 4: Xây dựng bộ nhớ bằng cơ sở dữ liệu Chroma
Bây giờ, hãy bắt đầu xây dựng không gian vectơ để lưu trữ phần nhúng và mã thông báo của tài liệu đã tải lên trước đó:
với mở ( 'state_of_the_union.txt' ) BẰNG f:bang_of_the_union = f. đọc ( )
bộ chia văn bản = Bộ chia văn bản ký tự ( chunk_size = 1000 , chunk_overlap = 0 )
văn bản = văn bản_split. văn bản chia ( bang_of_the_union )
phần nhúng = OpenAIEmbeddings ( )
Định cấu hình cơ sở dữ liệu Chroma để lưu trữ văn bản và phần nhúng từ tài liệu:
tìm kiếm tài liệu = Sắc tố. từ_văn bản (văn bản , phần nhúng , siêu dữ liệu = [ { 'nguồn' : Tôi } vì Tôi TRONG phạm vi ( chỉ một ( văn bản ) ) ]
)
Kiểm tra bộ nhớ bằng cách hỏi lệnh trong biến truy vấn rồi thực thi phương thứcsimilarity_search():
truy vấn = 'NATO được thành lập khi nào'tài liệu = docsearch. sự tương tự_tìm kiếm ( truy vấn )
Bước 5: Định cấu hình mẫu lời nhắc
Bước này giải thích quy trình đặt cấu hình mẫu cho lời nhắc bằng cách nhập các thư viện sau:
từ langchain. dây chuyền . câu hỏi_trả lời nhập khẩu tải_qa_chaintừ langchain. llms nhập khẩu OpenAI
từ langchain. lời nhắc nhập khẩu Mẫu nhắc nhở
từ langchain. ký ức nhập khẩu Bộ nhớ đệm hội thoại
Sau đó, chỉ cần định cấu hình mẫu hoặc cấu trúc cho truy vấn và chạy chuỗi sau khi bộ nhớ được thêm vào mô hình:
bản mẫu = '''Bạn là người mẫu đang trò chuyện với con ngườiĐưa ra các đoạn được trích xuất từ một tài liệu dài và một câu hỏi, hãy tạo câu trả lời cuối cùng
{bối cảnh}
{lịch sử}
Con người: {đầu vào}
Chatbot:'''
lời nhắc = Mẫu nhắc nhở (
đầu vào_biến = [ 'lịch sử' , 'đầu vào' , 'bối cảnh' ] , bản mẫu = bản mẫu
)
ký ức = Bộ nhớ đệm hội thoại ( bộ nhớ_key = 'lịch sử' , khóa_đầu vào = 'đầu vào' )
xích = tải_qa_chain (
OpenAI ( nhiệt độ = 0 ) , chuỗi_type = 'chất liệu' , ký ức = ký ức , lời nhắc = lời nhắc
)
Bước 6: Kiểm tra bộ nhớ
Đây là lúc để kiểm tra mô hình bằng cách đặt câu hỏi bằng cách sử dụng biến truy vấn và sau đó thực thi phương thức chain() với các tham số của nó:
truy vấn = 'NATO được thành lập khi nào'xích ( { 'input_documents' : tài liệu , 'đầu vào' : truy vấn } , return_only_outputs = ĐÚNG VẬY )
In dữ liệu được lưu trong bộ nhớ đệm vì câu trả lời do mô hình đưa ra được lưu gần đây trong bộ nhớ:
in ( xích. ký ức . đệm )
Đó là tất cả về việc thêm bộ nhớ vào chuỗi có nhiều đầu vào trong LangChain.
Phần kết luận
Để thêm bộ nhớ vào chuỗi có nhiều đầu vào trong LangChain, chỉ cần cài đặt các mô-đun và kho lưu trữ vectơ để lưu trữ văn bản và phần nhúng. Sau đó, tải dữ liệu/tài liệu lên từ hệ thống cục bộ rồi nhập các thư viện cần thiết để lưu trữ dữ liệu nhằm xây dựng bộ nhớ cho LLM. Định cấu hình mẫu lời nhắc để lưu trữ các tin nhắn gần đây nhất trong bộ nhớ đệm, sau đó nhắn tin cho chuỗi. Hướng dẫn này đã trình bày chi tiết về quy trình thêm bộ nhớ vào chuỗi có nhiều đầu vào trong LangChain.