www.fgks.org   »   [go: up one dir, main page]

Bước tới nội dung

Thành viên:Plantaest/Feverfew

Bách khoa toàn thư mở Wikipedia

Đây là một phiên bản cũ của trang này, do Plantaest (thảo luận | đóng góp) sửa đổi vào lúc 15:58, ngày 21 tháng 6 năm 2024. Địa chỉ URL hiện tại là một liên kết vĩnh viễn đến phiên bản này của trang, có thể khác biệt rất nhiều so với phiên bản hiện hành.

Feverfew
Phát triển bởiPlantaest
Phát hành lần đầu23 tháng 6 năm 2024 (2024-06-23)
Phiên bản ổn định
0.1.0-alpha.1
Kho mã nguồnfeverfew trên GitHub
Viết bằngJava, TypeScript, Python
Nền tảngToolforge
Ngôn ngữ có sẵnĐa ngôn ngữ
Thể loạiCông cụ kiểm tra liên kết
Giấy phépAGPL-3.0
WebsiteFeverfew

Feverfew là một phần mềm kiểm tra liên kết được triển khai trên Toolforge, phát triển bởi Plantaest.

Cách sử dụng

Kiểm tra một bài viết

Để bắt đầu sử dụng phần mềm Feverfew, cần thực hiện một số bước sau:

Đầu tiên, cần truy cập trang chủ của Feverfew tại địa chỉ: https://feverfew.toolforge.org/.

Tiếp theo, khi giao diện trang web đã xuất hiện, thì có thể bắt đầu sử dụng.

Người dùng cần chọn một wiki chứa bài viết mà mình sẽ kiểm tra, như Wikipedia tiếng Việt sẽ có mã là viwiki, sau đó nhập tiêu đề của bài viết, và nhấn nút Kiểm tra (Check) để phần mềm tiến hành kiểm tra các liên kết trong bài viết.

Sau khi đợi từ 2–30 giây, phần mềm có thể đã kiểm tra xong và trả về kết quả.

Cách đọc kết quả

Giao diện trang kết quả gồm 3 phần chính:

  • Phần đầu là một số thông tin của trang được kiểm tra, như tiêu đề trang, ID của trang, ID của wiki; và thời gian thực hiện của lần kiểm tra. Ngoài ra, góc phải còn có 2 nút. Nút đầu tiên có hình liên kết trỏ đến địa chỉ của kết quả được lưu trữ của lần kiểm tra, địa chỉ này có dạng như sau: https://feverfew.toolforge.org/check/archive/{check_id}, có thể dùng địa chỉ này để chia sẻ trên nền tảng Wikipedia nếu như muốn cho mọi người biết về tình trạng các liên kết của bài viết. Nút thứ hai có hình liên kết ngoài trỏ đến địa chỉ của phiên bản của trang tại thời điểm được kiểm tra.
  • Phần giữa là 4 hộp với các màu khác nhau. Hộp màu xanh dương cho biết tổng số liên kết mà phần mềm trích xuất từ mã nguồn của bài viết. Hộp màu xám cho biết số liên kết mà phần mềm bỏ qua trong quá trình kiểm tra. Hộp màu xanh lá cho biết số liên kết được mô hình máy học đánh giá là hoạt động (working). Hộp màu đỏ cho biết số liên kết được mô hình máy học đánh giá là hỏng (broken).
  • Phần cuối là một danh sách các kết quả chi tiết của từng liên kết, với những thông tin sau:
    • Số thứ tự. Đi kèm với số thứ tự của liên kết thì có thể có số thứ tự của chú thích.
    • Con số xác suất cho biết liên kết này có hỏng hay không, tính theo phần trăm. Nếu dưới 50% thì nền xanh. Nếu trên 50% thì nền đỏ.
    • Tên máy chủ (Hostname)
    • Trạng thái HTTP, có thể là 200 (nếu tải thành công), hoặc 404 (nếu trang web trả về kết quả không tìm thấy trang). Xem thêm: HTTP response status codes.
    • Thời gian tải, tính theo mili giây.
    • Kích thước trang, tính theo byte.
    • Có thể có tên của chú thích nếu liên kết đó nằm trong một chú thích. Nền tím nếu như số thứ tự của chú thích là số lẻ, nền cam nếu như số thứ tự của chú thích là số chẵn.
    • Văn bản của liên kết (có nút sao chép ngay cạnh)
    • Liên kết trần (có nút sao chép ngay cạnh)

Xem danh sách kết quả

Để xem danh sách kết quả, tại trang chủ, nhấn menu Kết quả (Result); hoặc truy cập trực tiếp liên kết: https://feverfew.toolforge.org/check.

Xem một kết quả

Để xem một kết quả, có thể xem danh sách kết quả và bấm chọn một kết quả trong danh sách; hoặc truy cập trực tiếp các liên kết có dạng: https://feverfew.toolforge.org/check/archive/{check_id}.

Các tính năng khác

Người dùng có thể thay đổi màu sắc của giao diện (chế độ màu), hướng đọc của văn bản, và ngôn ngữ bằng 3 nút ở góc phải trên cùng.

Feverfew và InternetArchiveBot

Feverfew không có mục tiêu thay thế InternetArchiveBot. Hai công cụ có thể được sử dụng đồng thời để hỗ trợ trong việc kiểm tra và lưu trữ các liên kết trong bài viết. Cách sử dụng hợp lý có thể là:

  • Đầu tiên, sử dụng Feverfew để kiểm tra sơ bộ tình trạng các liên kết của bài viết.
  • Tiếp theo, sử dụng InternetArchiveBot để tiến hành lưu trữ một phần (chỉ các liên kết chết) hoặc toàn bộ các liên kết (bao gồm liên kết chết lẫn sống ở hiện tại).
  • Sau đó, tiếp tục sử dụng Feverfew để đánh giá tình trạng sau khi đã lưu trữ các liên kết.

Lỗi đánh giá

Vì Feverfew sử dụng một mô hình máy học, nên lỗi đánh giá có thể xảy ra ở một số trường hợp, tức là đánh giá liên kết hoạt động thành liên kết hỏng và ngược lại. Theo số liệu từ quá trình huấn luyện thì mô hình này đạt accuracy là 0.82, F1 là 0.80. Có thể hiểu đại khái là đánh giá đúng 82/100 liên kết, còn 18 liên kết còn lại thì hên xui :)

Người dùng có thể sử dụng thêm các thông tin bổ sung như trạng thái HTTP trong kết quả để tự kết luận tình trạng của liên kết.

Lỗi phần mềm

Hiện tại, có thể có một số lỗi phát sinh khi sử dụng phần mềm:

  • Nếu nhập một tiêu đề không tồn tại trên wiki được chọn, thì không thể lấy được nội dung của trang, và do đó không thể khởi tạo lần kiểm tra.
  • Có thể có lỗi khi thời gian chờ kiểm tra dài bất thường, dù lần kiểm tra đã thực hiện xong và đã được lưu trữ. Thời gian gọi đến các liên kết được giới hạn ở mức 25 giây, nên nếu quá vài phút thì chứng tỏ đã xảy ra lỗi.
  • Có thể có lỗi nếu gửi yêu cầu kiểm tra quá nhiều trong một thời hạn nhất định. Hiện tại, phần mềm chỉ cung cấp hạn mức 100 lượt kiểm tra/ngày cho mỗi phiên làm việc của từng người dùng ẩn danh.
  • Có thể có lỗi bởi sự thiếu ổn định máy chủ Toolforge.

Nguồn gốc

Ý tưởng của Feverfew khởi nguồn từ một phần mềm mà các wiki hay sử dụng trong việc đánh giá các liên kết trong quá khứ là Checklinks của thành viên Dispenser (Wikipedia tiếng Anh). Tuy nhiên, phần mềm này đã không còn khả năng hoạt động, vì tác giả đã vắng mặt từ năm 2020.

Feverfew có những tính năng cơ bản của Checklinks, và khả năng sẽ không triển khai thêm những tính năng khác để đảm bảo đơn giản hóa hệ thống, và cũng vì hiện tại đã có công cụ InternetArchiveBot hoạt động đủ tốt trong việc hỗ trợ lưu trữ các liên kết.

Tiền đề cho dự án Feverfew đến từ một cuộc thảo luận vào năm 2021 tại Wikipedia tiếng Việt: Công cụ check link mới.

Phiên bản ổn định

Hiện tại, dự án Feverfew chỉ đang ở giai đoạn thử nghiệm, và có thể sẽ còn khá lâu để đạt phiên bản ổn định đầu tiên 1.0.0. Trong thời gian này, dự án sẽ tiếp tục thu nhận những ý kiến góp ý từ những người sử dụng từ các wiki để hoàn thiện thêm, cũng như sửa các lỗi có thể xảy ra.

Tính bảo mật

Feverfew không lưu trữ bất kỳ thông tin cá nhân nào, ngoại trừ một mã ngẫu nhiên được tạo bởi UUID và được băm bởi thuật toán CRC32 thành một số nguyên 32 bit, có thời hạn 30 ngày. Mã này dùng để giới hạn số lần kiểm tra trong hạn mức cho phép, cũng như để truy lục lại nếu cần thiết.

Mã nguồn

Mã nguồn được lưu trữ trên GitHub: https://github.com/plantaest/feverfew. Những bạn quan tâm và có tài khoản GitHub thì có thể cho sao để ủng hộ. Hiện tại, dự án chưa có hướng dẫn cụ thể về việc đóng góp mã nguồn, nên việc này sẽ được khuyến khích sau khi đến thời điểm thích hợp.

Kiến trúc dự án bao gồm các thành phần sau:

  • Front-end là một ứng dụng React, viết bằng TypeScript, với một số thư viện nổi bật như Mantine, React Query, Legend State, i18next, React Router, Valibot, và được build bởi Vite.
  • Back-end là một ứng dụng Quarkus, viết bằng Java, với một số thư viện bổ sung như TSID, Unirest, Jsoup, ONNX Runtime, Bucket4j.
  • Máy chủ mặt ngoài là Caddy Server, vừa serve các tệp tĩnh của phần front-end, vừa reserve proxy cho phần back-end.
  • Hai máy chủ Caddy và Quarkus được chạy trên một pod của Kubernetes thông qua phần mềm nội bộ webservice của Toolforge, với cấu hình: 3 CPU, 6 GB RAM, 2 replica, hệ điều hành Debian. Ứng dụng Quarkus trên Toolforge chạy trên JVM.
  • AWS Lambda Function là một ứng dụng Quarkus, chỉ thực hiện công việc tạo request đến các liên kết, được triển khai trên AWS với 4 instance cùng một region, hạn mức bộ nhớ 512 MB và thời gian timeout 30 s. Ứng dụng Quarkus trên AWS Lambda là một native image tạo bởi GraalVM CE.
  • Mô hình máy học được thiết kế và xây dựng bằng scikit-learn, ngôn ngữ Python, và chuyển đổi thành định dạng ONNX bằng thư viện skl2onnx.