Twelve Labs and Zilliz Cloud Integration
Twelve Labs and Zilliz Cloud integrate to power advanced semantic video search and analysis, combining Twelve Labs' multimodal video AI models with Zilliz Cloud's scalable vector database for efficient storage, indexing, and retrieval of video content across speech, text, audio, and visual modalities.
Utiliser cette intégration gratuitementQu’est-ce que Twelve Labs
Twelve Labs développe des modèles fondamentaux vidéo qui rendent des pétaoctets de contenu vidéo interrogeables à l’aide du langage naturel. Leur technologie effectue des recherches précises et tenant compte du contexte dans la parole, le texte, l’audio et les visuels afin de localiser des moments spécifiques au sein de vastes bibliothèques vidéo. L’entreprise vise à construire une infrastructure pour la compréhension vidéo multimodale en faisant correspondre le langage naturel aux éléments vidéo, notamment les actions, les objets et les sons d’arrière-plan, permettant des applications de recherche vidéo sémantique, de classification de scènes, d’extraction de sujets et de résumé automatique.
En s’intégrant à Zilliz Cloud (Milvus entièrement géré), les embeddings vidéo multimodaux de Twelve Labs peuvent être stockés, indexés et recherchés à grande échelle via une base de données vectorielle entièrement gérée, permettant aux développeurs de créer de puissantes applications de recherche vidéo qui traitent, indexent et récupèrent du contenu vidéo avec une grande précision et rapidité pour des cas d’utilisation tels que la modération de contenu, l’analyse des médias, la génération de temps forts et l’insertion publicitaire.
Avantages de l’intégration Twelve Labs + Zilliz Cloud
- Compréhension vidéo multimodale : l’API Embed de Twelve Labs génère des embeddings qui capturent simultanément la parole, le texte, l’audio et les éléments visuels, tandis que Zilliz Cloud stocke et indexe ces riches vecteurs multimodaux pour une recherche vidéo complète.
- Analyse vidéo temporelle : les embeddings vidéo incluent des métadonnées de plage temporelle (décalages de début et de fin), permettant aux utilisateurs de trouver des moments précis dans les vidéos — et pas seulement des clips entiers — grâce à la récupération efficace de Zilliz Cloud.
- Infrastructure de recherche vidéo évolutive : la base de données vectorielle haute performance de Zilliz Cloud gère des collections d’embeddings vidéo à grande échelle, permettant une recherche rapide par similarité même sur des pétaoctets de contenu vidéo.
- Requêtes vidéo en langage naturel : les utilisateurs peuvent rechercher du contenu vidéo à l’aide de requêtes textuelles en langage naturel, Twelve Labs générant les embeddings de requête et Zilliz Cloud effectuant la recherche par similarité afin de trouver les segments vidéo les plus pertinents.
Fonctionnement de l’intégration
Twelve Labs sert de couche d’IA vidéo, générant des embeddings multimodaux à partir de contenu vidéo à l’aide de son API Embed et du moteur Marengo-retrieval-2.6. Il traite les URL vidéo, extrait des caractéristiques dans les modalités de la parole, du texte, de l’audio et du visuel, et produit des vecteurs d’embedding à 1024 dimensions avec des métadonnées temporelles pour chaque segment vidéo.
Zilliz Cloud sert de couche de base de données vectorielle, stockant et indexant les embeddings vidéo générés par Twelve Labs. Il fournit une recherche de similarité haute performance avec une faible latence, permettant une récupération rapide des segments vidéo les plus pertinents en fonction des vecteurs de requête.
Ensemble, Twelve Labs et Zilliz Cloud créent une solution complète de recherche vidéo sémantique : les vidéos sont traitées par l’API Embed de Twelve Labs afin de générer des embeddings multimodaux, qui sont stockés dans Zilliz Cloud avec des métadonnées incluant les plages temporelles et les URL vidéo. Lorsqu’un utilisateur soumet une requête de recherche, Twelve Labs génère un embedding de requête, et Zilliz Cloud effectue une recherche de similarité pour trouver les moments vidéo les plus pertinents — permettant la découverte de contenu, les systèmes de recommandation et l’analyse vidéo avancée.
Guide étape par étape
1. Configurer l’environnement de développement
Créez un nouveau répertoire de projet et installez les packages requis :
mkdir video-search-tutorial cd video-search-tutorial python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate` pip install twelvelabs pymilvusConfigurez votre clé API Twelve Labs comme variable d’environnement :
export TWELVE_LABS_API_KEY='your_api_key_here'2. Se connecter à Milvus et créer une collection
Initialisez le client Milvus et créez une collection pour les embeddings vidéo :
from pymilvus import MilvusClient milvus_client = MilvusClient("milvus_twelvelabs_demo.db") collection_name = "twelvelabs_demo_collection" if milvus_client.has_collection(collection_name=collection_name): milvus_client.drop_collection(collection_name=collection_name) milvus_client.create_collection( collection_name=collection_name, dimension=1024 # The dimension of the Twelve Labs embeddings )3. Générer des embeddings avec l’API Twelve Labs Embed
Utilisez le SDK Python Twelve Labs pour générer des embeddings pour les vidéos :
from twelvelabs import TwelveLabs from twelvelabs.models.embed import EmbeddingsTask import os TWELVE_LABS_API_KEY = os.getenv('TWELVE_LABS_API_KEY') twelvelabs_client = TwelveLabs(api_key=TWELVE_LABS_API_KEY) def generate_embedding(video_url): task = twelvelabs_client.embed.task.create( engine_name="Marengo-retrieval-2.6", video_url=video_url ) print(f"Created task: id={task.id} engine_name={task.engine_name} status={task.status}") def on_task_update(task: EmbeddingsTask): print(f" Status={task.status}") status = task.wait_for_done( sleep_interval=2, callback=on_task_update ) print(f"Embedding done: {status}") task_result = twelvelabs_client.embed.task.retrieve(task.id) embeddings = [] for v in task_result.video_embeddings: embeddings.append({ 'embedding': v.embedding.float, 'start_offset_sec': v.start_offset_sec, 'end_offset_sec': v.end_offset_sec, 'embedding_scope': v.embedding_scope }) return embeddings, task_result4. Insérer les embeddings dans Milvus
Stockez les embeddings vidéo avec les métadonnées dans la collection Milvus :
def insert_embeddings(milvus_client, collection_name, task_result, video_url): data = [] for i, v in enumerate(task_result.video_embeddings): data.append({ "id": i, "vector": v.embedding.float, "embedding_scope": v.embedding_scope, "start_offset_sec": v.start_offset_sec, "end_offset_sec": v.end_offset_sec, "video_url": video_url }) insert_result = milvus_client.insert(collection_name=collection_name, data=data) print(f"Inserted {len(data)} embeddings into Milvus") return insert_result video_url = "https://example.com/your-video.mp4" embeddings, task_result = generate_embedding(video_url) insert_result = insert_embeddings(milvus_client, collection_name, task_result, video_url)5. Effectuer une recherche de similarité
Recherchez des segments vidéo similaires à l’aide d’un vecteur de requête :
def perform_similarity_search(milvus_client, collection_name, query_vector, limit=5): search_results = milvus_client.search( collection_name=collection_name, data=[query_vector], limit=limit, output_fields=["embedding_scope", "start_offset_sec", "end_offset_sec", "video_url"] ) return search_results query_vector = task_result.video_embeddings[0].embedding.float search_results = perform_similarity_search(milvus_client, collection_name, query_vector) print("Search Results:") for i, result in enumerate(search_results[0]): print(f"Result {i+1}:") print(f" Video URL: {result['entity']['video_url']}") print(f" Time Range: {result['entity']['start_offset_sec']} - {result['entity']['end_offset_sec']} seconds") print(f" Similarity Score: {result['distance']}")En savoir plus
- Recherche vidéo avancée : exploiter Twelve Labs et Milvus pour la récupération sémantique — Tutoriel officiel de Milvus pour la recherche vidéo avec Twelve Labs
- Twelve Labs et Milvus pour la récupération sémantique — Blog de Zilliz sur la recherche vidéo avancée
- Documentation de l’API Embed de Twelve Labs — Documentation officielle de Twelve Labs sur les embeddings
- Embeddings multimodaux de Twelve Labs — Blog de Twelve Labs sur les embeddings multimodaux
- Introduction à Milvus — Introduction à la base de données vectorielle Milvus


