1 điểm bởi GN⁺ 2024-03-12 | 1 bình luận | Chia sẻ qua WhatsApp

Xây dựng công cụ tìm kiếm ebook phân tán mã nguồn mở

  • Nhờ một người bạn giới thiệu, tác giả biết đến Liber3, một website tìm kiếm ebook sử dụng tên miền ENS.
  • Liber3 đã tạo một website tìm kiếm ebook bằng ENS và IPFS, nhưng không công khai mã nguồn.
  • Sau khi xem xét tài liệu và bộ dữ liệu của Glitter, tác giả quyết định tự triển khai một phiên bản cộng đồng mã nguồn mở.

Khởi tạo dự án

  • Tạo một dự án mới và cài đặt Glitter SDK để có thể dễ dàng kết nối với mạng Glitter và lấy metadata của ebook.

Kết nối mạng

  • Tạo một client có thể tương tác với mạng Glitter.
  • Khởi tạo instance LCDClient thông qua Glitter SDK và thiết lập các tham số liên quan.

Xây dựng chức năng tìm kiếm

  • Định nghĩa chức năng tìm kiếm nhận từ khóa truy vấn của người dùng, tạo câu lệnh truy vấn và gửi nó tới mạng Glitter.

Hiển thị kết quả tìm kiếm

  • Sau khi xây dựng chức năng tìm kiếm, thiết kế giao diện hiển thị thông tin cơ bản của ebook và cung cấp các yếu tố tương tác để người dùng dễ dàng duyệt và chọn sách.
  • Qua bốn bước này, có thể xây dựng một công cụ tìm kiếm ebook và cung cấp cho người dùng một nền tảng hiệu quả, tiện lợi để tìm kiếm tài nguyên ebook.
  • Nếu xuất bản phiên bản website đã biên dịch lên mạng IPFS, có thể sở hữu một công cụ tìm kiếm ebook phân tán có thể truy cập thông qua IPFS gateway.
  • Toàn bộ mã nguồn có thể được xem trong kho lưu trữ này.

Ý kiến của GN⁺

  • Bài viết này có thể tạo hứng thú cho những người quan tâm đến công nghệ khi giải thích cách xây dựng một công cụ tìm kiếm ebook bằng cách tận dụng mã nguồn mở và công nghệ phân tán.
  • Việc sử dụng cơ sở dữ liệu phân tán và IPFS mang tiềm năng cải thiện tính bền vững và khả năng truy cập của dữ liệu bằng cách đưa ra một phương thức mới để lưu trữ và truy xuất dữ liệu mà không phụ thuộc vào máy chủ tập trung.
  • Khi áp dụng công nghệ này, cần cân nhắc độ ổn định của mạng, tốc độ tìm kiếm và trải nghiệm người dùng, đồng thời điều quan trọng là phải hiểu rõ ưu và nhược điểm của nó so với các công cụ tìm kiếm tập trung hiện có.
  • Những dự án khác cung cấp chức năng tương tự có thể kể đến Project Gutenberg hoặc Google Books API, nhưng chúng không sử dụng công nghệ phân tán.
  • Bằng cách sử dụng công nghệ phân tán, có thể trả lại quyền sở hữu và quyền kiểm soát dữ liệu cho người dùng, đồng thời tăng cường khả năng chống kiểm duyệt của nội dung.

1 bình luận

 
GN⁺ 2024-03-12
Các ý kiến trên Hacker News
  • Từ lâu tôi đã muốn thử xử lý các dataset và mô hình AI trên IPFS theo cách tương tự
    Tôi không biết tương lai của IPFS sẽ ra sao, nhưng khi làm việc với các dataset quy mô lớn, tôi hy vọng phần cốt lõi của hạ tầng chia sẻ dữ liệu P2P — thứ giúp cá nhân cũng có thể giải quyết vấn đề với ít phần cứng — sẽ trở nên dễ tiếp cận hơn
    https://github.com/JakeKalstad/IPFSPytorchDataset
    https://github.com/JakeKalstad/load_ipfs_pytorch_model

  • Nhìn tiêu đề tôi đã rất hào hứng vì tưởng là tìm kiếm toàn văn
    Zlib và Google Books đã làm việc này rồi, nhưng nếu có một phiên bản mã nguồn mở mà mọi người đều có thể đóng góp và còn cung cấp quyền truy cập toàn văn thì đó sẽ là một dự án tuyệt vời

  • Nếu chỉ tìm theo tên sách hoặc tác giả thì công cụ tìm kiếm đã có đầy rẫy
    Thứ còn thiếu là chỉ mục tìm kiếm nội dung bên trong ebook, và trong thời đại AI tạo sinh, nó sẽ sớm trở nên cực kỳ quan trọng
    Trên HN có người nói rằng có thể lập chỉ mục nội dung của hàng triệu cuốn sách chỉ với một chiếc laptop, trong khi người khác nói phạm vi này gần như bất khả thi. Tôi tò mò liệu có dự án nào đang làm việc này không

    • Tôi đang làm một dự án phụ để sắp xếp bộ sưu tập highlight ebook bằng tìm kiếm ngữ nghĩa trên thiết bị
      Hiện tại nó chỉ lập chỉ mục nội dung của chính người dùng, nhưng sau này tôi muốn thêm chế độ chia sẻ bộ sưu tập để người khác có thể dùng tìm kiếm ngữ nghĩa khám phá các ý tưởng liên quan mà mọi người tìm thấy trong sách. Cách hoạt động hiện tại có thể xem trong mã nguồn mở
      [1] https://emdash.ai/
      [2] https://github.com/dmotz/emdash
    • Kích thước của chỉ mục phụ thuộc vào văn bản cần tìm kiếm nhiều hơn hẳn so với số lượng mục cần tìm
      Tôi nhớ Google thời kỳ đầu từng tài liệu hóa nội dung kiểu này: chỉ mục tìm kiếm trả về metadata liên quan khớp với một truy vấn cụ thể. Không gian truy vấn chủ yếu dựa trên từ khóa thô và tuple, nếu tôi nhớ đúng thì là n-gram 2–3 từ, trong đó loại sau phải đáp ứng điều kiện tần suất tối thiểu. Các truy vấn dài có thể được cấu thành từ những n-gram ngắn hơn
      Vốn từ của người bản ngữ tiếng Anh trình độ cao thường khoảng 40.000 từ, và ngay cả từ điển lớn gồm cả từ cổ cũng có thể dưới 250.000 từ
      Ánh xạ từ vựng tới các tác phẩm trích dẫn những từ đó tương đối đơn giản. N-gram thì có bùng nổ tổ hợp, nhưng vẫn là một không gian khá hữu hạn, và chúng ta đã có hơn 25 năm kinh nghiệm lập chỉ mục tài liệu ở quy mô web
      Tôi nghĩ một chiếc laptop cũng có thể tạo được một chỉ mục dùng tạm ổn cho hàng triệu cuốn sách, nhưng để có chỉ mục toàn diện hơn, đặc biệt là cả chỉ mục xếp hạng của không gian tìm kiếm, có lẽ sẽ cần hệ thống lớn hơn. Có thể đó mới là bài toán khó hơn
    • Còn tùy chiếc laptop đó mạnh đến mức nào
      Gần đây trong công việc tôi có xử lý LLM chạy local, và dù lượng tử hóa hiện nay đã tiến bộ rất nhiều, làm những việc như vậy trên ThinkPad vẫn thua xa việc thuê vài giờ một VPS gắn vài chiếc 4090/H100
      Vấn đề lớn nhất với tóm tắt là phần lớn mô hình LLM local không có cửa sổ ngữ cảnh quá lớn, nên ngay cả văn bản lớn như một tiểu thuyết ngắn của Vonnegut cũng có thể quá sức. Tôi đã thử bằng cách tóm tắt issue trên GitHub, và ngay cả với cửa sổ ngữ cảnh 16k token, đôi khi nó vẫn chật vật nếu có nhiều bình luận
      Tất nhiên, người thông minh hơn tôi có thể vẫn khiến nó chạy được trên Raspberry Pi
    • Theo tôi biết, công cụ quản lý ebook phổ biến và miễn phí Calibre hiện đã hỗ trợ lập chỉ mục toàn văn cho tất cả sách mà bạn sở hữu
    • Việc tạo chỉ mục ban đầu có thể thực hiện được trên một laptop trung bình, nhưng cập nhật chỉ mục thường xuyên và xử lý request thì có vẻ sẽ khá tốn tài nguyên tính toán
      Tôi không có cơ sở nào cả, chỉ là suy đoán, nên cũng muốn biết thêm
  • Bạn có thể giải thích chi tiết cách chỉ mục tìm kiếm được nạp dữ liệu như thế nào, và giới hạn bộ nhớ dự kiến là khoảng bao nhiêu không?

  • Hay đấy. Có thể dùng cho tìm kiếm torrent không?
    Kiểu chạy cùng lúc web torrent có hỗ trợ streaming video và một công cụ tìm kiếm phi tập trung

  • Tôi tò mò liệu đây có thực sự là một công cụ tìm kiếm, hay chỉ là một frontend tạo truy vấn select from

  • Tôi không hiểu rốt cuộc chuyện này đang nói về cái gì
    Có những câu kiểu “được gợi ý Liber3, dùng tên miền ENS, chạy trên ENS và IPFS, có vẻ dùng Glitter, và là một dịch vụ được xây bằng Tendermint”, nghe như tín hiệu ngoài hành tinh gửi tới từ một thiên hà khác
    Tôi cũng đã thử cái gọi là Liber3, nhưng làm gì cũng chỉ hiện “Oops! Something went wrong. Please refresh or try again later”. Tất cả chuyện này đang nói về gì vậy?

    • ENS là Ethereum Name Service, có thể xem như DNS cho blockchain
      IPFS là InterPlanetary File System, gần giống một kho lưu trữ đối tượng phân tán kiểu S3 P2P bất biến
      Glitter nghe quen nhưng tôi không nhớ ra ngay
      Tendermint là một engine đồng thuận cho blockchain, và là một phần của bộ công cụ cùng với Inter-Blockchain Communication(IBC) Protocol và Cosmos SDK nhằm hỗ trợ khả năng tương tác giữa các blockchain
      Hệ sinh thái blockchain thực sự là một thế giới nhỏ riêng. Không hẳn là khép kín, nhưng khá “người trong hội”, nên nếu không chủ động tìm hiểu thì gần như không gặp đến
      Nói thêm, nếu bạn quan tâm đến cơ sở dữ liệu hoặc hệ thống phi tập trung không cần tin cậy, IPFS vẫn đáng xem qua ngay cả khi bạn hoài nghi blockchain. Bên trong họ đang làm khá nhiều việc thú vị, và đội ngũ này cũng không cưỡi lên làn sóng đào vàng như gần như mọi dự án blockchain khác
    • Tiêu đề là phiên bản đã lược bớt thuật ngữ chuyên môn
      Có thể xem đây là hướng dẫn triển khai để tạo một công cụ tìm kiếm ebook mã nguồn mở. Dĩ nhiên phần mô tả đó vẫn còn chút thuật ngữ, nhưng không đến mức liệt kê hàng loạt tên thư viện cụ thể
      Phần lớn bài viết là chi tiết triển khai và được gắn link khá đầy đủ
  • Rồi sau đó mới nhận ra nó đã tồn tại gần 15 năm và có tên là libgen.rs

    • Anna's Archive tốt hơn