NodeJS, Redis 및 Docker를 사용하여 강력한 텍스트 Ranker 작성 방법

6331 단어
대다수의 사람들이 집을 떠나기 어려워 스마트폰이 없는 세계에서 생활하는 것은 구글이 영원히 우리와 멀리 떨어지지 않을 것이라는 것을 의미한다.한순간에 우리는 구글 검색엔진의 검색어를 통해 거의 모든 문제의 답을 찾을 수 있다.
검색엔진(그리고 무한한 정보에 대한 접근)이 일상생활에 융합되어 우리 중 많은 사람들이 믿을 수 없이 그들에게 의존하게 되었다.최상의 효과를 얻기 위해서는 구글과 다른 과학 기술 거두들이 설정한 높은 기준 때문에 즉각 검색한 답안이 필요하다.
모든 지연, 지연, 드래그는 사용자의 체험을 방해할 수 있다. 이것이 바로 이 Launchpad 응용 프로그램 알렉시스가 Redis를 주요 데이터베이스로 사용해서 이 장애를 극복하는 이유이다.
이 앱의 창시자인 Bobby Donchev는 RedisAI와 Rediseach의 강력한 기능을 활용해 구문 라이브러리에서 정보를 검색해 질의에 가장 효율적으로 응답한다.PDF의 인덱스를 작성하고 간단한 UI를 사용하여 문서에서 정보를 추출할 수 있습니다.
Redis가 없으면 전체 검색 프로세스가 매우 느려져 Alexis의 기능을 방해합니다.Bobby가 이 프로그램을 어떻게 조합했는지 보여 줍니다.
그러나 계속하기 전에, 우리가 강조하고자 하는 것은, 우리가 당신에게 Redis Launchpad에서 볼 수 있는 일련의 훌륭한 응용 프로그램이 있다는 것입니다.그러니까 꼭 가봐야 돼!
  • 당신은 무엇을 지을 겁니까?
  • 뭘 드시겠어요?
  • 건물
  • 시작하기
  • 데이터 저장 방식
  • 데이터 액세스 방법
  • 작동 원리
  • 1. 당신은 무엇을 지을 것입니까?


    검색 쿼리를 최대 속도로 검색할 수 있는 효율적인 텍스트 검색기를 구축할 것입니다.이 응용 프로그램을 사용하여 중요한 PDF의 인덱스를 작성하고 문서에서 답변을 쉽게 추출할 수 있습니다.
    우리는 시간순으로 모든 절차를 완성하고 응용 프로그램 구축에 어떤 구성 요소가 필요한지 강조할 것이다.


    2.당신은 무엇이 필요합니까?


  • RediSearch: 인덱스, 쿼리 및 전체 텍스트 검색엔진

  • RedisAI: 딥러닝/머신러닝 모델을 실행하여 데이터를 관리하고 지연 시간을 줄임

  • Redis Streams: 데이터 소모 관리

  • NodeJS: 소스 오픈, 크로스 플랫폼으로 웹 브라우저 외부에서 JavaScript 코드를 실행

  • RedisJSON: JSON 데이터 교환 표준 ECMA-404를 본 기기의 데이터 형식으로 실현한다.
  • 3. 건축


    검색자의 질의에 대한 해답은 다음 두 단계로 나뉘어 제공됩니다.
  • 우선 답안을 포함할 수 있는 텍스트를 선택합니다.이 단계에서는 BM25 랭킹 기능이 있는 재검색을 사용해야 합니다.
  • Redis AI에 로드된 Transformer AI 모델을 사용하여 텍스트의 답안 범위를 식별할 수 있습니다.
  • 첫 번째 단계에서 RedSearch를 사용하면 검색 공간을 크게 줄일 수 있습니다.이것은 응용 프로그램의 전체적인 체험을 더욱 빠르게 할 것이다.이후, NodeJS를 typescript와 함께 백엔드에서 사용하고, 전방에서 typescript를 사용하여 응답해야 합니다.
    RedisAI와 RediSearch 외에도 사용자 모델과 Redis Streams로 구현된 비동기식 작업 프로그램에 RedisJSON을 사용할 수 있습니다.
    웹 서버는 다음 엔드포인트가 있는 express 프레임워크를 통해 공개됩니다.
    POST /v1/users
    POST /v1/login
    POST /v1/logout
    GET /v1/me
    
    POST /pdf  (pdfUpload)
    POST /v1/query
    
    프로그램에 등록하고 로그인하면 색인 라이브러리에 문서를 추가할 수 있습니다.PDF를 업로드하면 이벤트가 Redis Streams에 기록됩니다.이후 소비자팀의 한 사람이 접수 사건을 비동기적으로 처리한다.
    그런 다음 PDF를 처리하고 정리를 적용한 다음 PDF를 Redis 해싱에 저장하고 해싱을 사용하여 인덱스를 작성할 수 있습니다.현재, 서버에 자연 검색을 보낼 수 있으며, 'kubernetes 배치', 'DDD 루트 집합' 등 기본적인 키워드 검색에만 국한되지 않습니다.
    반대로, 더 많은 관련 검색을 조회할 수 있습니다.

    흐름도


    다음은 Alexis가 어떻게 작동하는지에 대한 개요입니다.

    이제 PDF와 색인 PDF 내용을 올리고 흐름도에 대한 답안 조회 부분을 분석해 봅시다.

    질문에 대답하다


  • 사용자가 사용자 인터페이스에 검색어를 입력하여 다시 검색
  • 에 보내기
  • 그런 다음 키워드를 사용하여 재검색 및 BM25 기능을 활성화하여 가장 의미 있는 컨텐츠를 찾습니다.
  • 그리고 이 내용은 검색과 함께 RedisAI로 전송되어 사용자의 검색과 가장 관련된 답을 비교하고 확인할 수 있습니다.
  • PDF 및 색인 PDF 컨텐트 업로드


  • 사용자가 검색엔진에 문제를 입력한다.
  • 색인 PDF를 다시 검색하고 이 질의에 대한 답을 검색합니다.
  • RedisAI는 추리를 하여 많은 가능한 답을 얻었다.
  • RedisAI는 그 다음에 각 답안을 비교하고 어떤 답안이 조회와 가장 관련이 있는지 결정한다.
  • 답안은 최종적으로 사용자에게 표시됩니다.
  • 4. 시작


    1단계: 설치 필수조건

  • 노드 - v12.x、 x
  • NPM-v6.x、 x
  • Docker 및 Docker compose
  • 두 번째 단계.클론 저장소


     git clone https://github.com/redis-developer/alexis
    

    3단계: 종속성 설치


    디렉토리를 alexis로 변경하고 다음 명령을 실행합니다.
     npm install
    

    네 번째 단계.프런트엔드 및 백엔드 설정


    다음 명령은 서버와 클라이언트 응용 프로그램을 부트하고 Redis 서버와 RedisInsight GUI를 초기화합니다.
      npm run bootstrap
    

    다섯 번째.응용 프로그램 시작


     npm start
    

    여섯 번째.어플리케이션 액세스


    어플리케이션에 액세스하기 위해 열기http://localhost:3000

    일곱 번째.RedisInsight 액세스


    RedisInsight는 Redis 데이터베이스와 GUI 및 CLI 기반 상호 작용을 수행하고 Redis 기반 애플리케이션을 개발할 때 더 많은 작업을 수행할 수 있는 시각적 도구입니다.Redis 애플리케이션을 설계, 개발 및 최적화하는 기능을 제공하는 일반 데스크탑 GUI 클라이언트입니다.RedisInsight에 대한 자세한 내용을 보려면 여기를 클릭하십시오.
    RedisInsight GUI는 다음 링크를 통해 액세스할 수 있습니다http://localhost:8001.

    5. 데이터 저장 방식


    1단계: 사용자 데이터가 하나의 JSON 파일에 저장됨


     {
      firstName: string
      lastName: string
      email: string
      password: string
      pdfs: Array<{id: string, fileName: string}>
     }
    

    2단계: 다음 코드를 사용하여 각 사용자에 대한 재검색 색인을 만듭니다.


     FT.CREATE ax:idx:<userId> on HASH PREFIX 1 ax:pdfs:<userId> 
     SCHEMA content TEXT PHONETIC dm:en
    
    Read the complete blog

    좋은 웹페이지 즐겨찾기