
QDrant est un moteur de recherche et une base de données spécialisée dans la recherche de similitudes entre les vecteurs. Il dispose d'une API qui vous permet de stocker, de rechercher et de gérer des vecteurs ainsi que des informations supplémentaires. QDrant est conçu pour prendre en charge les capacités de filtrage avancées, ce qui le rend utile pour des tâches telles que la correspondance du réseau neuronal, la recherche à facettes et d'autres applications.
QDrant est construit en utilisant le langage de programmation Rust, qui garantit des performances rapides et fiables même si elle traite d'une grande quantité de données. Vous pouvez utiliser QDRANT pour transformer des intégres ou des encodeurs de réseau neuronal en applications puissantes pour des tâches telles que la correspondance, la recherche, la recommandation, etc. Notamment, les bases de données vectorielles (QDRANT en particulier) ont connu une vague de popularité pour leur utilisation en tant que magasin vectoriel en combinaison avec les LLM modernes. Voir le plugin de récupération de ChatGpt pour un bon exemple de cela.
Ce référentiel contient tous les fichiers et la configuration nécessaires pour exécuter un cluster QDRANT hautement disponible (HA) sur le réseau privé de l'organisation Fly.io avec une communication et une découverte de pair-to-peer (P2P).
Commencez par créer une nouvelle application de mouche dans votre région préférée. Exécutez les commandes suivantes dans votre fourche ou clone de ce référentiel. Mais d'abord, assurez-vous de définir votre région principale (et le nom de l'application) dans le fichier fly.toml .
En utilisant la CLI Fly, exécutez ce qui suit:
fly launch --no-public-ips --from https://github.com/kylemclaren/qdrant-on-fly
Cette commande crée une nouvelle application de mouche avec une machine à exécuter et un volume ci-joint. Lorsque vous êtes invité, sélectionnez yes pour copier la configuration existante sur l'application nouvellement générée. Ne créez pas de base de données PostgreSQL ou d'instance redis Upstash.
Développez le cluster en clonant la première machine. Actuellement, fly scale count ne prend pas en charge les machines d'échelle avec des volumes de stockage persistants. Nous utiliserons «Fly Machine Clone» pour faire évoluer notre cluster.
fly machine clone --region ord --selectfly status Échelle la configuration dans une autre région en clonant une machine là-bas. Maintenant, vous devriez avoir deux pairs dans ord et un autre dans jnb .
fly machine clone --region jnb --selectfly statusLes applications de mouches au sein de la même organisation peuvent se connecter à votre base de données QDRANT en utilisant l'URI suivant:
http:// < fly-app-name > .flycast:6333Tout d'abord, vous devrez allouer une adresse IP Private Flycast à votre application. Vous pouvez le faire en exécutant la commande suivante:
fly ips allocate-v6 --private Si vous avez besoin que votre application soit accessible au public en dehors du réseau privé Fly, vous pouvez simplement allouer une IP publique à l'application Fly et commencer à utiliser le proxy Fly pour vous connecter comme normal (c'est-à-dire https://<fly-app-name>.fly.dev )
AVERTISSEMENT Si vous faites cela, assurez-vous de définir le secret
QDRANT__SERVICE__API_KEY.
fly proxy : fly proxy 6333:6333 -a < fly-app-name >curl ) pour vous connecter à votre instance QDRANT sur le port transmis. Reportez-vous à la documentation de la mouche sur les volumes pour plus de détails sur la façon de gérer en toute sécurité les volumes qui stockent vos données vectorielles. 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
}Rendez-vous sur http: // localhost: 6333 / tableau de bord pour voir le nouveau Qdrant dashbaord et interagir avec vos données là-bas.
Par défaut, les données et les instantanés QDRANT sont stockés dans /data/qdrant/ . Si vous devez modifier l'emplacement de stockage par défaut, vous pouvez ajuster les variables QDRANT__STORAGE__SNAPSHOTS_PATH et QDRANT__STORAGE__STORAGE_PATH dans la mouche.toml
Vider
Est-ce une bonne idée?
Probablement pas ¯_(ツ)_/¯
Si vous rencontrez des difficultés ou si vous avez des questions, n'hésitez pas à créer un problème ici.
Il est recommandé de permettre la journalisation de débogage avant de déposer une question: fly secrets set QDRANT__DEBUG=true QDRANT__LOG_LEVEL=DEBUG
Alternativement, vous pouvez poser des questions sur la page de la communauté ici.
Si vous cherchez à contribuer au projet, le fourre-le et n'hésitez pas à envoyer des demandes de traction.