Nhiệm vụ: Thêm tính năng xử lý hàng loạt ảnh
Thêm tính năng xử lý hàng loạt ảnh
Tôi có rất nhiều ảnh cá nhân có dữ liệu địa lý (tôi đã chủ động bật quyền truy cập GPS cho camera).
Cần phát triển kịch bản sau:
Kéo thả một lúc cả một lô ảnh lớn (100-200+) vào một giao diện riêng.
Ngay trên trình duyệt, không cần tải lên máy chủ, chúng ta cần lọc ra các bức ảnh có dữ liệu địa lý, sắp xếp theo khoảng cách giữa chúng và hiển thị tất cả dưới dạng các thẻ kèm ảnh xem trước. Đồng thời, cần tải danh sách các tệp đã tải lên trước đó lên giao diện (frontend) để tránh xử lý lại những tệp trùng lặp. Về cơ bản, danh sách đã tải lên cũng cần được lọc theo thuộc tính "Đã tải lên".
Tiếp theo, chúng ta chọn bất kỳ bức ảnh nào và tạo một ý tưởng (concept) mới dựa trên đó (dựa vào dữ liệu địa lý, có thể dễ dàng tra cứu nhiều thông tin qua AI và AI cũng sẽ chuẩn bị mô tả, việc còn lại chỉ là kiểm tra lại và xác nhận hoặc điều chỉnh).
Tất cả những điều này sẽ là nguồn tài nguyên khởi đầu rất tốt cho các điểm tham quan thiên nhiên và các địa điểm khác.
Ворклоги
Cha, nhờ ChatGPT phác thảo sơ đồ logic dựa trên mô tả nhiệm vụ, hóa ra nó hơi lớn hơn so với tôi tính toán )))
flowchart TD
A[Người dùng mở giao diện riêng] --> B[Frontend tải danh sách các tệp đã tải lên]
B --> B1[Danh sách bao gồm: fingerprint/hash, tên, kích thước, ngày, geo, trạng thái, concept_id]
A --> C[Người dùng thêm hàng loạt 100-200+ ảnh]
C --> D[Các tệp được xử lý cục bộ trên trình duyệt]
D --> E[Đọc EXIF / GPS mà không cần tải lên máy chủ]
E --> F{Có dữ liệu tọa độ?}
F -- Không --> F1[Đánh dấu là: không có geo]
F1 --> Z1[Có thể ẩn hoặc hiển thị thành nhóm riêng]
F -- Có --> G[Tạo fingerprint cục bộ cho ảnh]
G --> H{Ảnh đã có trong danh sách đã tải lên chưa?}
H -- Có --> H1[Đánh dấu là: đã tải lên]
H1 --> I[Thêm vào danh sách thẻ cục bộ chung]
H -- Không --> H2[Đánh dấu là: mới]
H2 --> I
I --> J[Nhóm / sắp xếp ảnh theo các điểm tọa độ]
J --> K[Tính toán khoảng cách giữa các ảnh]
K --> L[Sắp xếp theo tuyến đường / khoảng cách gần / cụm]
L --> M[Hiển thị các thẻ có ảnh xem trước]
M --> N[Người dùng lọc]
N --> N1[Chỉ ảnh mới]
N --> N2[Đã tải lên]
N --> N3[Có geo]
N --> N4[Không có geo]
N --> N5[Theo khoảng cách / khu vực / cụm]
M --> O[Người dùng chọn ảnh]
O --> P[Frontend lấy tọa độ của ảnh]
P --> Q[Yêu cầu tới AI / backend: xác định địa điểm theo tọa độ]
Q --> R[AI tìm kiếm ngữ cảnh: đối tượng tự nhiên, thắng cảnh, khu vực, mô tả]
R --> S[AI tạo bản nháp ý tưởng (concept)]
S --> T[Người dùng kiểm tra]
T --> U{Xác nhận?}
U -- Không --> U1[Người dùng chỉnh sửa mô tả, tiêu đề, danh mục]
U1 --> T
U -- Có --> V[Tạo concept]
V --> W[Tải lên các ảnh đã chọn / liên kết với concept]
W --> X[Lưu vào cơ sở dữ liệu: concept, geo, files, metadata]
X --> Y[Ảnh chuyển vào danh sách đã tải lên]