Làm cách nào để nhân rộng hệ thống MRKL bằng cách sử dụng đại lý trong LangChain?

Lam Cach Nao De Nhan Rong He Thong Mrkl Bang Cach Su Dung Dai Ly Trong Langchain



Hệ thống Lý luận, Kiến thức và Ngôn ngữ Mô-đun (MRKL) là một kiến ​​trúc có thể trích xuất các câu trả lời cùng với lý do xác minh. Nó tích hợp các Mô hình ngôn ngữ, Lý luận rời rạc và các nguồn kiến ​​thức bên ngoài. Các mô hình ngôn ngữ tạo ra văn bản bằng ngôn ngữ của con người theo các truy vấn mà người dùng yêu cầu. MRKL (phát âm: phép lạ) bổ sung lý luận trong khi đưa ra câu trả lời để làm cho câu trả lời trở nên chính xác và hợp lệ.

Phác thảo nhanh

Bài đăng này sẽ chứng minh những điều sau đây:







Cách sao chép hệ thống MRKL bằng cách sử dụng tác nhân trong LangChain



Phần kết luận



Làm cách nào để nhân rộng hệ thống MRKL bằng cách sử dụng đại lý trong LangChain?

LangChain cho phép người dùng xây dựng các tác nhân có thể được sử dụng để thực hiện nhiều tác vụ cho mô hình ngôn ngữ hoặc chatbot. Tác nhân lưu trữ công việc của mình với tất cả các bước trong bộ nhớ gắn liền với mô hình ngôn ngữ. Bằng cách sử dụng các mẫu này, tác nhân có thể sao chép hoạt động của bất kỳ hệ thống nào như MRKL để có được kết quả được tối ưu hóa mà không cần phải xây dựng lại chúng.





Để tìm hiểu quy trình sao chép hệ thống MRKL bằng cách sử dụng các tác nhân trong LangChain, chỉ cần thực hiện các bước được liệt kê:

Bước 1: Cài đặt Framework

Trước hết, hãy cài đặt các mô-đun thử nghiệm LangChain bằng pip bằng lệnh langchain-thử nghiệm:



pip cài đặt thử nghiệm langchain

Cài đặt module OpenAI xây dựng mô hình ngôn ngữ cho hệ thống MRKL:

cài đặt pip openai

Bước 2: Thiết lập môi trường OpenAI

Nhập thư viện os và getpass để truy cập hệ điều hành nhằm nhắc người dùng cung cấp khóa API cho tài khoản OpenAI và SerpAPi:

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ạn . khoảng [ 'SERPAPI_API_KEY' ] = vượt qua . vượt qua ( 'Khóa API Serpapi:' )

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

Sử dụng các phần phụ thuộc từ LangChain để nhập các thư viện cần thiết nhằm xây dựng mô hình, công cụ và tác nhân ngôn ngữ:

từ langchain. dây chuyền nhập khẩu LLMMathChain

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

từ langchain. tiện ích nhập khẩu SerpAPIWrapper

từ langchain. tiện ích nhập khẩu Cơ sở dữ liệu SQL

từ langchain_experimental. sql nhập khẩu Chuỗi cơ sở dữ liệu SQL

từ langchain. đại lý nhập khẩu khởi tạo_agent , Dụng cụ

từ langchain. đại lý nhập khẩu Loại tác nhân

Bước 4: Xây dựng cơ sở dữ liệu

MRKL sử dụng các nguồn kiến ​​thức bên ngoài để trích xuất thông tin từ dữ liệu. Bài đăng này sử dụng SQLite có thể được tải xuống bằng cách sử dụng này hướng dẫn để xây dựng cơ sở dữ liệu. Lệnh sau xác nhận quá trình tải xuống SQLite bằng cách hiển thị phiên bản đã cài đặt của nó:

sqlite3

Sử dụng các lệnh sau bên trong thư mục để tạo cơ sở dữ liệu bằng dấu nhắc lệnh:

đĩa CD Máy tính để bàn

đĩa CD mydb

sqlite3 Chinook. db

Tải về Cơ sở dữ liệu tập tin và lưu trữ nó trong thư mục để sử dụng lệnh sau để tạo “ .db ' tài liệu:

. đọc Chinook_Sqlite. sql

CHỌN * TỪ GIỚI HẠN Nghệ sĩ 10 ;

Bước 5: Tải lên cơ sở dữ liệu

Khi cơ sở dữ liệu được tạo thành công, hãy tải tệp lên cộng tác Google:

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 ( )

Người dùng có thể truy cập tệp đã tải lên trên sổ ghi chép để sao chép đường dẫn của tệp từ menu thả xuống:

Bước 6: Cấu hình công cụ

Sau khi xây dựng cơ sở dữ liệu, cấu hình mô hình ngôn ngữ, công cụ và chuỗi cho các tác nhân:

tìm kiếm = SerpAPIWrapper ( )
ừm = OpenAI ( nhiệt độ = 0 )
llm_math_chain = LLMMathChain ( ừm = ừm , dài dòng = ĐÚNG VẬY )
db = Cơ sở dữ liệu SQL. từ_uri ( 'sqlite:///../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. từ_llm ( ừm , db , dài dòng = ĐÚNG VẬY )
công cụ = [
Dụng cụ (
tên = 'Tìm kiếm' ,
vui vẻ = tìm kiếm. chạy ,
Sự miêu tả = 'Hỏi các lời nhắc được nhắm mục tiêu để nhận câu trả lời về các vấn đề gần đây'
) ,
Dụng cụ (
tên = 'Máy tính' ,
vui vẻ = llm_math_chain. chạy ,
Sự miêu tả = 'hữu ích cho việc trả lời/giải các bài toán'
) ,
Dụng cụ (
tên = 'FooBar DB' ,
vui vẻ = db_chain. chạy ,
Sự miêu tả = 'hữu ích khi trả lời các truy vấn từ cơ sở dữ liệu và câu hỏi đầu vào phải có ngữ cảnh hoàn chỉnh'
)
]
  • Xác định ừm biến bằng cách sử dụng OpenAI() phương pháp để có được mô hình ngôn ngữ.
  • Các tìm kiếm là công cụ gọi SerpAPIWrapper() phương pháp truy cập vào môi trường của nó.
  • Các LLMMathChain() phương pháp được sử dụng để có được câu trả lời liên quan đến các vấn đề toán học.
  • Xác định db biến có đường dẫn của tệp bên trong Cơ sở dữ liệu SQL() phương pháp.
  • Các SQLDatabaseChain() phương pháp có thể được sử dụng để lấy thông tin từ cơ sở dữ liệu.
  • Xác định các công cụ như tìm kiếm , máy tính , Và FooBar DB để xây dựng tác nhân trích xuất dữ liệu từ các nguồn khác nhau:

Bước 7: Xây dựng và thử nghiệm tác nhân

Khởi tạo hệ thống MRKL bằng cách sử dụng các công cụ, llm và tác nhân để nhận câu trả lời cho các câu hỏi mà người dùng đặt ra:

Mrkl = khởi tạo_agent ( công cụ , ừm , đại lý = Loại đại lý. ZERO_SHOT_REACT_DESCRIPTION , dài dòng = ĐÚNG VẬY )

Thực thi hệ thống MRKL bằng phương thức run() với câu hỏi làm đối số:

mrkl. chạy ( 'Leo DiCaprio và bạn gái hiện tại bao nhiêu tuổi cũng cho thấy sự chênh lệch tuổi tác của họ' )

đầu ra

Tác nhân đã tạo ra câu trả lời cuối cùng với đường dẫn đầy đủ được hệ thống sử dụng để trích xuất câu trả lời cuối cùng:

Bước 8: Nhân rộng hệ thống MRKL

Bây giờ, chỉ cần sử dụng Mrkl từ khóa bằng phương thức run() để nhận câu trả lời từ các nguồn khác nhau như cơ sở dữ liệu:

mrkl. chạy ( 'Tên đầy đủ của nghệ sĩ có album mang tên 'The Storm Before the Calm' được phát hành gần đây là gì và họ có trong cơ sở dữ liệu FooBar cũng như album nào của họ có trong cơ sở dữ liệu' )

Tác nhân đã tự động chuyển câu hỏi thành truy vấn SQL để lấy câu trả lời từ cơ sở dữ liệu. Tác nhân tìm kiếm nguồn chính xác để có câu trả lời và sau đó tập hợp truy vấn để trích xuất thông tin:

Bước 9: Sử dụng ChatModel

Người dùng có thể chỉ cần thay đổi mô hình ngôn ngữ bằng cách sử dụng phương thức ChatOpenAI() để biến nó thành ChatModel và sử dụng hệ thống MRKL với nó:

từ langchain. chat_models nhập khẩu Trò chuyệnOpenAI

tìm kiếm = SerpAPIWrapper ( )
ừm = Trò chuyệnOpenAI ( nhiệt độ = 0 )
llm1 = OpenAI ( nhiệt độ = 0 )
llm_math_chain = LLMMathChain ( ừm = llm1 , dài dòng = ĐÚNG VẬY )
db = Cơ sở dữ liệu SQL. từ_uri ( 'sqlite:///../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. từ_llm ( llm1 , db , dài dòng = ĐÚNG VẬY )
công cụ = [
Dụng cụ (
tên = 'Tìm kiếm' ,
vui vẻ = tìm kiếm. chạy ,
Sự miêu tả = 'Hỏi các lời nhắc được nhắm mục tiêu để nhận câu trả lời về các vấn đề gần đây'
) ,
Dụng cụ (
tên = 'Máy tính' ,
vui vẻ = llm_math_chain. chạy ,
Sự miêu tả = 'hữu ích cho việc trả lời/giải các bài toán'
) ,
Dụng cụ (
tên = 'FooBar DB' ,
vui vẻ = db_chain. chạy ,
Sự miêu tả = 'hữu ích khi trả lời các truy vấn từ cơ sở dữ liệu và câu hỏi đầu vào phải có ngữ cảnh hoàn chỉnh'
)
]

Bước 10: Kiểm tra tác nhân MRKL

Sau đó, xây dựng tác nhân và khởi tạo nó trong biến mrkl bằng phương thức khởi tạo_agent(). Thêm tham số của phương thức để tích hợp các thành phần như công cụ, llm, tác nhân và chi tiết để có được quy trình hoàn chỉnh ở đầu ra:

Mrkl = khởi tạo_agent ( công cụ , ừm , đại lý = Loại đại lý. CHAT_ZERO_SHOT_REACT_DESCRIPTION , dài dòng = ĐÚNG VẬY )

Thực hiện câu hỏi bằng cách chạy hệ thống mrkl như trong ảnh chụp màn hình sau:

mrkl. chạy ( 'Bạn gái của Leo DiCaprio là ai? Tuổi hiện tại của họ là bao nhiêu' )

đầu ra

Đoạn mã sau hiển thị câu trả lời cuối cùng được tác nhân trích xuất:

Bước 11: Nhân rộng hệ thống MRKL

Sử dụng hệ thống MRKL bằng cách gọi phương thức run() với câu hỏi bằng ngôn ngữ tự nhiên để trích xuất thông tin từ cơ sở dữ liệu:

mrkl. chạy ( 'Tên đầy đủ của nghệ sĩ có album mang tên 'The Storm Before the Calm' được phát hành gần đây là gì và họ có trong cơ sở dữ liệu FooBar cũng như album nào của họ có trong cơ sở dữ liệu' )

đầu ra

Nhân viên hỗ trợ đã hiển thị câu trả lời cuối cùng được trích xuất từ ​​cơ sở dữ liệu như trong ảnh chụp màn hình sau:

Đó là tất cả về quá trình sao chép hệ thống MRKL bằng cách sử dụng các tác nhân trong LangChain:

Phần kết luận

Để sao chép hệ thống MRKL bằng cách sử dụng các tác nhân trong LangChain, hãy cài đặt các mô-đun để nhận các phần phụ thuộc để nhập thư viện. Các thư viện được yêu cầu xây dựng mô hình ngôn ngữ hoặc mô hình trò chuyện để nhận được câu trả lời từ nhiều nguồn bằng cách sử dụng các công cụ. Các tác nhân được định cấu hình để sử dụng các công cụ trích xuất đầu ra từ các nguồn khác nhau như internet, cơ sở dữ liệu, v.v. Hướng dẫn này trình bày chi tiết về quy trình sao chép hệ thống MRKL bằng cách sử dụng các tác nhân trong LangChain.