Làm cách nào để thêm bộ nhớ vào chuỗi có nhiều đầu vào trong LangChain?

Lam Cach Nao De Them Bo Nho Vao Chuoi Co Nhieu Dau Vao Trong Langchain



Chatbots và Mô hình ngôn ngữ lớn đang được hàng triệu người trên toàn cầu sử dụng và những mô hình này có thể tạo văn bản theo lệnh. LangChain là một trong những framework hiệu quả và hiệu quả nhất cho phép các nhà phát triển xây dựng các mô hình và bot như vậy. Người dùng đưa ra lời nhắc hoặc truy vấn làm đầu vào và mô hình hiểu lệnh trước khi tạo văn bản có vẻ liên quan nhất hoặc giống lệnh đó.

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ạ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:' )

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 OpenAIEmbeddings

từ 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 } 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_chain

từ 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.