
QDRANTは、ベクトル間の類似性を見つけることを専門とする検索エンジンとデータベースです。追加情報とともにベクターを保存、検索、管理できるAPIがあります。 QDRANTは、高度なフィルタリング機能をサポートするように設計されており、ニューラルネットワークマッチング、ファセット検索、その他のアプリケーションなどのタスクに役立ちます。
QDrantはRustプログラミング言語を使用して構築されます。これにより、大量のデータを処理する場合でも、高速で信頼性の高いパフォーマンスが保証されます。 QDRANTを使用して、埋め込みまたはニューラルネットワークエンコーダーを、マッチング、検索、推奨などのタスクの強力なアプリケーションに変換できます。特に、ベクターデータベース(特にQDRANT)では、最新のLLMと組み合わせてベクターストアとして使用することで人気が高まっています。この良い例については、ChatGPT検索プラグインを参照してください。
このリポジトリには、ピアツーピア(P2P)通信と発見を備えたFly.io組織のプライベートネットワークで、非常に利用可能な(HA)QDRANTクラスターを実行するために必要なすべてのファイルと構成が含まれています。
希望する地域で新しいフライアプリケーションを作成することから始めます。このリポジトリのフォークまたはクローン内で次のコマンドを実行します。ただし、最初に、 fly.tomlファイルにプライマリ領域(およびアプリ名)を必ず設定してください。
FLY CLIを使用して、次のことを実行します。
fly launch --no-public-ips --from https://github.com/kylemclaren/qdrant-on-fly
このコマンドは、1つの実行機と添付のボリュームを備えた新しいフライアプリケーションを作成します。プロンプトが表示されたら、 yesを選択して、既存の構成を新しく生成されたアプリにコピーします。 PostgreSQLデータベースまたはUpStash Redisインスタンスを作成しないでください。
最初のマシンをクローニングしてクラスターを展開します。現在、 fly scale count保存型の容量を持つスケーリングマシンをサポートしていません。 「フライマシンクローン」を使用してクラスターを拡大します。
fly machine clone --region ord --selectfly statusそこにマシンをクローン化することにより、セットアップを別の領域にスケーリングします。これで、 ordには2人のピアとjnbに別のピアが必要です。
fly machine clone --region jnb --selectfly status同じ組織内のフライアプリケーションは、次のURIを使用してQDRANTデータベースに接続できます。
http:// < fly-app-name > .flycast:6333まず、プライベートフライキャストIPアドレスをアプリに割り当てる必要があります。次のコマンドを実行することでこれを行うことができます。
fly ips allocate-v6 --private Flyプライベートネットワークの外でアプリを公開できるようにする必要がある場合は、パブリックIPをFlyアプリに割り当て、Flyプロキシを使用して通常どおり接続することができます(つまりhttps://<fly-app-name>.fly.dev )
警告これを行う場合は、必ず
QDRANT__SERVICE__API_KEYSecretを設定してください。
fly proxyを使用して、サーバーポートをローカルシステムに転送します。 fly proxy 6333:6333 -a < fly-app-name >curlなど)を使用して、転送されたポートのQDRANTインスタンスに接続します。ベクトルデータを保存するボリュームを安全に処理する方法の詳細については、ボリュームに関するフライドキュメントを参照してください。 curl -H " Content-Type: application/json " http://localhost:6333/cluster | jq{
"result" : {
"status" : " enabled " ,
"peer_id" : 8961156852769025 ,
"peers" : {
"8961156852769025" : {
"uri" : " http://e286376be66286.vm.qdrant-6pn.internal:6335/ "
},
"6238012613461344" : {
"uri" : " http://568370dc75418e.vm.qdrant-6pn.internal:6335/ "
},
"2504460418660966" : {
"uri" : " http://148e722b75d789.vm.qdrant-6pn.internal:6335/ "
}
},
"raft_info" : {
"term" : 1314 ,
"commit" : 3510 ,
"pending_operations" : 0 ,
"leader" : 8961156852769025 ,
"role" : " Leader " ,
"is_voter" : true
},
"consensus_thread_status" : {
"consensus_thread_status" : " working " ,
"last_update" : " 2023-06-20T22:23:48.543413978Z "
},
"message_send_failures" : {}
},
"status" : " ok " ,
"time" : 4.125e-05
}http:// localhost:6333/dashboardにアクセスして、新しいqdrant dashbaordを表示し、そこでデータと対話します。
デフォルトでは、QDRANTデータとスナップショットは/data/qdrant/に保存されます。デフォルトのストレージの場所を変更する必要がある場合は、 QDRANT__STORAGE__SNAPSHOTS_PATHとQDRANT__STORAGE__STORAGE_PATH変数をfly.tomlの変数を調整できます。
wip
これは良い考えですか?
おそらく¯_(ツ)_/¯ではありません
困難に直面している場合、またはクエリがある場合は、ここで問題を作成してください。
問題fly secrets set QDRANT__DEBUG=true QDRANT__LOG_LEVEL=DEBUG提出する前にデバッグロギングを有効にすることをお勧めします。
または、こちらのコミュニティページで質問することもできます。
プロジェクトに貢献したい場合は、フォークして、お気軽にプルリクエストを送信してください。