Điểm nổi bật
- Phạm vi: chạy 100% local với Ollama, FastAPI, React và SQLite.
- Tính năng chính: kéo-thả để gộp hai cuộc hội thoại thành một ngữ cảnh mới thay vì giữ session tách rời.
- Tính năng chính: tự trích xuất fact sau mỗi lượt chat và nạp lại vào các phiên tiếp theo.
- Hạ tầng: yêu cầu Python 3.9+, Node.js 18+, có thể chạy CPU nhưng khuyến nghị GPU Nvidia.
Biểu đồ
Tóm tắt
Chatforge đi theo một hướng khá khác so với đa số giao diện chat local hiện nay. Thay vì xem mỗi cuộc hội thoại là một phiên tách rời, dự án coi chúng như các đối tượng tri thức có thể hợp nhất, tích lũy và tái sử dụng. Điểm nổi bật nhất là thao tác kéo-thả để merge hai cuộc hội thoại, cho phép người dùng tạo ngữ cảnh mới từ nhiều mẩu trao đổi trước đó.
Nếu nhìn dưới góc độ sản phẩm AI cá nhân, đây là một ý tưởng đáng chú ý vì nó giải quyết điểm yếu cố hữu của chat UI, tri thức bị khóa trong từng session. Chatforge cố biến lịch sử đó thành bộ nhớ vận hành, rồi tiến xa hơn bằng roadmap “compile” để biến ngữ cảnh hợp nhất thành LoRA trong tương lai.
Chi tiết
README của Chatforge mô tả dự án như một local AI chat interface nơi các cuộc hội thoại là “living objects”. Ý tưởng này có giá trị thực tế vì nó xử lý một trong những ma sát lớn nhất của người dùng local LLM, mỗi khi đổi phiên hoặc quay lại dự án cũ, ngữ cảnh gần như phải dựng lại từ đầu. Chatforge chọn cách không mở rộng context theo kiểu nhồi thêm lịch sử, mà cho người dùng thao tác trực tiếp trên cấu trúc tri thức của các cuộc chat. Việc kéo một conversation lên conversation khác để tạo bản merge mới là chi tiết UX nhỏ nhưng hàm ý kiến trúc lớn, bộ nhớ không còn là thứ bị ẩn trong prompt, mà trở thành đối tượng có thể thao tác.
Hệ thống hiện dùng FastAPI ở backend, React và Vite ở frontend, còn lưu trữ bằng SQLite. Tổ hợp này giúp dự án nhẹ, dễ chạy cục bộ và phù hợp với nhóm thích tự chủ hạ tầng. README cũng cho biết công cụ đã được test với qwen2.5:7b và qwen3.5 trên RTX 3060 Ti, hàm ý đây không phải demo quá xa rời thực tế cá nhân. Ngoài merge, Chatforge còn có lớp memory extraction sau mỗi exchange, nơi model âm thầm trích xuất dữ kiện về người dùng và nạp lại vào các cuộc chat mới. Cách làm này đưa sản phẩm tiến gần hơn tới khái niệm personal AI workspace thay vì một khung chat đơn lẻ.
Roadmap “LoRA compilation” là phần táo bạo nhất. Nếu triển khai được đúng như mô tả, Chatforge sẽ cho phép “bake” ngữ cảnh hợp nhất vào trọng số model để giảm phụ thuộc vào context window ở suy luận. Về mặt chiến lược, đây là hướng tiếp cận khác với các sản phẩm agent hoặc memory store hiện nay, vốn vẫn dựa chủ yếu vào retrieval và injection. Dù mới ở mức kế hoạch, nó cho thấy tác giả đang nghĩ theo hướng biến bộ nhớ cá nhân thành tài sản mô hình hóa, không chỉ là dữ liệu tạm thời.
Giới hạn của dự án là mức độ trưởng thành còn sớm, chưa có số liệu stars đáng kể, chưa chứng minh được tính ổn định trên tập người dùng rộng và tính năng compile vẫn chưa hoàn tất. Nhưng với làn sóng quay về local-first AI, Chatforge đáng theo dõi vì nó chạm đúng câu hỏi lớn, làm sao để hội thoại với LLM tích lũy được giá trị bền thay vì tan biến sau mỗi session. Với người dùng cá nhân, researcher hoặc builder đang thử nghiệm personal memory stack, đây là một repo có góc nhìn sản phẩm khá mới.