Giới thiệu
LangChain là một framework phát triển ứng dụng trí tuệ nhân tạo (AI) sử dụng ngôn ngữ Python mã nguồn mở cung cấp các module và công cụ để xây dựng ứng dụng AI dựa trên các mô hình lớn. Thông qua LangChain, các nhà phát triển có thể dễ dàng tích hợp với các Mô hình Ngôn ngữ Lớn (LLMs) để hoàn thành các nhiệm vụ như tạo văn bản, trả lời câu hỏi, dịch và giao tiếp. LangChain giảm ngưỡng phát triển ứng dụng AI, cho phép bất kỳ ai xây dựng các ứng dụng sáng tạo riêng dựa trên LLM.
Các tính năng của LangChain:
- LLM và Prompt: LangChain trừu tượng hóa tất cả các API của các mô hình lớn LLM, thống nhất API truy cập của các mô hình lớn và cung cấp cơ chế quản lý mẫu prompt.
- Chain: LangChain đóng gói một số kịch bản thông thường thành các module sẵn có, như hệ thống trả lời câu hỏi dựa trên ngữ cảnh, tạo văn bản tự nhiên của các truy vấn SQL, và còn nữa, được gọi là "Chain" vì quá trình thực hiện các nhiệm vụ này giống như một luồng công việc, được thực hiện từng bước.
- LangChain Expression Language (LCEL): LCEL là tính năng cốt lõi của phiên bản mới của LangChain, được sử dụng để giải quyết vấn đề định tuyến công việc. Thông qua biểu thức LCEL, chúng ta có thể linh hoạt tùy chỉnh luồng xử lý nhiệm vụ AI, tức là linh hoạt tùy chỉnh "Chain".
- Retrieval Augmented Generation (RAG): Bởi vì các Mô hình Ngôn ngữ Lớn (LLMs) không hiểu thông tin mới và không thể trả lời câu hỏi mới, chúng ta có thể nhập thông tin mới vào LLM để nâng cao chất lượng nội dung được tạo ra. Chế độ này được gọi là chế độ RAG (Retrieval Augmented Generation).
- Agents: Một mẫu thiết kế dựa trên các Mô hình Ngôn ngữ Lớn (LLMs) sử dụng khả năng hiểu và suy luận ngôn ngữ tự nhiên của LLM (LLM như não) để tự động gọi các hệ thống và thiết bị bên ngoài cùng nhau để hoàn thành các nhiệm vụ dựa trên yêu cầu của người dùng. Ví dụ, khi người dùng nhập "nghỉ một ngày vào ngày mai", Mô hình Ngôn ngữ Lớn (LLM) tự động gọi hệ thống nghỉ phép và khởi tạo đơn xin nghỉ.
- Model Memory: Cho phép Mô hình Ngôn ngữ Lớn (LLM) nhớ nội dung cuộc trò chuyện trước đó, khả năng được gọi là bộ nhớ mô hình.
Các thành phần của Framework LangChain
Framework LangChain bao gồm một số thành phần, bao gồm:
- Thư viện LangChain: Thư viện Python và JavaScript. Nó bao gồm nền tảng runtime cho giao diện và tích hợp các thành phần khác nhau, cũng như cài đặt các chuỗi và đại lý sẵn có.
- Mẫu LangChain: Mẫu nhiệm vụ trí tuệ nhân tạo chính thức do LangChain cung cấp.
- LangServe: Dựa trên FastAPI, nó có thể phát hành các chuỗi được xác định bởi LangChain dưới dạng REST APIs.
- LangSmith: Một nền tảng phát triển, là một dịch vụ đám mây hỗ trợ gỡ lỗi và giám sát nhiệm vụ LangChain.
Thư viện LangChain (Các thư viện)
Thư viện LangChain bản thân gồm một số gói khác nhau.
-
langchain-core
: Trừu tượng cơ bản và ngôn ngữ biểu thức LangChain. -
langchain-community
: Tích hợp của bên thứ ba, chủ yếu bao gồm các thành phần bên thứ ba được tích hợp với LangChain. -
langchain
: Chủ yếu bao gồm chuỗi, đại lý và chiến lược truy vấn.
Luồng Xử lý Nhiệm vụ của Langchain
Như được thể hiện trong hình ảnh trên, LangChain cung cấp một bộ công cụ quản lý mẫu prompt để xử lý các prompt. Sau đó, nó chuyển các prompt đó cho mô hình lớn xử lý và cuối cùng xử lý kết quả trả về từ mô hình lớn.
Việc đóng gói của LangChain cho mô hình lớn chủ yếu bao gồm hai loại: LLM và Mô hình Trò chuyện.
- LLM - Mô hình trả lời câu hỏi nhận đầu vào văn bản và trả về kết quả văn bản.
- Mô hình Trò chuyện - Mô hình giao tiếp được thiết kế đặc biệt cho các tình huống trò chuyện, khác với LLM. Những mô hình này có thể nhận một loạt các tin nhắn trò chuyện và trả lại các tin nhắn trò chuyện theo một cách trò chuyện.
Khái niệm Cốt lõi
1. LLMs
Các mô hình cơ bản được đóng gói bởi LangChain nhận đầu vào văn bản và trả về kết quả văn bản.
2. Mô hình Trò chuyện
Các mô hình trò chuyện (hoặc mô hình đối thoại) được thiết kế đặc biệt cho các tình huống đối thoại, khác với LLM. Những mô hình này có thể nhận một loạt tin nhắn trò chuyện và trả lại các tin nhắn trò chuyện theo một định dạng trò chuyện.
3. Tin nhắn
Đề cập đến nội dung của các tin nhắn trong các mô hình trò chuyện. Các loại tin nhắn bao gồm Tin nhắn của Con người, Tin nhắn AI, Tin nhắn Hệ thống, Tin nhắn Chức năng và Tin nhắn Công cụ, và nhiều loại khác.
4. Prompt
LangChain đóng gói một bộ công cụ được sử dụng đặc biệt cho quản lý prompt, làm cho việc định dạng nội dung prompt dễ dàng hơn.
5. Trình phân tích Kết quả
Như đã đề cập trong hình ảnh trên, sau khi LangChain nhận nội dung văn bản trả về từ mô hình lớn (LLM), nó có thể sử dụng trình phân tích kết quả đặc biệt để định dạng nội dung văn bản, chẳng hạn như phân tích JSON hoặc chuyển đổi đầu ra của LLM thành một đối tượng Python.
5. Hệ thống truy xuất
Để dễ dàng nhập dữ liệu riêng tư vào mô hình lớn (LLM) và cải thiện chất lượng của câu trả lời của mô hình, LangChain đóng gói một khung việc truy xuất (Retrievers) giúp việc tải, phân đoạn, lưu trữ và truy xuất dữ liệu tài liệu.
6. Kho Vector
Để hỗ trợ tìm kiếm tương đồng ngữ nghĩa cho dữ liệu riêng tư, LangChain hỗ trợ các cơ sở dữ liệu vector đa dạng.
7. Đại lý
Đại lý, thường đề cập đến các ứng dụng được thiết kế với mô hình lớn (LLM) làm động cơ quyết định, tự động gọi các hệ thống bên ngoài và thiết bị phần cứng để hoàn thành các nhiệm vụ người dùng dựa trên đầu vào người dùng. Đó là một mô hình thiết kế có mô hình lớn (LLM) ở trung tâm.
Các Tình Huống Ứng Dụng
- Chatbot: Xây dựng trợ lý chat thông minh, chatbot dịch vụ khách hàng và chatbot trò chuyện.
- Cơ Sở Kiến Thức Q&A: Cung cấp dịch vụ trả lời câu hỏi miền mở bằng cách tích hợp với biểu đồ kiến thức.
- Viết Thông Minh: Như viết bài, viết sáng tạo và tóm tắt văn bản.