Redisを使用して強力なテキストランカーを作成する方法
ほとんどの人がスマートフォンなしで家を出るのに苦労している世界に住んでいるということは、Googleが私たちからそれほど遠くないことを意味しています。 Googleの検索エンジンで検索クエリを実行すると、ほぼすべての質問に対する回答をすぐに見つけることができます。
検索エンジン(および無限の情報へのアクセス)は日常生活に統合されており、私たちの多くは検索エンジンに非常に依存しています。そして、最適なものにするためには、グーグルや他の技術大手によって設定された高い基準のために、クエリへの回答を即座に取得する必要があります。
ラグ、遅延、またはドラッグがあると、ユーザーエクスペリエンスが妨げられます。そのため、このLaunchpadアプリであるAlexisは、この障害を克服するためのメインデータベースとしてRedisを使用しています。
このアプリケーションの創設者であるBobbyDonchevは、RedisAIとRediSearchの機能を活用して、クエリに応答してコーパスから情報を最大限の効率で取得しました。ユーザーはPDFのインデックスを作成し、シンプルなUIを使用してドキュメントから情報を抽出できます。
Redisがないと、検索プロセス全体が遅くなり、Alexisの機能が妨げられます。ボビーがこのアプリケーションをどのように組み合わせたかを見てみましょう。
ただし、先に進む前に、RedisLaunchpadでチェックアウトできるさまざまなアプリケーションも用意されていることを強調したいと思います。ぜひチェックしてください!
- 何を構築しますか?
- 何が必要ですか?
- アーキテクチャ
- はじめに
- データの保存方法
- データへのアクセス方法
- 仕組み
1. 何を作成しますか?
検索クエリを最高速度で取得できる効率的なテキストランカーを構築します。ユーザーは、このアプリケーションを利用して、重要なPDFのインデックスを作成し、ドキュメントから回答を簡単に抽出できるようになります。
各ステップを時系列で実行し、アプリケーションの構築に必要なコンポーネントを強調します。
2。 何が必要ですか?- RediSearch : インデックス、クエリ、全文検索エンジン
- RedisAI : ディープラーニング/機械学習モデルを実行して、データを管理し、レイテンシを削減します
- Redisストリーム : データ消費を管理します
- NodeJS : Webブラウザの外部でJavaScriptコードを実行するオープンソースのクロスプラットフォームとして使用されます
- RedisJSON : ECMA-404JSONデータ交換標準をネイティブデータ型として実装します。
3。 アーキテクチャ
検索者の質問に対する回答の提供は、次の2つのステップで行われます。
- まず、回答が含まれている可能性が高いテキストを選択します。このステップでは、BM25ランキング機能でRediSearchを使用する必要があります。
- RedisAIにロードされたTransformerAIモデルを使用して、テキスト内の回答スパンを特定できます。
最初のステップでRediSearchを使用することにより、検索スペースを大幅に削減できます。これにより、アプリの全体的なエクスペリエンスが速くなります。この後、バックエンドでtypescriptを使用してNodeJSを使用し、フロントエンドでtypescriptを使用してReactを使用する必要があります。
RedisAIとRediSearchを使用することに加えて、ユーザーモデルとRedisStreamsで実装された非同期ワーカーにRedisJSONを活用します。
Webサーバーは、次のエンドポイントを持つExpressフレームワークで公開されます。
登録してアプリにログインすると、インデックス付きライブラリへのドキュメントの追加を開始できるようになります。 PDFがアップロードされると、イベントがRedisStreamsに書き込まれます。その後、コンシューマーグループの誰かが非同期処理のためにイベントを取得します。
次に、PDFを処理し、クリーニングを適用して、RediSearchでインデックス付けされたRedisハッシュにPDFを保存できます。これで、サーバーに自然なクエリを送信できるようになり、「kubernetesデプロイメント」、「DDDルートアグリゲート」などの基本的なキーワード検索に限定されなくなります。
代わりに、より関連性の高い検索をクエリできるようになります。
フローチャート
以下は、Alexisの機能の概要です。
ユーザーはUIにクエリを入力し、それがRediSearchに送信されますPDFのアップロードとPDFコンテンツのインデックス作成
ログインすると、ポータルの別のページに移動します。ポータルを初めて使用する場合、ライブラリにドキュメントはありません。次のステップは、それらをアプリケーションにインポートすることです。ドキュメントをライブラリにインポートする
この手順を開始するには、画面中央のボックスにドキュメントをドラッグアンドドロップするか、クラウドアイコンをクリックしてドキュメントを手動でプルアップします。 これが発生すると、PDFがサーバーにアップロードされ、バックグラウンドでもクリーンアップされます。このプロセスは、Redisの高度な機能により効率的です。
クエリを実行する
結論:Redisで検索を簡単にする要約すると、誰もが検索クエリが遅延なしで瞬時に行われることを期待しています。 結局のところ、これはデジタル時代であり、遅れがあれば、ユーザーを遠ざけて、より最適なものに向かわせるだけです。
Redisを使用することで、Alexisはプレミアム標準で動作するようになりました。 RediSearchのおかげで、さまざまな場所で最も意味のあるコンテンツをすばやく効率的に収集できました。また、RedisAIの高度な機能により、このコンテンツをふるいにかけ、ユーザーにクエリに対する最も関連性の高い正確な回答を提供することができました。
このアプリケーションがどのように作成されたかについて詳しく知りたい場合は、BobbyのYouTubeビデオをチェックしてください。また、RedisLaunchpadからインスピレーションを得るためのさまざまなアプリケーションも用意しています。
ヘルシンキでのリアルタイムバス追跡システムの作成から発展途上国の作物保険会社の保護まで、世界中のプログラマーがRedisの素晴らしさを利用して、日常生活に変化をもたらしています。そして、あなたもできます!
ボビーは、クライアント向けのシステムの設計と実装に12年以上の経験を持つ動的計画法エンジニアです。
彼が関わっているすべてのプロジェクトの最新情報を入手するには、彼のGitHubページを確認してください。
-
JavaFXを使用してポリゴンを作成するにはどうすればよいですか?
ポリゴンは、同じ平面に存在するn本の線を使用して形成された閉じた図形です。 JavaFXでは、ポリゴンは javafx.scene.shape.Polygonで表されます。 クラス。 ポリゴンを作成するには、次のことを行う必要があります- このクラスをインスタンス化します。 線分の始点と終点を渡して、コンストラクターに引数として渡すか、getPoints()メソッドを-として使用して、ポリゴンをクラスに描画します。 polygon.getPoints().addAll(new Double[]{ List of XY coordinates separated by comm
-
Mac でテキスト ファイルを作成する方法
最近、Windows オペレーティング システムから macOS に切り替えましたか?はいの場合は、このガイドが役立つことがわかります。 Mac を他の Windows コンピュータと区別する多くの機能があります。 Mac は Windows システムよりも使いやすく、安定しています。ただし、macOS に切り替えると完全に異なることが 1 つあります。つまり、Mac でテキスト ファイルを作成するプロセスです。今日は、Mac で新しいファイルを作成する方法を説明します。 Mac で新しいテキスト ファイルを作成する方法 Windows PC で作業している場合は、いくつかの簡単な手順