Computer >> Máy Tính >  >> Lập trình >> Redis

Cách tạo một trình xếp hạng văn bản mạnh mẽ bằng Redis

Sống trong một thế giới mà hầu hết mọi người phải vật lộn để ra khỏi nhà mà không có điện thoại thông minh có nghĩa là Google không bao giờ ở quá xa chúng ta. Ngay lập tức, chúng tôi có thể tìm thấy câu trả lời cho hầu hết mọi câu hỏi thông qua truy vấn tìm kiếm trên công cụ tìm kiếm của Google.

Các công cụ tìm kiếm (và khả năng truy cập thông tin vô hạn của chúng) đã được tích hợp vào cuộc sống hàng ngày, khiến nhiều người trong chúng ta vô cùng tin tưởng vào chúng. Và để tối ưu, câu trả lời cho các truy vấn cần được truy xuất ngay lập tức do các tiêu chuẩn cao do Google và những gã khổng lồ công nghệ khác đặt ra.

Bất kỳ độ trễ, chậm trễ hoặc kéo nào sẽ cản trở trải nghiệm của người dùng, đó là lý do tại sao Ứng dụng Launchpad này, Alexis, đã sử dụng Redis làm cơ sở dữ liệu chính để vượt qua trở ngại này.

Người sáng lập ứng dụng này, Bobby Donchev, đã tận dụng sức mạnh của RedisAI và RediSearch để truy xuất thông tin từ kho dữ liệu để phản hồi một truy vấn với hiệu quả tối đa. Người dùng có thể lập chỉ mục các tệp PDF và sử dụng giao diện người dùng đơn giản để trích xuất thông tin từ tài liệu của họ.

Nếu không có Redis, toàn bộ quá trình tìm kiếm sẽ chậm chạp, cản trở chức năng của Alexis. Hãy cùng xem cách Bobby kết hợp ứng dụng này với nhau.

Tuy nhiên, trước khi tiếp tục, chúng tôi muốn nhấn mạnh rằng chúng tôi cũng có một loạt ứng dụng tuyệt vời để bạn khám phá trên Redis Launchpad. Vì vậy, hãy nhớ kiểm tra nó!

  1. Bạn sẽ xây dựng cái gì?
  2. Bạn sẽ cần gì?
  3. Kiến trúc
  4. Bắt đầu
  5. Cách dữ liệu được lưu trữ
  6. Cách dữ liệu được truy cập
  7. Cách thức hoạt động

1. Bạn sẽ xây dựng cái gì?

Bạn sẽ xây dựng một trình xếp hạng văn bản hiệu quả có khả năng truy xuất các truy vấn tìm kiếm ở tốc độ tối đa. Người dùng sẽ có thể tận dụng ứng dụng này để lập chỉ mục các tệp PDF quan trọng và trích xuất câu trả lời từ tài liệu của họ một cách dễ dàng.

Chúng tôi sẽ đi qua từng bước theo thứ tự thời gian và nêu bật những thành phần nào cần thiết để xây dựng ứng dụng.

Cách tạo một trình xếp hạng văn bản mạnh mẽ bằng Redis 2. Bạn sẽ cần gì?
  • Tìm kiếm lại : chỉ mục, truy vấn và công cụ tìm kiếm toàn văn bản
  • RedisAI : thực hiện các mô hình học máy / học sâu để quản lý dữ liệu và giảm độ trễ
  • Luồng Redis : quản lý mức tiêu thụ dữ liệu
  • NodeJS : được sử dụng như một mã nguồn mở, đa nền tảng thực thi mã JavaScript bên ngoài trình duyệt web
  • RedisJSON : triển khai ECMA-404 Tiêu chuẩn trao đổi dữ liệu JSON làm kiểu dữ liệu gốc.

3. Kiến trúc

Việc cung cấp câu trả lời cho truy vấn của người tìm kiếm được thực hiện theo hai bước:

  1. Đầu tiên, bạn chọn văn bản có khả năng chứa các câu trả lời. Bạn sẽ phải sử dụng RediSearch với chức năng xếp hạng BM25 cho bước này.
  2. Bạn có thể sử dụng mô hình AI của Transformer được tải vào RedisAI để xác định các nhịp câu trả lời trong văn bản.

Bằng cách sử dụng RediSearch trong bước đầu tiên, bạn sẽ giảm đáng kể không gian tìm kiếm. Điều này sẽ giúp trải nghiệm tổng thể của ứng dụng nhanh hơn. Sau đó, bạn sẽ cần sử dụng NodeJS với typecript trong phần phụ trợ và React với typecript trong giao diện người dùng.

Bên cạnh việc sử dụng RedisAI và RediSearch, bạn sẽ tận dụng RedisJSON cho mô hình người dùng của mình cũng như một nhân viên không đồng bộ được triển khai với Redis Streams.

Máy chủ web được hiển thị với khung express có các điểm cuối sau:

Sau khi đăng ký và đăng nhập vào ứng dụng, bạn sẽ có thể bắt đầu thêm tài liệu vào thư viện đã lập chỉ mục. Khi một tệp PDF được tải lên, một sự kiện sẽ được ghi vào Redis Streams. Sau đó, một người nào đó từ nhóm người tiêu dùng sẽ nhận sự kiện để xử lý không đồng bộ.

Sau đó, bạn có thể xử lý PDF, áp dụng một số thao tác làm sạch và lưu trữ PDF trong hàm băm Redis được lập chỉ mục với RediSearch. Giờ đây, bạn sẽ có thể gửi các truy vấn tự nhiên đến máy chủ và sẽ không bị giới hạn trong các tìm kiếm từ khóa cơ bản như ‘triển khai kubernetes’, ‘tổng hợp gốc DDD’, v.v.

Thay vào đó, bạn sẽ có thể truy vấn các tìm kiếm có liên quan hơn.

Lưu đồ

Dưới đây là tổng quan chung về cách Alexis hoạt động.

>

Bây giờ, hãy phân tích cách Tải lên tệp PDF và lập chỉ mục nội dung PDF Câu trả lời truy vấn các phần của lưu đồ hoạt động.

Câu hỏi Trả lời

Cách tạo một trình xếp hạng văn bản mạnh mẽ bằng Redis Người dùng nhập câu hỏi vào công cụ tìm kiếm.
  • RediSearch lập chỉ mục (các) PDF và tìm kiếm câu trả lời cho truy vấn này.
  • RedisAI chạy một suy luận và đưa ra một số câu trả lời khả thi.
  • Sau đó, RedisAI so sánh từng câu trả lời và quyết định câu trả lời nào phù hợp nhất với truy vấn.
  • Câu trả lời cuối cùng cũng được hiển thị cho người dùng.
  • 4. Bắt đầu

    Bước 1:Cài đặt các điều kiện tiên quyết

    • Node - v12.x.x
    • NPM - v6.x.x
    • Docker and Docker-compose

    Bước 2. Sao chép kho lưu trữ

    Bước 3:Cài đặt phần phụ thuộc

    Thay đổi thư mục thành alexis và chạy lệnh dưới đây:

    npm install

    Bước 4. Thiết lập giao diện người dùng và phụ trợ

    Lệnh dưới đây sẽ khởi động máy chủ và ứng dụng khách, đồng thời nó sẽ khởi tạo máy chủ Redis cũng như RedisInsight GUI:

    npm run bootstrap

    Bước 5. Khởi động ứng dụng

    npm start

    Bước 6. Truy cập ứng dụng

    Mở https:// localhost:3000 để truy cập ứng dụng

    Bước 7. Truy cập RedisInsight

    RedisInsight là một công cụ trực quan cho phép bạn thực hiện cả tương tác dựa trên GUI và CLI với cơ sở dữ liệu Redis của bạn và hơn thế nữa khi phát triển ứng dụng dựa trên Redis của bạn. Đây là một ứng dụng GUI thuần túy dành cho máy tính để bàn có đầy đủ tính năng cung cấp khả năng thiết kế, phát triển và tối ưu hóa ứng dụng Redis của bạn. Nhấp vào đây để tìm hiểu thêm về RedisInsight

    RedisInsight GUI có thể truy cập qua liên kết sau:https:// localhost:8001

    5. Cách dữ liệu được lưu trữ

    Bước 1: Dữ liệu người dùng được lưu trữ trong RedisJSON

    Bước 2: Chỉ mục RediSearch được tạo cho mỗi người dùng với mã bên dưới

    Bước 3: Sau khi người dùng tải tệp PDF lên, chúng tôi cập nhật mảng pdf của họ bằng RedisJSON

    Bước 4: Việc tải tệp lên cũng kích hoạt một sự kiện đang được ghi vào ax:stream:pdf-processing dòng. Tải trọng của luồng là:

    Bước 5: Người tiêu dùng trong một nhóm người tiêu dùng chọn sự kiện từ luồng và xử lý tệp, đồng thời viết nội dung dưới dạng băm.

    6. Cách dữ liệu được truy cập

    Trong ứng dụng này, có một chỉ mục Tìm kiếm đỏ cho mỗi người dùng lập chỉ mục hàm băm ở trên. Điều này cung cấp khả năng tra cứu để đối sánh nội dung có liên quan với truy vấn của người dùng. Nội dung được phân tích với đoạn mã dưới đây:

    Nội dung được RediSearch truy xuất sau đó được chuyển đến RedisAI để phân tích.

    7. Cách hoạt động

    Tạo tài khoản

    Khi bạn mở ứng dụng Alexis, bạn sẽ được dẫn đến cổng để bạn đăng nhập (xem hình ảnh bên dưới). Nếu bạn chưa có tài khoản, bạn sẽ có cơ hội tạo một tài khoản mới từ siêu liên kết ở dưới cùng.

    Cách tạo một trình xếp hạng văn bản mạnh mẽ bằng Redis Sau khi tải lên một tài liệu, bạn sẽ nhận được xác nhận về bộ nhớ của tài liệu đó thông qua việc hiển thị tiêu đề của tài liệu đó ở bên trái màn hình (xem bên dưới).

    Cách tạo một trình xếp hạng văn bản mạnh mẽ bằng Redis Khi điều này xảy ra, tệp PDF được tải lên máy chủ và cũng được làm sạch ở chế độ nền. Quá trình này hiệu quả do các khả năng nâng cao của Redis.

    Thực hiện truy vấn của bạn

    Cách tạo một trình xếp hạng văn bản mạnh mẽ bằng Redis Kết luận:giúp tìm kiếm dễ dàng với Redis

    Khi nó hoàn thành, mọi người đều mong đợi các truy vấn tìm kiếm sẽ được thực hiện ngay lập tức mà không có bất kỳ sự chậm trễ nào. Xét cho cùng, đây là thời đại kỹ thuật số và mọi sự chậm trễ sẽ chỉ đẩy người dùng ra xa và hướng tới thứ gì đó tối ưu hơn.

    Bằng cách sử dụng Redis, Alexis đã được cung cấp năng lượng để hoạt động ở tiêu chuẩn cao cấp. Việc thu thập nội dung có ý nghĩa nhất trên các địa điểm khác nhau rất nhanh chóng và hiệu quả nhờ RediSearch. Và các khả năng siêu nâng cao của RedisAI đã có thể sàng lọc nội dung này và cung cấp cho người dùng câu trả lời phù hợp và chính xác nhất cho truy vấn của họ.

    Nếu bạn muốn khám phá thêm về cách ứng dụng này được tạo ra thì bạn nên xem video trên YouTube của Bobby. Chúng tôi cũng có rất nhiều ứng dụng để bạn lấy cảm hứng trên Redis Launchpad.

    Từ việc tạo ra các hệ thống theo dõi xe buýt thời gian thực ở Helsinki đến việc bảo vệ các công ty bảo hiểm cây trồng ở các quốc gia đang phát triển, các lập trình viên từ khắp nơi trên thế giới đang khai thác những điều kỳ diệu của Redis để tạo ra sự khác biệt trong cuộc sống hàng ngày. Và bạn cũng có thể!

    Cách tạo một trình xếp hạng văn bản mạnh mẽ bằng Redis

    Bobby là một kỹ sư lập trình năng động, người đã có hơn mười hai năm kinh nghiệm thiết kế và triển khai các hệ thống cho khách hàng.

    Hãy nhớ xem trang GitHub của anh ấy để cập nhật tất cả các dự án mà anh ấy đã tham gia.