semantic search coursework
1.0.0
Javaで大学プロジェクトとして書かれたセマンティック検索エンジン
警告
このプロジェクトは絶対に生産準備ができていません。これは、大学プロジェクトとして、概念実証として開発されました。このメッセージが表示されている場合、マイクロサービスアーキテクチャに基づいたこのプロジェクトの新しいバージョンをすでに開発していることを意味します。
いくつかのvarsを定義する必要があります:
export MILVUS_HOST=localhost MILVUS_PORT=19530 MONGODB_URI=mongodb://localhost:27017/ RABBITMQ_HOST=localhost RABBITMQ_USERNAME=user RABBITMQ_PASSWORD=pass MODEL_PATH=models/model.onnx ONNX形式の埋め込みモデルが必要です。このモデルを使用しました:Cointegrated/Labse-en-Ru。変換するには、この記事のユーティリティを使用しました:ONNXへのエクスポート。また、768のベクトル寸法で任意の埋め込みモデルをONNX形式で使用することもできますmodels/model.onnxなどのモデルフォルダーにモデルを置くことができます。
プロジェクトを構築して実行します:
./gradlew runAPIはポート4567で利用可能になります
注記
このプロジェクトは、あなたが望むだけ多くのインデックス作成労働者を実行することが可能であるという事実に重点を置いて書かれました。しかし、締め切りが厳しいため、最適化するのに十分な時間がなく、各インデックスワーカーはモデルをメモリにロードします。注意して実行してください!
フローチャートTD
u(user)
A(ユーザーAPI)
S(検索サービス)
I(インデックス作成サービス)
E(埋め込みモデル)
DM [(Mongo)]
DV [(Milvus)]
r [(rabbitmq)]
u-> | APIリクエスト| a
a - > |インデックス作成タスクをキューに送信します| r
r - > |タスクを受信|私
i - > |キーワードを保存| DM
i - > |より多くのインデックス作成タスクを生成| r
i - > |テキストから抽出| e
e - > |埋め込み|を保存しますDV
a - > |検索リクエスト| s
s-> |クエリから抽出| e
s-> |キーワードによるクエリ| DM
s-> |埋め込みによるクエリ| DV