𝗜 𝗧𝗿𝗶𝗲𝗱 𝗧𝗼 𝗔𝗱𝗱 𝗔𝗜 𝗖𝗵𝗮𝘁 𝗧𝗼 𝗠𝘆 𝗔𝗽𝗽 𝗔𝗻𝗱 𝗛𝗶𝘁 𝗔 𝗪𝗮𝗹𝗹

Tôi đã thử thêm một trợ lý chat AI vào công cụ quản lý dự án của mình. Tôi cứ ngỡ việc này sẽ dễ dàng. Tôi đã lên kế hoạch gửi toàn bộ lịch sử trò chuyện đến một API.

Nó đã thất bại.

Sau 15 tin nhắn, các phản hồi trở nên chậm chạp hoặc bị lỗi. API trả về lỗi vì văn bản quá dài so với giới hạn token.

Dưới đây là những gì tôi đã thử và những gì đã hiệu quả.

Những vấn đề tôi đã gặp phải:

  • Cắt bớt lịch sử (Truncating history): Tôi chỉ giữ lại vài tin nhắn gần nhất. Cách này giúp cải thiện tốc độ nhưng AI lại quên sạch mọi thứ từ đầu cuộc trò chuyện.
  • Tóm tắt (Summarization): Tôi yêu cầu AI tóm tắt cuộc trò chuyện sau mỗi 5 tin nhắn. Điều này giúp duy trì trí nhớ nhưng lại làm tăng chi phí và thời gian chờ đợi.
  • Vector stores: Tôi đã thử chấm điểm các tin nhắn dựa trên mức độ liên quan. Việc này làm tăng quá nhiều sự phức tạp so với nhu cầu của tôi.

Giải pháp:

Tôi đã ngừng việc cố gắng gửi đi tất cả mọi thứ. Tôi đã sử dụng hai phương pháp chính để cải thiện trải nghiệm.

  1. Streaming: Tôi sử dụng Server-Sent Events để hiển thị văn bản ngay khi nó được tạo ra. Điều này giúp ứng dụng có cảm giác nhanh chóng ngay cả khi AI cần thời gian để suy nghĩ.

  2. Cửa sổ ngữ cảnh ba ngăn (A Three-Slot Context Window): Tôi chia ngân sách token của mình thành các phần cụ thể.

  • System Prompt: 500 tokens. Phần này được giữ cố định.
  • Dynamic Context: 2000 tokens. Phần này chứa các cập nhật dự án và trạng thái công việc gần đây.
  • Conversation History: 4000 tokens. Đây là một cửa sổ trượt (sliding window) của các tin nhắn gần đây.

Bằng cách quản lý ngân sách theo cách này, tôi đã giảm được 40% kích thước payload. Điều này giúp tiết kiệm chi phí và giảm độ trễ.

Lời khuyên của tôi:

Thêm AI không chỉ đơn thuần là gọi một API. Bạn phải quản lý lượng dữ liệu mà mình gửi đi. Streaming giúp cải thiện cảm giác về tốc độ của người dùng. Một chiến lược ngữ cảnh thông minh sẽ giúp AI mang lại cảm giác thông minh hơn.

Bạn quản lý bộ nhớ cuộc trò chuyện trong ứng dụng của mình như thế nào? Bạn sử dụng cửa sổ trượt (sliding windows) hay tóm tắt (summarization)?

Nguồn: https://dev.to/__c1b9e06dc90a7e0a676b/i-tried-to-add-ai-chat-to-my-app-and-hit-a-wall-with-context-tokens-459b

Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi