ClickHouse pour la recherche vectorielle !
- Utiliser les fonctionnalités de filtrage et de recherche en texte intégral de ClickHouse pour affiner votre jeu de données avant d’effectuer une recherche.
- Effectuer des analyses sur vos jeux de données.
- Exécuter un
JOINavec vos données existantes. - Pas besoin de gérer une base de données supplémentaire ni de complexifier votre infrastructure.
1
Créer des embeddings
Vos données (documents, images ou données structurées) doivent être converties en embeddings. Nous vous recommandons de créer des embeddings à l’aide de l’API OpenAI Embeddings ou de la bibliothèque Python open-source SentenceTransformers.Vous pouvez considérer un embedding comme un grand tableau de nombres à virgule flottante qui représente vos données. Consultez ce guide d’OpenAI pour en savoir plus sur les embeddings.
2
Stocker les embeddings
Une fois que vous avez généré des embeddings, vous devez les stocker dans ClickHouse. Chaque embedding doit être stocké dans une ligne distincte et peut inclure des métadonnées pour le filtrage, les agrégations ou l’analyse. Voici un exemple de table pouvant stocker des images avec des légendes :
3
Rechercher des embeddings associés
Supposons que vous souhaitiez rechercher des images de chiens dans votre jeu de données. Vous pouvez utiliser une fonction de distance comme Cette requête renvoie les valeurs de
cosineDistance pour utiliser l’embedding d’une image de chien et rechercher des images similaires :_file et caption des 10 images les plus susceptibles d’être liées à l’image de chien que vous avez fournie.