Cắt xén lịch sử chat (tiếp tục)
Có 5 cách cắt xén lịch sử chat:
+ Bỏ đi các thông điệp dựa trên độ dài (giống như các tokens hay đếm thông điệp): Bạn chỉ giữ các thông
điệp gần đây nhât nên tổng độ dài của chúng ta là ngắn hơn một ngưỡng. Hàm đặc biệt LangChain
from langchain_core.messages import trim_messages cho phép bạn cắt xén một chuỗi các thông điệp. Bạn
có thể cung cấp một hàm hay một thực thể LLM như đối số token_counter cho hàm này (và một tích hợp
LLM tương ứng nên hỗ trợ một phương thưc get_token_ids; hay mặt khác, token hóa mặc định có thể được
sử dụng và các kết quả có thể khác với các đếm token cho nhà cung cấp LLM cụ thể này). Hàm này cũng
cho phép bạn tùy chỉnh làm cách nào cắt xén các thông điệp – ví dụ, bất kể giữ một thông điệp hệ thống
và bất kể một human message nên luôn đi trước tiên vì nhiều nhà cung cấp model yêu cầu rằng một chat
luôn đi với một human message (hay với một system message). Trong trường hợp đó, bạn nên cắt xén chuỗi
gốc human, ai, human, ai thành một cái human, ai và không phải ai, human, ai thậm chí nếu tất cả 3 thông
điệp khớp bên trong ngưỡng cửa sổ bối cảnh.
+ Tóm tắt cuộc trao đổi trò chuyện trước: Trên mỗi lượt, bạn có thể tóm tắt cuộc trao đổi trò chuyện
trước thành một thông điệp đơn cái bạn gắn vào đầu vào người dùng tiếp theo. LangChain cung cấp một
vài khối xây dựng cho một thực thi ghi nhớ đang chạy nhưng, vào March 2025, cách thức khuyên dùng là xây
dựng node tóm tắt của bản thân bạn với LangGraph. Bạn có thể tìm thấy một hướng dẫn chi tiết trong
khu vực tài liệu hướng dẫn LangChain:
https://langchain-ai.github.io/langgraph/how-tos/memory/add-summary-conversation-history/
