商品

TwelveLabs Embed API ベータ

マニッシュ・マヘシュワリ

Twelve LabsはEmbed APIのオープンベータ版をリリースしました。これにより、開発者はビデオ、テキスト、画像、音声を横断するマルチモーダル埋め込みを生成できるようになります。また、Pinecone、MongoDB、Databricks、Milvus、LanceDB、ApertureDBとの統合に対応しており、同等のソリューションと比較して最大70%低いコストで利用可能です。

Twelve LabsはEmbed APIのオープンベータ版をリリースしました。これにより、開発者はビデオ、テキスト、画像、音声を横断するマルチモーダル埋め込みを生成できるようになります。また、Pinecone、MongoDB、Databricks、Milvus、LanceDB、ApertureDBとの統合に対応しており、同等のソリューションと比較して最大70%低いコストで利用可能です。

この記事の内容

No headings found on page

ニュースレターに登録する

ニュースレターに登録する

ビデオ理解に関する最新の技術進歩、チュートリアル、業界の動向をお届けします

ビデオ理解に関する最新の技術進歩、チュートリアル、業界の動向をお届けします

AIを活用してビデオを検索、分析、探索します。

2024/11/13

5 分

記事へのリンクをコピー

最先端のマルチモーダル埋め込み(マルチモーダルエンベディング)を生成できる、新しい Embed API のオープンベータ版をリリースいたしました。

主な特徴:

  • 最先端のマルチモーダルモデル Marengo 2.6を搭載。テキストからビデオの検索ベンチマーク(MSR-VTT、ActivityNet)およびテキストから画像の検索ベンチマーク(MS-COCO)において、Gemini Multimodal embeddings や Google VideoPrism を上回る性能を発揮します。

  • コスト・パフォーマンスにおいて、CLIPベースのモデルを含む他のソリューションと比較して最大70%安価です。

  • 時空間的な理解により、ビデオ内におけるオブジェクト、アクション、またはイベントを、空間(フレーム内のどこで発生するか)と時間(複数のフレームにわたっていつ発生するか)の両方で特定し、位置を検出します。

  • 簡単なベクトル保存のために、MongoDBPineconeDatabricks Mosaic AIMilvusLanceDBApertureDBと統合されています。

  • APIを使用してインデックス化されたビデオの埋め込みを取得し、Twelve Labs Playground 上でビデオ埋め込みを可視化できます。

  • APIおよびSDK(PythonNodeJS)を使用して簡単に開始できます。

Embed APIを使用して埋め込みの作成を始めるには、こちらのドキュメントおよびクイックスタート クックブックに従ってください。Embed APIの価格はこちらからご確認いただけます。

なぜマルチモーダル埋め込みなのか?

アプリケーションでは、多様なコンテンツ形式を扱う必要があることがよくあります。Twelve LabsのEmbed APIは、複数のモダリティにわたるコンテンツの埋め込みをサポートしており、ユーザーはテキスト、画像、ビデオ、およびオーディオデータの間に関連性を作成できます。

Embed APIを使用することで、開発者は以下を含むエニートゥエニー(あらゆる形式間)の検索および取得タスクを実行できます。

  • テキストからビデオ(Text-to-Video):自然言語のクエリを使用してビデオライブラリを検索します。

  • 画像からビデオ(Image-to-Video):画像に基づいて関連するビデオコンテンツを取得します。

  • テキストからオーディオ(Text-to-Audio)およびオーディオからビデオ(Audio-to-Video):オーディオデータとビデオデータを効率的にリンクして検索します。

さらに、マルチモーダル埋め込みは、以下を含む幅広いAIユースケースに使用できます。

  • 検索拡張生成(RAG)

  • ハイブリッド検索

  • モデルのトレーニング

  • 高品質なトレーニングデータの作成

  • 異常検知

以下のインタラクティブな視覚化は、Kinetics 400データセットからのビデオサンプルの埋め込みを示しています。

Twelve Labs Embed APIを使用したVideo-RAGの構築

マルチモーダル埋め込みのユースケースの1つに、ハイブリッド検索の構築があります。Twelve Labs Embed APIと一般的なベクトルデータベースを使用して、ビデオ検索拡張生成(Video-RAG)システムを構築できるようになりました。以下のブログでは、以下を使用したVideo-RAGアプリケーションの構築方法についての詳細なチュートリアルを紹介しています。

Twelve Labs Embed APIを使用したビデオ埋め込みの生成

以下の表は、Twelve Labs Embed APIを使用した埋め込みに関する詳細を示しています。

以下のコードスニペットは、Twelve Labs Embed APIを使用して埋め込みを生成する例を示しています。 

Twelve Labsのマルチモーダル埋め込みは、当社のAPIおよびSDK(PythonNodeJS)からアクセスできます。このコードスニペットではPython SDKを使用します。最初のステップは、必要なライブラリをインストールし、必要なモジュールをインポートすることです。

# Install necessary libraries and dependencies
!pip install twelvelabs
# Import required modules
import twelvelabs

上記のコードを実行すると、必要なすべてのライブラリがインストールされ、以降のステップで使用できるようになります。以下のコードスニペットは、ビデオ埋め込みを作成する方法を示しています。

from twelvelabs import TwelveLabs
from twelvelabs.models.embed import EmbeddingsTask

# Initialize the Twelve Labs client
twelvelabs_client = TwelveLabs(api_key=TL_API_KEY)

def generate_embedding(video_url):
    # Create an embedding task
    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}")

    # Define a callback function to monitor task progress
    def on_task_update(task: EmbeddingsTask):
        print(f"  Status={task.status}")

    # Wait for the task to complete
    status = task.wait_for_done(
        sleep_interval=2,
        callback=on_task_update
    )
    print(f"Embedding done: {status}")

    # Retrieve the task result
    task_result = twelvelabs_client.embed.task.retrieve(task.id)

    # Extract and return the embeddings
    embeddings = []
    for v in task_result.video_embeddings:
        embeddings.append({
            'embedding': v.values,
            'start_offset_sec': v.start_offset_sec,
            'end_offset_sec': v.end_offset_sec,
            'embedding_scope': v.embedding_scope
        })

    return embeddings, task_result

# Example usage
video_url = "https://storage.googleapis.com/ad-demos-datasets/videos/Ecommerce%20v2.5.mp4"

# Generate embeddings for the video
embeddings, task_result = generate_embedding(video_url)

print(f"Generated {len(embeddings)} embeddings for the video")
for i, emb in enumerate(embeddings):
    print(f"Embedding {i+1}:")
    print(f"  Scope: {emb['embedding_scope']}")
    print(f"  Time range: {emb['start_offset_sec']} - {emb['end_offset_sec']} seconds")
    print(f"  Embedding vector (first 5 values): {emb['embedding'][:5]}")
    print()

以下のコードスニペットは、テキストクエリが与えられたときにテキスト埋め込みを作成する方法を示しています。

def create_text_embedding(
    twelvelabs_client: TwelveLabs,
    text: str,
    engine_name: str = "Marengo-retrieval-2.6",
    verbose: bool = True
) -> dict:
    """
    Create a text embedding using Twelve Labs Embed API.
    
    Example:
        twelvelabs_client = TwelveLabs(api_key=TL_API_KEY)
        text_embedding = create_text_embedding(twelvelabs_client, "Your text here")
    """
    # Create embedding
    text_embedding = twelvelabs_client.embed.create(
        engine_name=engine_name,
        text=text
    )
    
    # Print information if verbose is True
    if verbose:
        print("Created a text embedding")
        print(f" Engine: {text_embedding.engine_name}")
        print(f" Embedding: {text_embedding.text_embedding}")
    
    return text_embedding

以下のコードスニペットは、オーディオファイルが与えられたときにオーディオ埋め込みを作成する方法を示しています。

def create_audio_embedding(
    twelvelabs_client: TwelveLabs,
    audio_file: Union[str, Path],
    engine_name: str = "Marengo-retrieval-2.6",
    verbose: bool = True
) -> dict:
    """
    Create an audio embedding using Twelve Labs Embed API.
    
    Example:
        twelvelabs_client = TwelveLabs(api_key=TL_API_KEY)
        audio_embedding = create_audio_embedding(twelvelabs_client, "path/to/audio.mp3")
    """
    # Create embedding
    audio_embedding = twelvelabs_client.embed.create(
        engine_name=engine_name,
        audio_file=audio_file,
    )
    
    # Print information if verbose is True
    if verbose:
        print("Created an audio embedding")
        print(f" Engine: {audio_embedding.engine_name}")
        
        if audio_embedding.audio_embedding.segments:
            print("Segments:")
            for i, segment in enumerate(audio_embedding.audio_embedding.segments, 1):
                print(f" Segment {i}:")
                print(f" Start Offset (sec): {segment.start_offset_sec}")
                if segment.values:
                    print(f" Values: {segment.values[:5]}... (truncated)")
    
    return audio_embedding

以下のコードスニペットは、画像ファイルが与えられたときに画像埋め込みを作成する方法を示しています。

def create_image_embedding(
    twelvelabs_client: TwelveLabs,
    image_file: Union[str, Path],
    engine_name: str = "Marengo-retrieval-2.6",
    verbose: bool = True
) -> dict:
    """
    Create an image embedding using Twelve Labs Embed API.
    
    Example:
        twelvelabs_client = TwelveLabs(api_key=TL_API_KEY)
        image_embedding = create_image_embedding(twelvelabs_client, "path/to/image.jpg")
    """
    # Create embedding
    image_embedding = twelvelabs_client.embed.create(
        engine_name=engine_name,
        image_file=image_file
    )
    
    # Print information if verbose is True
    if verbose:
        print("Created an image embedding")
        print(f" Engine: {image_embedding.engine_name}")
        print(f" Embedding: {image_embedding.image_embedding.values[:5]}... (truncated)")
    
    return image_embedding

Twelve Labs Embed API を使い始める

Twelve Labs Embeddingsは、APIおよびPlaygroundを通じて利用可能です。Embed APIをすぐに使い始めるためのリソースをいくつか紹介します。

著者

リード

Lucas Lee, Yeonhoo Park, Manish Maheshwari

コア・リサーチ、プロダクト、デザイン、エンジニアリングおよびGTM

Jeff Kim, Jenna Kang, Sean Barclay, Sunny Nguyen, Meryl Hu, Ryan Won, Esther Kim, Wade Jeong, SJ Kim, Henry Choi, Maninder Saini, James Le, Aiden Lee, Soyoung Lee, Jae Lee

最先端のマルチモーダル埋め込み(マルチモーダルエンベディング)を生成できる、新しい Embed API のオープンベータ版をリリースいたしました。

主な特徴:

  • 最先端のマルチモーダルモデル Marengo 2.6を搭載。テキストからビデオの検索ベンチマーク(MSR-VTT、ActivityNet)およびテキストから画像の検索ベンチマーク(MS-COCO)において、Gemini Multimodal embeddings や Google VideoPrism を上回る性能を発揮します。

  • コスト・パフォーマンスにおいて、CLIPベースのモデルを含む他のソリューションと比較して最大70%安価です。

  • 時空間的な理解により、ビデオ内におけるオブジェクト、アクション、またはイベントを、空間(フレーム内のどこで発生するか)と時間(複数のフレームにわたっていつ発生するか)の両方で特定し、位置を検出します。

  • 簡単なベクトル保存のために、MongoDBPineconeDatabricks Mosaic AIMilvusLanceDBApertureDBと統合されています。

  • APIを使用してインデックス化されたビデオの埋め込みを取得し、Twelve Labs Playground 上でビデオ埋め込みを可視化できます。

  • APIおよびSDK(PythonNodeJS)を使用して簡単に開始できます。

Embed APIを使用して埋め込みの作成を始めるには、こちらのドキュメントおよびクイックスタート クックブックに従ってください。Embed APIの価格はこちらからご確認いただけます。

なぜマルチモーダル埋め込みなのか?

アプリケーションでは、多様なコンテンツ形式を扱う必要があることがよくあります。Twelve LabsのEmbed APIは、複数のモダリティにわたるコンテンツの埋め込みをサポートしており、ユーザーはテキスト、画像、ビデオ、およびオーディオデータの間に関連性を作成できます。

Embed APIを使用することで、開発者は以下を含むエニートゥエニー(あらゆる形式間)の検索および取得タスクを実行できます。

  • テキストからビデオ(Text-to-Video):自然言語のクエリを使用してビデオライブラリを検索します。

  • 画像からビデオ(Image-to-Video):画像に基づいて関連するビデオコンテンツを取得します。

  • テキストからオーディオ(Text-to-Audio)およびオーディオからビデオ(Audio-to-Video):オーディオデータとビデオデータを効率的にリンクして検索します。

さらに、マルチモーダル埋め込みは、以下を含む幅広いAIユースケースに使用できます。

  • 検索拡張生成(RAG)

  • ハイブリッド検索

  • モデルのトレーニング

  • 高品質なトレーニングデータの作成

  • 異常検知

以下のインタラクティブな視覚化は、Kinetics 400データセットからのビデオサンプルの埋め込みを示しています。

Twelve Labs Embed APIを使用したVideo-RAGの構築

マルチモーダル埋め込みのユースケースの1つに、ハイブリッド検索の構築があります。Twelve Labs Embed APIと一般的なベクトルデータベースを使用して、ビデオ検索拡張生成(Video-RAG)システムを構築できるようになりました。以下のブログでは、以下を使用したVideo-RAGアプリケーションの構築方法についての詳細なチュートリアルを紹介しています。

Twelve Labs Embed APIを使用したビデオ埋め込みの生成

以下の表は、Twelve Labs Embed APIを使用した埋め込みに関する詳細を示しています。

以下のコードスニペットは、Twelve Labs Embed APIを使用して埋め込みを生成する例を示しています。 

Twelve Labsのマルチモーダル埋め込みは、当社のAPIおよびSDK(PythonNodeJS)からアクセスできます。このコードスニペットではPython SDKを使用します。最初のステップは、必要なライブラリをインストールし、必要なモジュールをインポートすることです。

# Install necessary libraries and dependencies
!pip install twelvelabs
# Import required modules
import twelvelabs

上記のコードを実行すると、必要なすべてのライブラリがインストールされ、以降のステップで使用できるようになります。以下のコードスニペットは、ビデオ埋め込みを作成する方法を示しています。

from twelvelabs import TwelveLabs
from twelvelabs.models.embed import EmbeddingsTask

# Initialize the Twelve Labs client
twelvelabs_client = TwelveLabs(api_key=TL_API_KEY)

def generate_embedding(video_url):
    # Create an embedding task
    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}")

    # Define a callback function to monitor task progress
    def on_task_update(task: EmbeddingsTask):
        print(f"  Status={task.status}")

    # Wait for the task to complete
    status = task.wait_for_done(
        sleep_interval=2,
        callback=on_task_update
    )
    print(f"Embedding done: {status}")

    # Retrieve the task result
    task_result = twelvelabs_client.embed.task.retrieve(task.id)

    # Extract and return the embeddings
    embeddings = []
    for v in task_result.video_embeddings:
        embeddings.append({
            'embedding': v.values,
            'start_offset_sec': v.start_offset_sec,
            'end_offset_sec': v.end_offset_sec,
            'embedding_scope': v.embedding_scope
        })

    return embeddings, task_result

# Example usage
video_url = "https://storage.googleapis.com/ad-demos-datasets/videos/Ecommerce%20v2.5.mp4"

# Generate embeddings for the video
embeddings, task_result = generate_embedding(video_url)

print(f"Generated {len(embeddings)} embeddings for the video")
for i, emb in enumerate(embeddings):
    print(f"Embedding {i+1}:")
    print(f"  Scope: {emb['embedding_scope']}")
    print(f"  Time range: {emb['start_offset_sec']} - {emb['end_offset_sec']} seconds")
    print(f"  Embedding vector (first 5 values): {emb['embedding'][:5]}")
    print()

以下のコードスニペットは、テキストクエリが与えられたときにテキスト埋め込みを作成する方法を示しています。

def create_text_embedding(
    twelvelabs_client: TwelveLabs,
    text: str,
    engine_name: str = "Marengo-retrieval-2.6",
    verbose: bool = True
) -> dict:
    """
    Create a text embedding using Twelve Labs Embed API.
    
    Example:
        twelvelabs_client = TwelveLabs(api_key=TL_API_KEY)
        text_embedding = create_text_embedding(twelvelabs_client, "Your text here")
    """
    # Create embedding
    text_embedding = twelvelabs_client.embed.create(
        engine_name=engine_name,
        text=text
    )
    
    # Print information if verbose is True
    if verbose:
        print("Created a text embedding")
        print(f" Engine: {text_embedding.engine_name}")
        print(f" Embedding: {text_embedding.text_embedding}")
    
    return text_embedding

以下のコードスニペットは、オーディオファイルが与えられたときにオーディオ埋め込みを作成する方法を示しています。

def create_audio_embedding(
    twelvelabs_client: TwelveLabs,
    audio_file: Union[str, Path],
    engine_name: str = "Marengo-retrieval-2.6",
    verbose: bool = True
) -> dict:
    """
    Create an audio embedding using Twelve Labs Embed API.
    
    Example:
        twelvelabs_client = TwelveLabs(api_key=TL_API_KEY)
        audio_embedding = create_audio_embedding(twelvelabs_client, "path/to/audio.mp3")
    """
    # Create embedding
    audio_embedding = twelvelabs_client.embed.create(
        engine_name=engine_name,
        audio_file=audio_file,
    )
    
    # Print information if verbose is True
    if verbose:
        print("Created an audio embedding")
        print(f" Engine: {audio_embedding.engine_name}")
        
        if audio_embedding.audio_embedding.segments:
            print("Segments:")
            for i, segment in enumerate(audio_embedding.audio_embedding.segments, 1):
                print(f" Segment {i}:")
                print(f" Start Offset (sec): {segment.start_offset_sec}")
                if segment.values:
                    print(f" Values: {segment.values[:5]}... (truncated)")
    
    return audio_embedding

以下のコードスニペットは、画像ファイルが与えられたときに画像埋め込みを作成する方法を示しています。

def create_image_embedding(
    twelvelabs_client: TwelveLabs,
    image_file: Union[str, Path],
    engine_name: str = "Marengo-retrieval-2.6",
    verbose: bool = True
) -> dict:
    """
    Create an image embedding using Twelve Labs Embed API.
    
    Example:
        twelvelabs_client = TwelveLabs(api_key=TL_API_KEY)
        image_embedding = create_image_embedding(twelvelabs_client, "path/to/image.jpg")
    """
    # Create embedding
    image_embedding = twelvelabs_client.embed.create(
        engine_name=engine_name,
        image_file=image_file
    )
    
    # Print information if verbose is True
    if verbose:
        print("Created an image embedding")
        print(f" Engine: {image_embedding.engine_name}")
        print(f" Embedding: {image_embedding.image_embedding.values[:5]}... (truncated)")
    
    return image_embedding

Twelve Labs Embed API を使い始める

Twelve Labs Embeddingsは、APIおよびPlaygroundを通じて利用可能です。Embed APIをすぐに使い始めるためのリソースをいくつか紹介します。

著者

リード

Lucas Lee, Yeonhoo Park, Manish Maheshwari

コア・リサーチ、プロダクト、デザイン、エンジニアリングおよびGTM

Jeff Kim, Jenna Kang, Sean Barclay, Sunny Nguyen, Meryl Hu, Ryan Won, Esther Kim, Wade Jeong, SJ Kim, Henry Choi, Maninder Saini, James Le, Aiden Lee, Soyoung Lee, Jae Lee

最先端のマルチモーダル埋め込み(マルチモーダルエンベディング)を生成できる、新しい Embed API のオープンベータ版をリリースいたしました。

主な特徴:

  • 最先端のマルチモーダルモデル Marengo 2.6を搭載。テキストからビデオの検索ベンチマーク(MSR-VTT、ActivityNet)およびテキストから画像の検索ベンチマーク(MS-COCO)において、Gemini Multimodal embeddings や Google VideoPrism を上回る性能を発揮します。

  • コスト・パフォーマンスにおいて、CLIPベースのモデルを含む他のソリューションと比較して最大70%安価です。

  • 時空間的な理解により、ビデオ内におけるオブジェクト、アクション、またはイベントを、空間(フレーム内のどこで発生するか)と時間(複数のフレームにわたっていつ発生するか)の両方で特定し、位置を検出します。

  • 簡単なベクトル保存のために、MongoDBPineconeDatabricks Mosaic AIMilvusLanceDBApertureDBと統合されています。

  • APIを使用してインデックス化されたビデオの埋め込みを取得し、Twelve Labs Playground 上でビデオ埋め込みを可視化できます。

  • APIおよびSDK(PythonNodeJS)を使用して簡単に開始できます。

Embed APIを使用して埋め込みの作成を始めるには、こちらのドキュメントおよびクイックスタート クックブックに従ってください。Embed APIの価格はこちらからご確認いただけます。

なぜマルチモーダル埋め込みなのか?

アプリケーションでは、多様なコンテンツ形式を扱う必要があることがよくあります。Twelve LabsのEmbed APIは、複数のモダリティにわたるコンテンツの埋め込みをサポートしており、ユーザーはテキスト、画像、ビデオ、およびオーディオデータの間に関連性を作成できます。

Embed APIを使用することで、開発者は以下を含むエニートゥエニー(あらゆる形式間)の検索および取得タスクを実行できます。

  • テキストからビデオ(Text-to-Video):自然言語のクエリを使用してビデオライブラリを検索します。

  • 画像からビデオ(Image-to-Video):画像に基づいて関連するビデオコンテンツを取得します。

  • テキストからオーディオ(Text-to-Audio)およびオーディオからビデオ(Audio-to-Video):オーディオデータとビデオデータを効率的にリンクして検索します。

さらに、マルチモーダル埋め込みは、以下を含む幅広いAIユースケースに使用できます。

  • 検索拡張生成(RAG)

  • ハイブリッド検索

  • モデルのトレーニング

  • 高品質なトレーニングデータの作成

  • 異常検知

以下のインタラクティブな視覚化は、Kinetics 400データセットからのビデオサンプルの埋め込みを示しています。

Twelve Labs Embed APIを使用したVideo-RAGの構築

マルチモーダル埋め込みのユースケースの1つに、ハイブリッド検索の構築があります。Twelve Labs Embed APIと一般的なベクトルデータベースを使用して、ビデオ検索拡張生成(Video-RAG)システムを構築できるようになりました。以下のブログでは、以下を使用したVideo-RAGアプリケーションの構築方法についての詳細なチュートリアルを紹介しています。

Twelve Labs Embed APIを使用したビデオ埋め込みの生成

以下の表は、Twelve Labs Embed APIを使用した埋め込みに関する詳細を示しています。

以下のコードスニペットは、Twelve Labs Embed APIを使用して埋め込みを生成する例を示しています。 

Twelve Labsのマルチモーダル埋め込みは、当社のAPIおよびSDK(PythonNodeJS)からアクセスできます。このコードスニペットではPython SDKを使用します。最初のステップは、必要なライブラリをインストールし、必要なモジュールをインポートすることです。

# Install necessary libraries and dependencies
!pip install twelvelabs
# Import required modules
import twelvelabs

上記のコードを実行すると、必要なすべてのライブラリがインストールされ、以降のステップで使用できるようになります。以下のコードスニペットは、ビデオ埋め込みを作成する方法を示しています。

from twelvelabs import TwelveLabs
from twelvelabs.models.embed import EmbeddingsTask

# Initialize the Twelve Labs client
twelvelabs_client = TwelveLabs(api_key=TL_API_KEY)

def generate_embedding(video_url):
    # Create an embedding task
    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}")

    # Define a callback function to monitor task progress
    def on_task_update(task: EmbeddingsTask):
        print(f"  Status={task.status}")

    # Wait for the task to complete
    status = task.wait_for_done(
        sleep_interval=2,
        callback=on_task_update
    )
    print(f"Embedding done: {status}")

    # Retrieve the task result
    task_result = twelvelabs_client.embed.task.retrieve(task.id)

    # Extract and return the embeddings
    embeddings = []
    for v in task_result.video_embeddings:
        embeddings.append({
            'embedding': v.values,
            'start_offset_sec': v.start_offset_sec,
            'end_offset_sec': v.end_offset_sec,
            'embedding_scope': v.embedding_scope
        })

    return embeddings, task_result

# Example usage
video_url = "https://storage.googleapis.com/ad-demos-datasets/videos/Ecommerce%20v2.5.mp4"

# Generate embeddings for the video
embeddings, task_result = generate_embedding(video_url)

print(f"Generated {len(embeddings)} embeddings for the video")
for i, emb in enumerate(embeddings):
    print(f"Embedding {i+1}:")
    print(f"  Scope: {emb['embedding_scope']}")
    print(f"  Time range: {emb['start_offset_sec']} - {emb['end_offset_sec']} seconds")
    print(f"  Embedding vector (first 5 values): {emb['embedding'][:5]}")
    print()

以下のコードスニペットは、テキストクエリが与えられたときにテキスト埋め込みを作成する方法を示しています。

def create_text_embedding(
    twelvelabs_client: TwelveLabs,
    text: str,
    engine_name: str = "Marengo-retrieval-2.6",
    verbose: bool = True
) -> dict:
    """
    Create a text embedding using Twelve Labs Embed API.
    
    Example:
        twelvelabs_client = TwelveLabs(api_key=TL_API_KEY)
        text_embedding = create_text_embedding(twelvelabs_client, "Your text here")
    """
    # Create embedding
    text_embedding = twelvelabs_client.embed.create(
        engine_name=engine_name,
        text=text
    )
    
    # Print information if verbose is True
    if verbose:
        print("Created a text embedding")
        print(f" Engine: {text_embedding.engine_name}")
        print(f" Embedding: {text_embedding.text_embedding}")
    
    return text_embedding

以下のコードスニペットは、オーディオファイルが与えられたときにオーディオ埋め込みを作成する方法を示しています。

def create_audio_embedding(
    twelvelabs_client: TwelveLabs,
    audio_file: Union[str, Path],
    engine_name: str = "Marengo-retrieval-2.6",
    verbose: bool = True
) -> dict:
    """
    Create an audio embedding using Twelve Labs Embed API.
    
    Example:
        twelvelabs_client = TwelveLabs(api_key=TL_API_KEY)
        audio_embedding = create_audio_embedding(twelvelabs_client, "path/to/audio.mp3")
    """
    # Create embedding
    audio_embedding = twelvelabs_client.embed.create(
        engine_name=engine_name,
        audio_file=audio_file,
    )
    
    # Print information if verbose is True
    if verbose:
        print("Created an audio embedding")
        print(f" Engine: {audio_embedding.engine_name}")
        
        if audio_embedding.audio_embedding.segments:
            print("Segments:")
            for i, segment in enumerate(audio_embedding.audio_embedding.segments, 1):
                print(f" Segment {i}:")
                print(f" Start Offset (sec): {segment.start_offset_sec}")
                if segment.values:
                    print(f" Values: {segment.values[:5]}... (truncated)")
    
    return audio_embedding

以下のコードスニペットは、画像ファイルが与えられたときに画像埋め込みを作成する方法を示しています。

def create_image_embedding(
    twelvelabs_client: TwelveLabs,
    image_file: Union[str, Path],
    engine_name: str = "Marengo-retrieval-2.6",
    verbose: bool = True
) -> dict:
    """
    Create an image embedding using Twelve Labs Embed API.
    
    Example:
        twelvelabs_client = TwelveLabs(api_key=TL_API_KEY)
        image_embedding = create_image_embedding(twelvelabs_client, "path/to/image.jpg")
    """
    # Create embedding
    image_embedding = twelvelabs_client.embed.create(
        engine_name=engine_name,
        image_file=image_file
    )
    
    # Print information if verbose is True
    if verbose:
        print("Created an image embedding")
        print(f" Engine: {image_embedding.engine_name}")
        print(f" Embedding: {image_embedding.image_embedding.values[:5]}... (truncated)")
    
    return image_embedding

Twelve Labs Embed API を使い始める

Twelve Labs Embeddingsは、APIおよびPlaygroundを通じて利用可能です。Embed APIをすぐに使い始めるためのリソースをいくつか紹介します。

著者

リード

Lucas Lee, Yeonhoo Park, Manish Maheshwari

コア・リサーチ、プロダクト、デザイン、エンジニアリングおよびGTM

Jeff Kim, Jenna Kang, Sean Barclay, Sunny Nguyen, Meryl Hu, Ryan Won, Esther Kim, Wade Jeong, SJ Kim, Henry Choi, Maninder Saini, James Le, Aiden Lee, Soyoung Lee, Jae Lee