Giới thiệu RunnablePassthrough là gì và tại sao nó quan trọng?
Trong quá trình xây dựng các chuỗi lệnh phức tạp với nhiều bước, việc truyền dữ liệu từ các bước trước đó đến các bước sau mà không thay đổi là vô cùng quan trọng. RunnablePassthrough cho phép bạn thực hiện điều này một cách dễ dàng và hiệu quả.
Lớp này thường được sử dụng kết hợp với RunnableParallel để đảm bảo dữ liệu được truyền một cách liền mạch qua các bước khác nhau trong chuỗi lệnh của bạn. Hãy cùng khám phá sức mạnh của nó qua các ví dụ cụ thể.
Ví dụ Minh họa cơ bản về cách sử dụng RunnablePassthrough
Như bạn đã thấy, `key` được gọi với `RunnablePassthrough()` và đơn giản là truyền dữ liệu đi tiếp. Chúng ta cũng có thể thiết lập một khóa thứ hai trong map với `RunnablePassthrough.assign(key2=...)`.
Ví dụ này sử dụng một lambda để thiết lập một giá trị duy nhất bằng cách cộng 1 vào `num`, dẫn đến `key2` với giá trị là `num + 1`.
Ứng dụng Ví dụ thực tế: Định dạng đầu vào cho Prompt
Hãy xem xét một tình huống thực tế hơn, nơi chúng ta sử dụng `RunnablePassthrough` cùng với `retriever` trong một chuỗi lệnh để định dạng chính xác đầu vào cho một prompt.
Ở đây, đầu vào cho prompt được mong đợi là một map với các khóa 'context' và 'question'. Đầu vào của người dùng chỉ là câu hỏi. Vì vậy, chúng ta cần lấy context bằng retriever của mình và truyền câu hỏi của người dùng dưới khóa 'question'. RunnablePassthrough cho phép chúng ta truyền câu hỏi của người dùng đến prompt và model.
“RunnablePassthrough giúp bạn kiểm soát luồng dữ liệu trong chuỗi lệnh LangChain.
LangChain Expert
Khám Phá Thêm về LangChain
Nâng cao kiến thức của bạn với các tài liệu và ví dụ khác.
Tài liệu LangChain
Truy cập tài liệu chính thức để tìm hiểu sâu hơn về RunnablePassthrough và các tính năng khác.
Kết luận Bước tiếp theo và tài liệu tham khảo
Bây giờ bạn đã học cách truyền dữ liệu qua các chuỗi lệnh để giúp định dạng dữ liệu. Để khám phá thêm, hãy xem các hướng dẫn khác về runnables trong phần này.
RunnablePassthrough là một công cụ mạnh mẽ để xây dựng các chuỗi lệnh phức tạp và linh hoạt trong LangChain. Hãy thử nghiệm và khám phá những khả năng mà nó mang lại!