Làm cách nào để thêm bộ nhớ vào tác nhân chức năng OpenAI trong LangChain?

Lam Cach Nao De Them Bo Nho Vao Tac Nhan Chuc Nang Openai Trong Langchain



LangChain là khung chứa các phần phụ thuộc để xây dựng Mô hình ngôn ngữ lớn hoặc LLM. Nó cũng cung cấp các công cụ để xây dựng các tác nhân nhằm thực hiện tất cả các bước trung gian từ nhận truy vấn từ người dùng đến tìm nạp câu trả lời. OpenAI là một môi trường cung cấp đầu ra có cấu trúc và có thể đọc được từ internet bằng cách sử dụng “kết quả tìm kiếm của google” mô-đun.

Phác thảo nhanh

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

Làm cách nào để thêm bộ nhớ vào tác nhân chức năng OpenAI trong LangChain?

OpenAI là một tổ chức Trí tuệ nhân tạo (AI) được thành lập vào năm 2015 và ban đầu là một tổ chức phi lợi nhuận. Microsoft đã đầu tư rất nhiều tài sản kể từ năm 2020 khi Xử lý ngôn ngữ tự nhiên (NLP) với AI đang bùng nổ với chatbot và mô hình ngôn ngữ.







Việc xây dựng các tác nhân OpenAI cho phép các nhà phát triển nhận được kết quả dễ đọc và chính xác hơn từ internet. Việc thêm bộ nhớ cho tổng đài viên cho phép họ hiểu rõ hơn bối cảnh của cuộc trò chuyện và cũng lưu trữ các cuộc trò chuyện trước đó vào bộ nhớ của họ. Để tìm hiểu quy trình thêm bộ nhớ vào tác nhân chức năng OpenAI trong LangChain, chỉ cần thực hiện các bước sau:



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

Trước hết, hãy cài đặt các phần phụ thuộc LangChain từ “thử nghiệm langchain” framework bằng cách sử dụng đoạn mã sau:



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





Cài đặt “kết quả tìm kiếm của google” mô-đun để nhận kết quả tìm kiếm từ máy chủ Google:

pip cài đặt google - tìm kiếm - kết quả



Ngoài ra, hãy cài đặt mô-đun OpenAI có thể được sử dụng để xây dựng các mô hình ngôn ngữ trong LangChain:

cài đặt pip openai

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

Sau khi nhận được các mô-đun, hãy thiết lập môi trường bằng các khóa API từ OpenAI SerpAPI tài khoản:

nhập khẩu Bạn
nhập khẩu vượt qua

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

Thực thi mã trên để nhập khóa API để truy cập cả môi trường và nhấn enter để xác nhận:

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

Bây giờ quá trình thiết lập đã hoàn tất, hãy sử dụng các phần phụ thuộc được cài đặt từ LangChain để nhập các thư viện cần thiết để xây dựng bộ nhớ và tác nhân:

từ langchain. dây chuyền nhập khẩu LLMMathChain
từ langchain. llms nhập khẩu OpenAI
#get thư viện để tìm kiếm từ Google qua internet
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
#get thư viện để xây dựng công cụ khởi tạo tác nhân
từ langchain. đại lý nhập khẩu Loại tác nhân , Dụng cụ , khởi tạo_agent
từ langchain. chat_models nhập khẩu Trò chuyệnOpenAI

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

Để bắt đầu với hướng dẫn này, chúng ta cần xây dựng cơ sở dữ liệu và kết nối với tác nhân để trích xuất câu trả lời từ đó. Để xây dựng cơ sở dữ liệu, cần phải tải xuống SQLite bằng cách sử dụng hướng dẫn và xác nhận cài đặt bằng lệnh sau:

sqlite3

Chạy lệnh trên trong Thiết bị đầu cuối Windows hiển thị phiên bản SQLite đã cài đặt (3.43.2):

Sau đó, chỉ cần đi tới thư mục trên máy tính của bạn nơi cơ sở dữ liệu sẽ được xây dựng và lưu trữ:

cd Máy tính để bàn
cd mydb
sqlite3 Chinook. db

Người dùng có thể chỉ cần tải xuống nội dung của cơ sở dữ liệu từ đây liên kết trong thư mục và thực hiện lệnh sau để xây dựng cơ sở dữ liệu:

. đọc Chinook_Sqlite. sql
LỰA CHỌN * TỪ GIỚI HẠN Nghệ sĩ 10 ;

Cơ sở dữ liệu đã được xây dựng thành công và người dùng có thể tìm kiếm dữ liệu từ nó bằng các truy vấn khác nhau:

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

Khi cơ sở dữ liệu được xây dựng thành công, hãy tải lên “.db” gửi tới Google Collaboratory bằng mã sau:

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

Chọn tệp từ hệ thống cục bộ bằng cách nhấp vào “Chọn tập tin” nút sau khi thực thi đoạn mã trên:

Sau khi tệp được tải lên, chỉ cần sao chép đường dẫn của tệp sẽ được sử dụng trong bước tiếp theo:

Bước 6: Cấu hình mô hình ngôn ngữ

Xây dựng mô hình ngôn ngữ, chuỗi, công cụ và chuỗi bằng mã sau:

ừm = Trò chuyệnOpenAI ( nhiệt độ = 0 , người mẫu = 'gpt-3.5-turbo-0613' )
tìm kiếm = SerpAPIWrapper ( )
llm_math_chain = LLMMathChain. từ_llm ( ừ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ả = 'Đặt các câu hỏi mục tiêu để có câu trả lời cho các câu hỏ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 câu hỏi về FooBar và thông tin đầu vào phải ở dạng câu hỏi chứa đầy đủ ngữ cảnh' ,
) ,
]
  • Các ừm biến chứa các cấu hình của mô hình ngôn ngữ sử dụng phương thức ChatOpenAI() với tên của mô hình.
  • Tìm kiếm biến chứa phương thức SerpAPIWrapper() để xây dựng các công cụ cho tác nhân.
  • Xây dựng llm_math_chain để nhận câu trả lời liên quan đến lĩnh vực Toán học bằng phương pháp LLMMathChain().
  • Biến db chứa đường dẫn của tệp có nội dung của cơ sở dữ liệu. Người dùng chỉ cần thay đổi phần cuối cùng “nội dung/Chinook.db” của con đường giữ “sqlite:///../../../../” giống nhau.
  • Xây dựng một chuỗi khác để trả lời các truy vấn từ cơ sở dữ liệu bằng cách sử dụng db_chain Biến đổi.
  • Cấu hình các công cụ như tìm kiếm , máy tính , Và FooBar-DB để tìm kiếm câu trả lời, trả lời các câu hỏi toán học và truy vấn từ cơ sở dữ liệu tương ứng:

Bước 7: Thêm bộ nhớ

Sau khi định cấu hình các chức năng OpenAI, chỉ cần xây dựng và thêm bộ nhớ cho tác nhân:

từ langchain. lời nhắc nhập khẩu Tin nhắn Giữ chỗ
từ langchain. ký ức nhập khẩu Bộ nhớ đệm hội thoại

đại lý_kwargs = {
'extra_prompt_messages' : [ Tin nhắn Giữ chỗ ( tên biến = 'ký ức' ) ] ,
}
ký ức = Bộ nhớ đệm hội thoại ( bộ nhớ_key = 'ký ức' , return_messages = ĐÚNG VẬY )

Bước 8: Khởi tạo Agent

Thành phần cuối cùng cần xây dựng và khởi tạo là tác nhân, chứa tất cả các thành phần như ừm , dụng cụ , OPENAI_FUNCTIONS và những thứ khác sẽ được sử dụng trong quá trình này:

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

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

Cuối cùng, kiểm tra nhân viên bằng cách bắt đầu cuộc trò chuyện bằng cách sử dụng “ CHÀO ' tin nhắn:

đại lý. chạy ( 'CHÀO' )

Thêm một số thông tin vào bộ nhớ bằng cách chạy tác nhân với nó:

đại lý. chạy ( 'tên tôi là John tuyết' )

Bây giờ, hãy kiểm tra trí nhớ bằng cách đặt câu hỏi về cuộc trò chuyện trước đó:

đại lý. chạy ( 'tên tôi là gì' )

Tác nhân đã phản hồi với tên được tìm nạp từ bộ nhớ để bộ nhớ chạy thành công với tác nhân:

Đó là tất cả bây giờ.

Phần kết luận

Để thêm bộ nhớ vào tác nhân chức năng OpenAI trong LangChain, hãy cài đặt các mô-đun để lấy các phần phụ thuộc để nhập thư viện. Sau đó, chỉ cần xây dựng cơ sở dữ liệu và tải nó lên sổ ghi chép Python để có thể sử dụng nó với mô hình. Định cấu hình mô hình, công cụ, chuỗi và cơ sở dữ liệu trước khi thêm chúng vào tác nhân và khởi tạo nó. Trước khi kiểm tra bộ nhớ, hãy xây dựng bộ nhớ bằng cách sử dụng ConversationalBufferMemory() và thêm nó vào tác nhân trước khi kiểm tra. Hướng dẫn này đã trình bày chi tiết về cách thêm bộ nhớ cho tác nhân chức năng OpenAI trong LangChain.