Tạo tệp iCalendar từ hình ảnh bằng Anthropic Claude 3.5
(gregsramblings.com)- Trong tình huống lịch học piano jazz chỉ được gửi dưới dạng ảnh JPG, Claude 3.5 Sonnet đã đọc các ngày được đánh dấu và giúp giảm bớt công việc lặp lại khi chuyển chúng vào lịch
- 13 ngày được tô màu xanh đã được trích xuất thành các buổi học thứ Sáu cách tuần từ ngày 13 tháng 9 năm 2024 đến ngày 23 tháng 5 năm 2025
- Tiếp đó, ngay trong cùng cuộc trò chuyện, công cụ còn tạo cả văn bản tệp ICS chứa lịch
Jazz Piano Lessonvào 2 giờ chiều theo Pacific Time cho từng ngày - Tệp
.icsđược tạo có thể lưu dưới dạng văn bản rồi nhập từ mục Import/export của Google Calendar và đã được thêm vào bình thường - ChatGPT cũng nhận diện được ngày tháng, nhưng ban đầu đưa ra mã Python thay vì
.ics, và chỉ tạo văn bản iCalendar sau khi được yêu cầu trực tiếp nội dung tệp
Từ lịch trong ảnh đến tệp lịch
- Giáo viên piano jazz đã gửi lịch học cá nhân mùa thu/đông dưới dạng ảnh JPG, với 13 ngày học được đánh dấu bằng bút xanh
- Thay vì tạo thủ công 13 lịch hẹn trong Google Calendar, người dùng đã tải ảnh lên Claude 3.5 Sonnet
- Yêu cầu đầu tiên là như sau
List the dates that are outlined in green
- Claude đã trích xuất 13 ngày sau
- Friday, 13-Sep-24
- Friday, 27-Sep-24
- Friday, 11-Oct-24
- Friday, 8-Nov-24
- Friday, 6-Dec-24
- Friday, 20-Dec-24
- Friday, 17-Jan-25
- Friday, 31-Jan-25
- Friday, 28-Feb-25
- Friday, 14-Mar-25
- Friday, 11-Apr-25
- Friday, 25-Apr-25
- Friday, 23-May-25
- Những ngày này tương ứng với lịch học vào thứ Sáu cách tuần, bắt đầu từ tuần có thứ Ba ngày 10 tháng 9 năm 2024
Tệp iCalendar do Claude tạo ra
- Ở yêu cầu tiếp theo, người dùng đề nghị tạo tệp ICS để thêm lịch
Jazz Piano Lessonvào 2 giờ chiều theo Pacific Time cho từng ngày - Văn bản iCalendar được tạo gồm
BEGIN:VCALENDAR,VERSION:2.0,PRODID,CALSCALE:GREGORIANvà 13 khốiVEVENT - Mỗi sự kiện chứa các trường sau
SUMMARY:Jazz Piano LessonDTSTART,DTEND: lịch kéo dài 1 giờDTSTAMP:20240824T000000ZUIDriêng cho từng ngày
- Thời gian đã được chuyển sang ký hiệu Z của UTC, và thay đổi giờ theo Pacific Time cũng được phản ánh trong tệp
- Cách sử dụng là sao chép nội dung đã tạo, dán vào một tệp văn bản mới, lưu với phần mở rộng
.ics, rồi nhập vào ứng dụng lịch mong muốn - Trong Google Calendar, tệp
.icsđã được nhập qua menu Import/export trong phần cài đặt, và các lịch hẹn đã được thêm bình thường - Khi thử cùng đầu vào với ChatGPT, công cụ này vẫn nhận diện được ngày tháng nhưng ban đầu trả lời rằng không thể tạo tệp
.icsvà cung cấp mã Python; sau đó, khi được yêu cầu “chỉ hiển thị nội dung tệp.ics”, nó mới tạo ra nội dung đó
1 bình luận
Các ý kiến trên Hacker News
Khi nhờ Claude trích xuất danh sách hoặc dữ liệu, nhất định phải kiểm tra lại kết quả
99,9% là đúng, nhưng thỉnh thoảng 1–2 bản ghi bị sai, mà kết quả trông có vẻ hợp lý nên càng dễ bỏ sót. Với danh sách hoặc bảng dài, mô hình ngôn ngữ lớn có thể sai ở những chi tiết cực nhỏ; tôi từng trực tiếp gặp chuyện này. Tin thì tin, nhưng phải kiểm chứng
Nếu đáp án có thể được kiểm chứng bằng máy, cũng có cách là nhờ mô hình ngôn ngữ lớn viết một trình kiểm chứng Python có thể chạy nội bộ. ChatGPT có thể thực thi mã, và tôi biết Sonnet 3.5 cũng có thể, nhưng chưa tự thử
Khi hỏi ngày sinh của George Washington, việc trả lời “May 20, 2020” khác với việc tự tin ảo giác rằng đó là “February 20, 1733”. Thoạt nhìn thì có vẻ hợp lý. Presidents' Day ở tháng 2, có vẻ liên quan đến ngày sinh, năm cũng trông có vẻ đúng, nên rất dễ cảm thấy như vậy là đủ
Nhưng nó sai, và điều đáng sợ là mô hình ngôn ngữ lớn nói những “sự thật” như thế với thái độ đầy tự tin. Đó là vì chúng ta đã khiến một mô hình xác suất nói như vậy, nhưng lại không có đủ cơ chế để kiểm tra hoặc xác minh thông tin
“Tin nhưng kiểm chứng” là một điều nghịch lý và vòng lặp. Nếu phải kiểm tra mọi sự thật mà ChatGPT đưa ra bằng Wikipedia, nơi được tin là nguồn chân lý cao hơn, thì tại sao không bắt đầu từ đó ngay từ đầu? Nếu phải tạo trình kiểm chứng Python để xác minh đầu ra, thì tại sao không làm việc đó ngay từ đầu?
Những lỗi tinh vi kiểu này sẽ gây ra vấn đề lớn. Lỗi lệch 1 rất khó phát hiện, dữ liệu bị ô nhiễm từ từ và đi chệch hướng ngày càng nhiều, rồi đến khi nhận ra thì đã quá muộn. Nếu mọi đầu ra rác của mô hình ngôn ngữ lớn đều dễ thấy như gợi ý bôi keo lên pizza thì còn đỡ, nhưng thực tế có lẽ sẽ giống như chất độc thấm dần vào giếng; khi các đầu ra không chính xác bắt đầu len vào những phần quan trọng của cuộc sống, rất có thể sẽ thật sự rắc rối
Nếu tự làm, tôi nghĩ mình còn không đạt được 99% độ chính xác. Với loại việc này, nếu thật sự có độ chính xác 99,9% thì tôi sẵn sàng chấp nhận
Ví dụ, khi thử hai ứng dụng podcast, tôi muốn xem khác biệt giữa các feed đã đăng ký. Ban đầu tôi nhờ nó so sánh hai file OPML, nhưng kết quả sai. Tôi có thể dành 30 phút tinh chỉnh prompt và kiểm chứng thủ công, nhưng thay vào đó tôi nhờ nó viết một script so sánh hai file, và nó chạy tốt. So với quá trình nhàm chán phải kiểm từng đầu ra phức tạp, script tương đối dễ rà soát để có thể tin rằng nó có lẽ đúng
Tôi đã thử một tác vụ tương tự bài viết gốc với dữ liệu không phải tiếng Anh, và không thể ngăn Claude “tử tế” dịch một phần dữ liệu sang tiếng Anh. Nếu nói “hãy bao gồm phần mô tả của hình ảnh” thì nó dịch; nếu nói “hãy bao gồm phần mô tả của hình ảnh nhưng không dịch hay tóm tắt” thì nó просто bỏ qua
2 tuần trước tôi có đúng cùng nhu cầu: trường gửi một file PDF, còn tôi đang ở quán cà phê và chỉ có điện thoại
Tôi dùng ChatGPT, và bài viết nói rằng không thể trực tiếp tạo file .ics bằng code interpreter là đúng, nhưng bài toán cụ thể này hoàn toàn có thể giải được. Trên điện thoại Android, tôi làm như sau: yêu cầu nó trích xuất mọi ngày, giờ và ghi chú hữu ích từ PDF; tạo nội dung theo định dạng file .ics dưới dạng đầu ra mã; rồi dùng code interpreter để đưa nội dung đó vào một file và lưu với phần mở rộng .ics
Nó xử lý ổn đến cuối, và tôi có thể tải file xuống rồi mở bằng ứng dụng gcal trên điện thoại để nhập toàn bộ lịch
Nói rằng code interpreter không thể “tạo” file ICS là vì môi trường Python đang chạy không có thư viện chuyên dụng cho việc đó. File ICS chỉ là một file văn bản theo định dạng cụ thể, nên hoàn toàn có thể tạo được
Tôi đã làm việc tương tự với ChatGPT-4o bằng cách đưa cho nó một file txt chứa danh sách tên phim. Tôi yêu cầu nó trả về ngày phát hành của từng phim, rồi nhận được một file iCal chứa ngày phát hành của tất cả các phim dưới dạng sự kiện kỷ niệm lặp lại hằng năm, để có thể xem lại phim yêu thích vào mỗi dịp kỷ niệm
Tôi cũng làm cho vài người bạn, và cho đến nay với tổng cộng hơn 100 tên phim, tỷ lệ thành công là 100%
Vì thế tôi nhớ rằng ngày 11 tháng 9 năm 2001 là thứ Ba. Đó là ngày phát hành album, và hôm đó cũng có một album hay
Những nơi như trường học hay nhà tuyển dụng vẫn còn phát hành rất nhiều lịch ở định dạng PDF
Họ dành nhiều thời gian cho branding và định dạng trực quan hơn là tạo ra một định dạng có thể thực sự nhập vào ứng dụng lịch để dùng một cách thực tế
Tôi nghĩ có thể có một quy trình 2 bước có thể khái quát hóa chắc chắn hơn. Thứ nhất, đọc bất kỳ tài liệu nào rồi lập bảng gồm ngày, giờ và múi giờ, địa điểm, URL, ghi chú, có lặp lại hay không; thứ hai, đọc một bảng có cấu trúc đại khái như vậy để tạo Google Calendar, iCal, file ICS hoặc liên kết
Cũng có thể fine-tune riêng mô hình hoặc agent để thực hiện thật tốt từng bước
Ở đây tôi cho rằng Siri đã thất bại. Ngay cả những việc như “tạo một sự kiện bắt đầu vào thứ Hai và kéo dài 90 ngày” lúc nào cũng gần như đánh cược
Những việc tôi không muốn làm thủ công thì Siri cũng không làm được. Vậy thì khó mà gọi là trợ lý
Tôi đưa ảnh chụp màn hình danh sách giao dịch internet banking vào GPT4-o để lấy danh sách giao dịch dùng cho khai thuế công ty. Tôi đã kiểm tra bằng mắt và kết quả đúng
Trước đó, một product manager đã gửi ảnh chụp màn hình danh sách ID công ty cần bật feature flag. Thay vì nhập thủ công tất cả, tôi dùng GPT4-o để tạo danh sách phân tách bằng dấu phẩy từ ảnh chụp màn hình, và việc đó cũng hoạt động hoàn hảo
Cái này thật ấn tượng. Đồng thời nó cũng cho thấy rõ một design pattern mà tôi mong sẽ phổ biến hơn nhờ AI: định dạng file liên thông, con người đọc được. Những thứ như file .ICS
Tôi mong nhiều website và ứng dụng ưu tiên hỗ trợ các định dạng như vậy hơn. Không chỉ giúp dễ chèn AI vào để sử dụng, mà còn cho phép nhiều người tạo extension một cách sáng tạo hơn
Trong khoảng 10 năm qua đã có xu hướng, dưới danh nghĩa “đơn giản”, khiến dữ liệu bị silo hóa hơn và bản thân file trở nên kém quan trọng hơn; tôi mong điều đó phần nào được đảo ngược
Tôi thường xuyên tạo mục lịch bằng ChatGPT. Liên kết Google Calendar, file ICS, mã QR đều làm được
Tôi không biết trong bài gốc có gì sai
Dạo này cũng có thể yêu cầu “dùng Python” cho mục đích đó. Khi đó nó có tạo file, nhưng phải mã hóa kết quả thành chuỗi hoặc mảng Python nên có khả năng phát sinh nhiều lỗi hơn
Dùng AI cho lời mời lịch chắc chắn rất phù hợp. Tôi đã làm một việc tương tự ở đây, và ical thì đơn giản hơn
https://hareeshganesan.com/2024/07/14/baby-calendar
Tôi cũng đang dùng gpt 4o theo cách tương tự để đơn giản hóa nhập dữ liệu. Hiện tại đã khá hữu ích, nhưng mọi người vẫn chưa dùng mô hình ngôn ngữ lớn nhiều cho các tác vụ có cấu trúc
Tuy nhiên, nó hữu ích quá rõ ràng nên tôi nghĩ điều đó sẽ thay đổi. Bất kỳ việc nhập dữ liệu vào biểu mẫu nào giờ cũng có thể, và thực tế sẽ, được tự động hóa. Đặc biệt nếu thông tin nằm trên bản in hoặc ở dạng có thể in, chỉ cần hướng camera vào và rà soát nhanh
Việc hút thông tin từ những nơi như biển báo, poster có thể hữu ích đáng kinh ngạc. Người ta bỏ rất nhiều công sức và tiền bạc để truyền đạt trực quan nhiều thông tin vốn không tồn tại ở định dạng số dễ truy cập