5 phút đọc
Trong bối cảnh các ứng dụng quản lý tài chính cá nhân ngày càng phụ thuộc vào hạ tầng đám mây và thu thập dữ liệu người dùng, dự án sarim2000/pennywiseai-tracker nổi lên như một giải pháp thay thế tập trung vào quyền riêng tư. Repository viết bằng ngôn ngữ Kotlin này hiện thu hút 606 stars và 165 forks trên GitHub, cho phép tự động chuyển đổi tin nhắn (SMS) giao dịch ngân hàng thành dữ liệu tài chính trực quan nhờ sự hỗ trợ của trí tuệ nhân tạo (AI) chạy hoàn toàn trên thiết bị.
Bảo mật dữ liệu tài chính với AI chạy trực tiếp trên thiết bị
Điểm khác biệt cốt lõi của PennyWise nằm ở cơ chế xử lý hoàn toàn ngoại tuyến (offline). Ứng dụng tự động đọc các tin nhắn thông báo giao dịch từ ngân hàng và chuyển hóa thành dòng thời gian quản lý chi tiêu sạch sẽ, có thể tìm kiếm dễ dàng mà không yêu cầu người dùng phải nhập liệu thủ công hay đăng ký tài khoản.
Tất cả quá trình trích xuất dữ liệu, lưu trữ và xử lý AI đều diễn ra ngay trên điện thoại di động của người dùng. PennyWise tích hợp Google AI Edge LiteRT-LM chạy mô hình Qwen 2.5 trực tiếp trên phần cứng thiết bị.
Về mặt quyền riêng tư, dự án không sử dụng bất kỳ SDK phân tích hay báo cáo sự cố nào từ bên thứ ba. Trong tệp cấu hình app/build.gradle.kts, ứng dụng không chứa các thư viện như Firebase, Crashlytics, Sentry hay Google Analytics. Không có dữ liệu tài chính nào được gửi về máy chủ của dự án. Mã nguồn mở được phát hành theo giấy phép AGPL v3 cho phép cộng đồng kiểm tra toàn bộ tuyên bố này.
Kiến trúc kỹ thuật và hệ thống quy tắc tùy biến
Dự án được xây dựng dựa trên bộ công cụ phát triển ứng dụng Android hiện đại với kiến trúc MVVM (Model-View-ViewModel). Mã nguồn sử dụng Jetpack Compose cho giao diện người dùng theo chuẩn Material Design 3, Room làm cơ sở dữ liệu lưu trữ cục bộ, Hilt để quản lý phụ thuộc (dependency injection), cùng Coroutines xử lý bất đồng bộ.
PennyWise cung cấp một hệ thống quy tắc (Rules) linh hoạt giúp tự động phân loại, chỉnh sửa hoặc chặn giao dịch theo điều kiện cấu hình. Mỗi quy tắc bao gồm một hoặc nhiều điều kiện “When” và hành động xử lý “Then”:
- Điều kiện tài khoản (ACCOUNT): Giới hạn quy tắc cho các giao dịch từ một tài khoản ngân hàng cụ thể. Dữ liệu lưu dưới dạng khóa tổng hợp
BankName||Last4(ví dụ:HDFC Bank||1234). Bảng điều khiển hỗ trợ các toán tử EQUALS và NOT_EQUALS. - Logic kết hợp: Các điều kiện có thể kết hợp bằng logic AND hoặc OR, hỗ trợ nhiều điều kiện trong cùng một quy tắc. Cấu hình này được biểu diễn dưới dạng JSON lưu trữ cục bộ và không lộ qua API.
Khả năng tương thích 170 ngân hàng tại 26 quốc gia
PennyWise hỗ trợ đọc dữ liệu từ 170 ngân hàng và dịch vụ tài chính tại 26 quốc gia, đi kèm khả năng xử lý đa tiền tệ.
Hệ thống có thể phân tích cú pháp tin nhắn từ nhiều định chế tài chính lớn tại các khu vực như Ấn Độ (Axis Bank, HDFC Bank, ICICI Bank, State Bank of India), Mỹ (Chase, Citi Bank, Charles Schwab), Thái Lan (Bangkok Bank, Kasikorn Bank, Siam Commercial Bank), Nepal, Ethiopia, Nigeria, Ả Rập Xê Út, UAE, Ai Cập và nhiều quốc gia khác.
Nhận định và các yếu tố cần lưu ý
Dự án sarim2000/pennywiseai-tracker ghi nhận cập nhật gần nhất vào ngày 30/10/2026, thể hiện sự duy trì hoạt động từ phía tác giả và cộng đồng. Việc kết hợp giữa Jetpack Compose và LLM chạy local (Qwen 2.5) cho thấy hướng đi thực dụng trong việc giải quyết bài toán bảo mật dữ liệu nhạy cảm.
Dù vậy, dựa trên dữ liệu hiện có từ repository, người dùng và các nhà phát triển cần lưu ý một số điểm chưa được làm rõ:
- Hiệu năng thực tế và mức độ tiêu tốn tài nguyên (RAM, pin) khi chạy mô hình Qwen 2.5 qua Google AI Edge LiteRT-LM trên các thiết bị Android cấu hình thấp hoặc tầm trung chưa được đo lường chi tiết trong tài liệu.
- Danh sách 170 ngân hàng hiện chưa đề cập cụ thể các ngân hàng tại thị trường Việt Nam, do đó khả năng tự động nhận diện cú pháp SMS của các ngân hàng nội địa có thể cần tới việc đóng góp thêm mẫu tin nhắn hoặc cấu hình quy tắc thủ công từ người dùng.
Nguồn tham khảo: Xem bài gốc