
パートナーシップ
ビデオからベクトルへ:TwelveLabsとLangflowで構築するスマートビデオエージェント

ジェームズ・リー
開発者は、Twelve LabsとLangflowを使用し、ビデオインデックス作成および質問回答用のPegasusとマルチモーダル埋め込み用のMarengoを組み合わせることで、ビデオ対応のAIエージェントを構築できます。これにより、セマンティックビデオ検索からAstraDBベクトルストレージを使用した完全なRAGシステムに至るまでのワークフローがカバーされます。
開発者は、Twelve LabsとLangflowを使用し、ビデオインデックス作成および質問回答用のPegasusとマルチモーダル埋め込み用のMarengoを組み合わせることで、ビデオ対応のAIエージェントを構築できます。これにより、セマンティックビデオ検索からAstraDBベクトルストレージを使用した完全なRAGシステムに至るまでのワークフローがカバーされます。

この記事の内容
No headings found on page
ニュースレターに登録する
ニュースレターに登録する
ビデオ理解に関する最新の技術進歩、チュートリアル、業界の動向をお届けします
ビデオ理解に関する最新の技術進歩、チュートリアル、業界の動向をお届けします
AIを活用してビデオを検索、分析、探索します。
2025/06/04
12分
記事へのリンクをコピー
Langflow/DataStaxチーム(Melissa Herrera、Eric Hare、Gokul Krishnaa、Alejandro Cantarero)のコラボレーションに深く感謝いたします!
ワークフロー全体を紹介しているMelissaによる以下のチュートリアルもぜひご覧ください 👇

1 - はじめにと概要
ビデオAIのワイルドな世界へようこそ!ここでは、あなた自身と同じように、アプリが動画で何が起こっているかを「見る」ことができます! 🎬
このチュートリアルは、TwelveLabsとLangflowを使って次世代のビデオパワードエージェントを構築するためのゴールインチケットです。コンピュータビジョンの博士号は必要ありません。好奇心といくつかのビデオクリップさえあれば準備完了です。

なぜ重要なのか?
TwelveLabsは「頭脳」を提供します。当社のPegasus(ペガサス)およびMarengo(マレンゴ)モデルにより、コードがビデオコンテンツを理解、インデックス化、チャットできるようになり、質問への回答、重要な瞬間の特定、スマートな要約生成などが可能になります。Langflowはあなたの遊び場です。アイデアをAIワークフローに変換し、即座にAPIとして提供できるビジュアルビルダーです。これらを組み合わせることで、ビデオ検索エンジン、コンテンツモデレーションボット、あるいはテキスト、画像、動画を処理できるマルチモーダルアシスタントなど、ビデオAIソリューションの作成、テスト、デプロイが簡単になります。
内容は?
このチュートリアルでは、初心者からビデオのプロへと成長できます。環境をセットアップし、LangflowにおけるTwelveLabsコンポーネントをマスターし、ビデオとのチャット、ビデオ埋め込み(Embeddings)の生成と保存、さらにはビデオライブラリから質問を取得して回答する本格的なRAGシステムの構築といった実践的なフローを構築します。その過程で、ベストプラクティスを学び、画期的なユースケースを発見し、独自のビデオ対応アプリを構築するインスピレーションを得ることができます。
それでは、ポップコーンを用意し、コードエディタを立ち上げて、AIワークフローを真のビデオススマートにしていきましょう! 🚀🍿
2 - 開発環境のセットアップ
TwelveLabsとLangflowで開発を開始するために環境を準備しましょう。
Langflowのインストール
pipを使用してLangflowをインストールします:
pip install langflowLangflowサーバーを起動します:
langflow runブラウザで
http://127.0.0.1:7860にアクセスし、LangflowのUIを開きます。

TwelveLabs API認証情報の取得
まだアカウントをお持ちでない場合は、 TwelveLabsプラットフォーム でアカウントを作成します。
プロファイル設定に移動し、新しいAPIキーを作成します。
TwelveLabsサービスへのリクエストの認証に必要となるため、APIキーを書き留めておきます。
TwelveLabsコンポーネントの確認
Langflowのインターフェースで、「+」ボタンをクリックして新しいフローを作成します。
コンポーネントサイドバーを開き、「TwelveLabs」を検索します。以下のコンポーネントが表示されるはずです:
Video File(ビデオファイル)
Split Video(ビデオ分割)
Twelve Labs Pegasus Index Video(Twelve Labs Pegasus ビデオインデックス作成)
Twelve Labs Pegasus(Twelve Labs Pegasus)
Twelve Labs Text Embeddings(Twelve Labs テキスト埋め込み)
Twelve Labs Video Embeddings(Twelve Labs ビデオ埋め込み)
Convert AstraDB to Pegasus Input(AstraDBからPegasus入力への変換)
これらのコンポーネントが表示されない場合は、Langflowが最新バージョンにアップデートされているか確認してください。

サンプル動画の準備
このチュートリアルでのテスト用に、2〜3個の短いビデオクリップ(それぞれ1〜3分)を用意します。MP4、MOV、AVIなどの一般的なフォーマットがサポートされています。
学習時のパフォーマンスを最適化するために、視覚的コンテンツが明確で、シーンがはっきり分かれている動画を使用してください。これにより、ビデオ理解機能の効果をより実感できます。
チュートリアル中に見つけやすいよう、サンプル動画専用のフォルダを作成します。
トラブルシューティングのヒント
TwelveLabsコンポーネントで問題が発生した場合:
API認証: APIキーが正しく入力されており、有効期限が切れていないことを確認してください。
ビデオ処理: ビデオがサポートされているフォーマットであり、サイズが大きすぎないことを確認してください。処理を高速化するため、まずは100MB未満のクリップから始めてください。
コンポーネントの読み込み: コンポーネントが表示されない場合は、Langflowを再起動するか、コンソールでエラーメッセージを確認してください。
依存関係: 統合にはビデオ処理のためにFFmpegが必要です。まだインストールされていない場合は、システムのパッケージマネージャーを使用してインストールしてください。
環境がセットアップできたら、TwelveLabsとLangflowを使って強力なビデオ対応AIワークフローの構築を始める準備は完了です。
3 - LangflowにおけるTwelveLabsコンポーネントの理解
Langflowに、AIワークフローで高度なビデオ理解機能を可能にする7つの強力なTwelveLabsコンポーネントが加わりました。これらのコンポーネントは、動画の処理、埋め込みの生成、ビデオコンテンツのインデックス作成、そして視覚コンテンツとの自然言語によるインタラクションを実現するために相互に連携します。
3.1 - Video File(ビデオファイル)コンポーネント

Video Fileコンポーネントは、Langflowにおけるビデオ処理ワークフローのエントリポイントとして機能します。MP4、AVI、MOV、MKVなど、幅広い一般的なビデオフォーマットに対応しているため、様々なビデオソースに対して汎用性があります。実装は簡単で、ビデオファイルへのパスを指定するだけで、コンポーネントはファイルパスと重要なメタデータの両方を含むDataオブジェクトを返します。開発中のパフォーマンスを最適化するため、まずは100MB未満のビデオから始めることをお勧めします。
3.2 - Split Video(ビデオ分割)コンポーネント

この強力なコンポーネントは、長尺のビデオをインテリジェントに小さく扱いやすいクリップに分割(セグメント化)します。いくつかのパラメータを通じて分割プロセスを微調整できます。希望するクリップの長さを秒単位で設定し、最後のクリップの処理方法(切り捨て、前のコンテンツとのオーバーラップ、またはそのまま保持)を選択し、元のビデオをクリップと並行して保持するかどうかを決定します。このコンポーネントは、詳細なメタデータを含むDataオブジェクトのコレクションとしてクリップを出力します。検索および理解タスクで最良の結果を得るには、6秒から30秒の長さのクリップを作成することをお勧めします。
3.3 - Twelve Labs Pegasus Index Video(Twelve Labs Pegasus ビデオインデックス作成)コンポーネント

ビデオインデックス作成の中核を担うのが、Pegasus Index Videoコンポーネントです。TwelveLabsのPegasus APIと連携し、ビデオコンテンツの検索可能なインデックスを作成します。APIキーとビデオデータ(通常はSplit Videoコンポーネントから取得)を提供すると、固有のvideo_idとindex_id識別子を含むインデックス付きビデオデータを生成します。このインデックス作成ステップは、Pegasusコンポーネントでクエリを実行する前に不可欠です。
3.4 - Twelve Labs Pegasus コンポーネント

Pegasusコンポーネントは、インデックス作成されたビデオコンテンツとの高度な自然言語インタラクションを可能にします。構成には、APIキー、クエリテキスト、および関連するビデオ識別子とインデックス識別子が必要です。インテリジェントな推論レイヤーとして機能し、クエリのコンテキストとビデオコンテンツの両方を処理して、対話的な応答を生成します。このコンポーネントは、自然言語の理解とビデオコンテンツ分析のギャップを真に埋めるものです。
3.5 - Twelve Labs Text Embeddings(Twelve Labs テキスト埋め込み)コンポーネント

TwelveLabsのMarengoモデルを活用して、このコンポーネントはテキスト入力からベクトル埋め込みを生成します。APIキーが必要で、現在はMarengo-retrieval-2.7モデルをサポートしています。出力はベクトルデータベースと完全に互換性があるため、洗練された検索システムに最適です。アプリケーションにおける一貫性を保つため、テキストコンポーネントとビデオコンポーネントの両方で同じ埋め込みモデルを使用することをお勧めします。
3.6 - Twelve Labs Video Embeddings(Twelve Labs ビデオ埋め込み)コンポーネント

テキスト版と同様に、Video Embeddingsコンポーネントはビデオコンテンツの密なベクトル表現を作成します。テキスト埋め込みコンポーネントと同じ構成パターンを共有しますが、ビデオファイルの処理に特化しています。得られる埋め込みにより、動画間またはテキストと動画コンテンツ間の強力なセマンティック類似性検索が可能になり、マルチモーダルアプリケーションの刺激的な可能性が広がります。
3.7 - Convert AstraDB to Pegasus Input(AstraDBからPegasus入力への変換)コンポーネント

この重要なコネクタコンポーネントは、ベクトルデータベースの操作とTwelveLabsコンポーネント間の架け橋となります。AstraDBからの検索結果を処理し、重要なvideo_idとindex_idの情報を抽出して、Pegasusコンポーネントに適した形式に適切に変換します。このコンポーネントは、ビデオコンテンツを使用したRAG(検索拡張生成)パターンを実装する際に特に価値があり、ベクトルデータベースとビデオ処理パイプライン間のスムーズなデータフローを保証します。
これらのコンポーネントは、シームレスに連携するように設計されています。たとえば、以下のようにしてビデオ検索エンジンを作成できます:
Video Fileでビデオを読み込む
Split Videoで扱いやすいチャンクに分割する
Pegasus Index Videoでインデックスを作成する
Video Embeddingsで埋め込みを生成する
AstraDBなどのベクトルデータベースに保存する
Convert AstraDB to Pegasus Inputで関連するクリップを取得する
Twelve Labs Pegasusで質問に答える
ワークフローを構築する際は、これらのコンポーネントを、読み込みや処理からインデックス作成、埋め込み、検索に至るまで、ビデオ理解の様々な側面を処理するビルディングブロックとして考えてください。
4 - Pegasusでのビデオチャット:最初の対話型ビデオワークフロー
このセクションでは、Twelve Labs Pegasusモデルを使用してビデオと「チャット」できる基本的なLangflowワークフローの作成手順を説明します。このフローは、ビデオ処理、インデックス作成、および自然言語クエリの直接的な統合を示しています。
参照画像に示されている「Pegasus Chat with Video」フローにより、ビデオをアップロードし、Twelve Labsによって自動的にインデックス化され、その後チャットインターフェースを通じてその内容について質問することができます。

以下の手順に従ってこのフローを構築してください:
ビデオのアップロード:
Video FileコンポーネントをLangflowキャンバスにドラッグします。Video Fileコンポーネントのプロパティで、サンプルビデオファイル(例:画像に示されているbig_buck_bunny_720.mp4)をアップロードするためにクリックします。このコンポーネントがビデオを読み込み、他のコンポーネントで利用できるようにします。
ビデオデータをPegasusに接続:
Twelve Labs Pegasusコンポーネントをキャンバスに追加します。Video FileコンポーネントのData出力(赤丸)を、Twelve Labs PegasusコンポーネントのVideo Data入力(赤丸)に接続します。これにより、Pegasusコンポーネントに処理対象のビデオを伝えます。
Pegasusコンポーネントの構成:
Twelve Labs Pegasusコンポーネントにおいて:指定されたフィールドに Twelve Labs APIキー を入力します。
Index Name (インデックス名)を指定します。これは、作成されるビデオインデックスに対して任意に選択した分かりやすい名前で構いません(例:「bunny-test-index」)。
Model はデフォルトで
pegasus1.2のようなPegasusモデルになります。特定のモデル要件がない限り、通常はそのままにしておいて構いません。
開発者向け注意:
Index IDを指定せずにVideo DataとIndex Nameを提供すると、Pegasusコンポーネントは新規ビデオに対してTwelve Labsでのビデオインデックス自動作成プロセスを開始します。このプロセス中にTwelve Labsによってvideo_idおよびindex_idが作成されます。
ユーザー入力の有効化:
Chat Inputコンポーネントをキャンバスに追加します。Chat Inputコンポーネントの出力を、Twelve Labs PegasusコンポーネントのPrompt入力(画像で「Receiving input」とラベル付けされた、青丸)に接続します。これにより、Pegasusモデルに送信される質問を入力できるようになります。
チャット応答の表示:
Chat Outputコンポーネントを追加します。Twelve Labs PegasusコンポーネントのMessage出力(青丸)を、このChat Outputコンポーネントの入力に接続します。これにより、Pegasusモデルからの回答が表示されます。
任意:再チャット用のビデオIDの出力:
その後のチャットセッションで同じビデオの再インデックス作成を避けるために、Twelve Labsによって生成された
Video IDとIndex IDをキャプチャできます。もう一つの
Chat Outputコンポーネントを追加します。Twelve Labs PegasusコンポーネントからのVideo ID出力(青丸)を、この新しいChat Outputコンポーネントに接続します。開発者のヒント:同じビデオを使用した将来のセッションでは、以前に生成された
Video IDとIndex IDを、それぞれTwelve Labs PegasusコンポーネントのPegasus Video IDおよびIndex IDフィールドに直接入力できます。これにより、再インデックス作成ステップをバイパスし、インタラクションを高速化できます。Video DataとIndex Nameのみを提供した場合は、再インデックス作成されます。
プレイグラウンドでのテスト:
Langflowプレイグラウンドを開きます(通常は右側のサイドバーにあるチャットバブルアイコンをクリックします)。
ビデオに関する質問をチャットインターフェースに入力します(例:「ビデオに写っている動物は何ですか?」、「主役を説明してください。」)。
Pegasusコンポーネントがビデオを処理し(初回の場合)、インデックスを作成し、ビデオの内容に基づいて質問に答えます。応答は接続された
Chat Outputに表示されます。
このシンプルながら強力なフローは、TwelveLabsのビデオ理解をインタラクティブなLangflowエージェントに直接統合する方法の基本例として役立ちます。これで、ほぼリアルタイムでビデオの内容について質問を投げ、回答を得ることができます。
5 - MarengoとAstraDBによるビデオ埋め込み:セマンティック・ビデオ・インデックスの構築
このセクションでは、TwelveLabsのMarengoモデルを使用してビデオ埋め込みを生成し、その後これらの埋め込みをDataStax AstraDBに保存するためのLangflowワークフローの構築方法を詳しく説明します。これは、ビデオライブラリに対するセマンティック検索を有効にしたり、ビデオコンテンツを使用した高度な検索拡張生成(RAG)システムを構築したりするために不可欠なステップです。
提供されている参照画像に示されているように、このワークフローは、ビデオを取り込んで埋め込みを生成し、これらの埋め込みをビデオのメタデータとともにAstraDBコレクションに保存します。

5.1 - 事前準備:AstraDBのセットアップ
Langflowのフローを構築する前に、AstraDB環境が準備できていることを確認してください:
AstraDBデータベースの作成:
まだお持ちでない場合は、サインアップして DataStax AstraDB 上に新しいサーバーレスデータベースを作成します。
データベースの初期作成については、AstraDBのセットアップガイドに従ってください。
アプリケーション・トークンの生成:
AstraDBコンソールの「Database Details(データベースの詳細)」セクションに移動します。
適切な権限(例:Database Administrator、またはコレクションへの接続・読み書きを許可するロール)を持つアプリケーション・トークン(Application Token)を生成します。Langflowコンポーネントで必要になるため、このトークンを安全に保存してください。
video_embeddingsコレクションの作成:AstraDBデータベース内に新しいコレクションを作成します。名前は
video_embeddingsなどにすると良いでしょう。極めて重要:このコレクションをベクトル検索(Vector Search)に対応するように構成します。これには通常、以下が含まれます:
コレクションがベクトルを保存するように指定すること。
ベクトルの次元数(Dimension)を 1024 に設定すること。これは、TwelveLabsのMarengoモデル(画像に示されている
Marengo-retrieval-2.7など)によって生成される埋め込みの次元数です。
ベクトル検索の有効化および次元数の設定に関する詳細な手順については、コレクション管理に関するAstraDBのドキュメントを参照してください。
5.2 - Langflowワークフローの構築
AstraDBがセットアップされたら、Langflowで以下のフローを構築します:
動画のアップロード:
Video Fileコンポーネントをキャンバスにドラッグします。希望のビデオファイル(例:画像で使われている
big_buck_bunny_720.mp4)をアップロードして構成します。このコンポーネントにより、ビデオデータがワークフローからアクセス可能になります。
ビデオ埋め込み生成の構成:
Twelve Labs Video Embeddingsコンポーネントをキャンバスに追加します。API Keyフィールドに Twelve Labs APIキー を入力します。Model が
Marengo-retrieval-2.7(または別の互換性のあるMarengoモデル)に設定されていることを確認します。このコンポーネントがビデオを処理し、密なベクトル埋め込みを生成します。
取り込み用AstraDBの構成:
DS Astra DBコンポーネント(または画像に示されているAstra DBコンポーネント)をキャンバスに追加します。対応するフィールドに Astra DB アプリケーション・トークン を入力します。
ベクトル対応コレクションを作成した Database 名を指定します。
作成した Collection 名(例:
video_embeddings)を入力します。
埋め込みをAstraDBに接続:
Twelve Labs Video EmbeddingsコンポーネントからのEmbeddings出力(緑丸)を、DS Astra DBコンポーネントのEmbedding Model入力(緑丸)に接続します。開発者向け注意:この接続は、AstraDBに対して受信データを埋め込みとして解釈する 方法 を伝えるものですが、埋め込み自体を提供するわけではありません。実際の埋め込みは、取り込まれるデータとともに渡されます。
取り込み用ビデオデータの接続:
Video FileコンポーネントからのData出力(赤丸)を、DS Astra DBコンポーネントのIngest Data入力(赤丸)に接続します。開発者向け注意:データが
Ingest Data入力に渡されると、このフローのように埋め込みモデルが構成されているか埋め込みコンポーネントに接続されている場合、Astra DBコンポーネントは入力データの埋め込みを期待または生成します。このセットアップでは、Twelve Labs Video Embeddingsコンポーネントが埋め込み生成を処理し、その出力(元のデータと埋め込みを含む)がDS Astra DBに渡されます。
フローを実行して埋め込みと取り込みを行う:
プロセスを開始するには、通常、このチェーンの最後のコンポーネントである
DS Astra DBコンポーネントを「実行」または有効化します。Langflowでは、コンポーネント上の再生/実行アイコンをクリックするか、より大きな実行可能グラフの一部としてフロー全体を構築して開始します。実行されると、
Video Fileコンポーネントがビデオを読み込みます。次に、Twelve Labs Video Embeddingsコンポーネントがこのビデオデータを受け取り(フローを通じて暗黙的に、またはVideo Data入力が接続されている場合は明示的に受け取り。スクリーンショットのコンポーネントでは示されていませんが)、埋め込みを生成します。最後に、DS Astra DBコンポーネントがビデオデータ(上流コンポーネントあるいは自身の内部ロジックによって埋め込みが豊富化されたもの)を受け取り、指定されたAstraDBコレクションに取り込みます。
このフローを実行すると、ビデオの内容はAstraDBコレクション内のベクトル埋め込みとして表現され、セマンティック検索や類似性比較、RAGアプリケーションのナレッジベースとして活用できる状態になります。AstraDBコレクションに直接クエリを実行して、データが保存されているか確認することができます。
6 - ビデオコンテンツを使用した高度なRAG実装
ビデオのための堅牢な検索拡張生成(RAG)システムを構築するには、ビデオコンテンツの処理やインデックス作成から、セマンティック検索や文脈に応じた理解の有効化にいたるまで、いくつかの段階があります。このセクションは2つのパートに分かれています。まず、ビデオを分割し、そのクリップに対してTwelve Labs Pegasusでインデックスを作成し、Marengoで埋め込みを生成し、それらすべてをAstraDBに保存することで、ビデオデータを準備することに焦点を当てます。

パート1:ビデオを分割し、Pegasusでクリップのインデックスを作成し、埋め込みをAstra DBに保存する
この最初のフローは、画像に示されているように、ビデオRAGシステムの基礎となります。ソースビデオを管理可能なクリップに分割処理し、Pegasusからのインデックス情報でこれらのクリップを充実させ、Marengoを使用して対応するベクトル埋め込みを生成し、最後にこの包括的なデータセットを効率的な検索のためにAstraDBに保存します。
このデータ取り込み用パイプラインの構築手順は以下の通りです:
ソースビデオのアップロード:
まず、
Video FileコンポーネントをLangflowキャンバスにドラッグします。動画をアップロードして構成します(例:画像に示されている
big_buck_bunny_720...)。このコンポーネントは生のビデオデータを出力します。
動画をクリップに分割:
Split Videoコンポーネントを追加します。Video FileコンポーネントからのData出力を、Split VideoコンポーネントのVideo Data入力に接続します。Split Videoコンポーネントを構成します:Clip Duration (seconds): 各ビデオセグメントの長さを定義するためにこれを設定します。画像では
6秒になっており、きめ細かな分析に適した開始値です。コンテンツに合わせてこれを調整できます(たとえば、大まかなシーンセグメンテーションには30秒が適している場合があります)。Last Clip Handling: クリップの長さを一定にするために、画像にある
Overlap Previous(前のクリップと重ねる)のようなオプションを選択するか、お好みに応じてTruncate(切り捨て)やKeep Short(短いまま保持)を選択します。Include Original Video: セグメントを扱うことになるRAG処理用クリップを作成する場合、通常はこれをオフ(画像のとおり)にします。
Pegasusでクリップのインデックス作成:
Twelve Labs Pegasus Index Videoコンポーネントを導入します。Split VideoコンポーネントからのVideo Clips出力を、Twelve Labs Pegasus Index VideoコンポーネントのVideo Data入力に接続します。このコンポーネントは各クリップを処理します。コンポーネントの設定において:
Twelve Labs APIキーを入力します。
Index Name (例:画像の
test index)を指定します。これにより、Twelve Labs内でインデックス作成されたコンテンツを整理しやすくなります。コンポーネントはIndexed Dataを出力します。これには元のクリップデータと、Pegasusによって割り当てられたvideo_idおよびindex_idが含まれます。Model はデフォルトでPegasusモデル(例:
pegasus1.2)になります。
Marengoによるビデオ埋め込みの生成:
Twelve Labs Video Embeddingsコンポーネントを追加します。ここでも Twelve Labs APIキー を入力します。
Model に
Marengo-retrieval-2.7(画像に示されているモデル)か、お好みのMarengo埋め込みモデルを設定します。極めて重要:
Twelve Labs Pegasus Index VideoコンポーネントからのIndexed Data出力を、Twelve Labs Video Embeddingsコンポーネントの(暗黙的または明示的な)ビデオデータ入力に接続します。開発者向け注意:画像ではこのコンポーネントに直接「Video Data」という名前の入力が表示されていませんが、埋め込みコンポーネントは処理対象のビデオクリップを受け取る必要があります。Indexed Dataがこれらのクリップを運びます。
保存先AstraDBの構成:
DS Astra DBコンポーネントをキャンバスに配置します。Astra DB アプリケーション・トークン を入力します。
ビデオデータと埋め込みが保存される、ターゲットとなる Database (例:
video_embeddings)および Collection (例:video_embeddings)を選択します。このコレクションが、使用するMarengoモデル(Marengo-retrieval-2.7の場合は1024)に一致する次元数で、ベクトル検索向けに構成されていることを確認してください。
埋め込みとデータをAstraDBに接続:
Twelve Labs Video EmbeddingsコンポーネントからのEmbeddings出力を、DS Astra DBコンポーネントのEmbedding Model入力に接続します。これにより、AstraDBに埋め込みベクトルの解釈方法を伝えます。Twelve Labs Pegasus Index VideoコンポーネントからのIndexed Data出力を、DS Astra DBコンポーネントのIngest Data入力に接続します。これにより、ビデオクリップ(Pegasusのvideo_idとindex_idで充実化されたデータ)と、生成されたそれらの埋め込みが、保存先へと送信されます。
取り込みフローの実行:
フローを実行します。
Video Fileが読み込まれ、Split Videoによって分割されます。各クリップは、インデックス作成のためにTwelve Labs Pegasus Index Videoに送信されます。得られたIndexed Data(クリップ + Pegasus ID)はTwelve Labs Video Embeddingsに渡され、Marengo埋め込みが生成されます。最後に、DS Astra DBコンポーネントがこの包括的なデータ(クリップ、Pegasusインデックス情報、Marengoベクトル埋め込み)を、指定されたコレクションに取り込みます。
このフローが完了すると、AstraDBコレクションに、個々のベクトル埋め込みおよびPegasusの識別子が紐付けられた、インデックス作成済みビデオクリップが含まれ、RAGシステムの取得パートへの準備が整います。
パート2:ビデオ埋め込みへのクエリ実行と、Pegasusを使用したビデオチャット
ビデオクリップが処理され、Pegasusによってインデックスが作成され、それらのMarengo埋め込みがAstraDBに保存され終わったら(パート1で詳述)、この2つ目のフローはRAGの「取得(ミリバール)」と「生成」の側面を示します。参照画像にあるように、まずユーザーのテキスト質問(クエリ)を埋め込みに変換し、それを使用して関連するビデオクリップをAstraDBから検索します。これらのクリップからの情報は、コンテキストに基づいた回答を生成するためにTwelve Labs Pegasusモデルに渡されます。

以下はこの取得および質問応答パイプラインの構築手順です:
ユーザーのクエリ入力と埋め込み:
Chat Inputコンポーネントをキャンバスに追加します。これは、ユーザーが質問を入力する場所になります。Twelve Labs Text Embeddingsコンポーネントを追加します。Twelve Labs APIキーを入力します。
Model に
Marengo-retrieval-2.7(またはパート1でビデオクリップの埋め込みに使用したのと同じMarengoモデル)を設定します。
Chat Inputコンポーネントの出力を、Twelve Labs Text Embeddingsコンポーネントのテキスト入力に接続します。これにより、ユーザーのクエリがベクトル埋め込みに確実に変換されます。
AstraDBでのセマンティック検索:
DS Astra DBコンポーネントを追加します。Astra DB アプリケーション・トークン を入力します。
ビデオクリップの埋め込みが保存されている Database (例:
video_embeddings)および Collection (例:video_embeddings)を選択します。Twelve Labs Text EmbeddingsコンポーネントからのEmbeddings出力を、DS Astra DBコンポーネントのEmbedding Model入力に接続します。これにより、AstraDBにクエリ埋め込みが提供されます。Chat Inputコンポーネントの出力(生のテキストクエリ)を、DS Astra DBコンポーネントのSearch Query入力に接続します。開発者向け注意:クエリの埋め込みはEmbedding Modelに渡されますが、Search Query入力自体は、構成によってはキーワードフィルタリングやその他のハイブリッド検索戦略、あるいは単に提供されたクエリ埋め込みを使用して何に対してベクトル検索を行うかを知るために、AstraDBによって利用される場合があります。
DS Astra DBコンポーネントは、コレクション内で類似性検索を実行し、最も関連性の高いビデオクリップ(またはパート1から保存されている場合は、video_idやindex_idを含むメタデータ)であるSearch Resultsを返します。
AstraDBの結果をPegasus入力用に変換:
Convert AstraDB to Pegasus Inputコンポーネントを追加します。DS Astra DBコンポーネントからのSearch Results出力(多くの場合ドキュメントのメタデータを含む赤丸)を、このコンバータコンポーネントのAstraDB Results入力に接続します。このユーティリティコンポーネントは非常に重要です。AstraDBの検索結果から
Index IDとVideo IDを抽出します。これは、Pegasusコンポーネントが「チャット」対象となる特定のインデックス作成済みビデオセグメントを識別するために必須となります。
文脈に応じたQ&Aに向けてPegasusを準備:
Twelve Labs Pegasusコンポーネントを追加します。Twelve Labs APIキーを入力します。
希望のPegasusの Model を選択します(デフォルトは
pegasus1.2です)。
Convert AstraDB to Pegasus InputコンポーネントからのIndex ID出力を、Twelve Labs PegasusコンポーネントのIndex ID入力(「Receiving input」とラベルされた端子)に接続します。Convert AstraDB to Pegasus InputコンポーネントからのVideo ID出力を、Twelve Labs PegasusコンポーネントのPegasus Video ID入力(「Receiving input」とラベルされた端子)に接続します。開発者向け注意:ビデオデータがその場で直接インデックス作成のために提供される「Pegasus Chat with Video」フローとは異なり、ここではAstraDBから取得した すでにインデックス作成されている コンテンツの特定の
Pegasus Video IDとIndex IDを提供しています。PegasusコンポーネントのVideo Data入力はこのRAG検索フローでは未接続のままになります。
元のクエリをPegasusに渡す:
元の
Chat Inputコンポーネント(ユーザーの質問を保持しているもの)の出力を、Twelve Labs PegasusコンポーネントのPrompt入力(「Receiving input」とラベルされた端子)に直接接続します。これにより、Pegasusは取得したビデオセグメントの文脈を使用して、どの質問に答えるべきかを認識できます。
Pegasusの応答を表示する:
Chat Outputコンポーネントを追加します。Twelve Labs PegasusコンポーネントからのMessage出力を、このChat Outputコンポーネントの入力に接続します。これにより、AIが生成した回答が表示されます。
ビデオRAGシステムのテスト:
Langflowのプレイグラウンド(チャットインターフェース)を開きます。
パート1で処理したビデオコンテンツに関連する質問を入力します(例:「冒頭でウサギに何が起こりますか?」、「蝶が出てくるシーンを見せてください。」)。
フローは以下のように実行されます:
あなたの質問が
Chat Inputによってキャプチャされます。Twelve Labs Text Embeddingsが質問をベクトルに変換します。DS Astra DBがそのベクトルを使用して、データベースから最もセマンティックに類似したビデオクリップを見つけます。Convert AstraDB to Pegasus Inputが、上位に取得されたクリップのvideo_idおよびindex_idを抽出します。Twelve Labs PegasusがこれらのID(どのビデオセグメントに焦点を当てるかを指示)と元の質問(そのセグメントに関して何を回答すべきかを指示)を受け取ります。Pegasusが、あなたの質問に関連する指定のビデオセグメントを分析し、回答を生成します。
回答が
Chat Outputを介して表示されます。
この2パートからなるRAGアーキテクチャにより、大規模なビデオライブラリから関連する重要な瞬間を対話形式で取得し、それを基にやり取りできる、洗練されたスケーラブルなビデオ理解アプリケーションを構築できます。
7 - 特別なユースケースとパフォーマンスのベストプラクティス
TwelveLabsとLangflowの連携によるビデオ機能は、価値の高いビジネスアプリケーションを数多く展開させます。不適切な動画セグメントを自動的にフラグ付け、または要約するコンテンツモデレーションシステム、大規模なアーカイブから関連のある瞬間を表面化させるビデオ検索エンジン、さらには動画、テキスト、画像の理解をブレンドしたマルチモーダルアシスタントを構築し、より豊かなユーザーエクスペリエンスを提供できます。これらのユースケースは、動画に対する迅速な洞察や自動分析が、生産性、コンプライアンス、ユーザー維持を直接左右する、メディア、教育、カスタマーサポートなどの業界に最適です。
ビデオ対応ワークフローで信頼性の高いビジネス結果を提供するには、パフォーマンスとコストの最適化に注力してください。動画セグメントをバッチ処理する、あるいは不要な再処理を防ぐためにキャッシュを使用することで、APIのフットプリントを抑え、また詳細度と計算効率のバランスが取れるクリップの長さを選びましょう。ビデオライブラリの増加に伴い高速なクエリ応答を維持するため、AstraDBと埋め込みパイプラインを監視し、より精密な結果を得るために、ベクトル類似性にメタデータフィルタリングを組み合わせたハイブリッド検索戦略を検討してください。
これらのベストプラクティスに従うことで、ビデオAIソリューションにおけるスケーラビリティ、正確性、費用対効果を最大化できます。これにより、組織は大規模なビデオから実行可能な洞察を抽出し、市場における競争優位性を維持することができます。
8 - まとめと次のステップ
おめでとうございます。これであなたもビデオマスターです! 🎬✨
TwelveLabsとLangflowの強力なコンビを使用して、本当にビデオを見て理解するAIエージェントを構築する力をアンロックできました。次世代のスマートなビデオ検索エンジンを作成する、大規模なコンテンツモデレーション、あるいはマルチモーダルアシスタントの開発など、生のフッテージを実用的な洞察(そしてちょっとした魔法のような体験)に変えるツールが手に入りました。
それでは、次に何をしましょう?
独自の創造的なフローを実験したり、さまざまな種類のビデオで限界に挑戦したり、最もクールなプロジェクトをコミュニティで共有してみましょう。TwelveLabsとLangflowのロードマップで発表される刺激的な新機能に注目し、ディスカッションへの参加もお忘れなく。あなたのアイデアとフィードバックが、ビデオAIの未来を形作ります!
さあ、素晴らしいものを構築しに出発しましょう。ビデオの宇宙があなたの探索を待っています! 🚀🎥
追加リソース
TwelveLabs ドキュメント: https://docs.twelvelabs.io/
Langflow ドキュメント: https://docs.langflow.org/
LangflowにおけるTwelveLabsコンポーネント: https://github.com/twelvelabs-io/twelvelabs-developer-experience/blob/main/integrations/Langflow/TWELVE_LABS_COMPONENTS_README.md
Langflow/DataStaxチーム(Melissa Herrera、Eric Hare、Gokul Krishnaa、Alejandro Cantarero)のコラボレーションに深く感謝いたします!
ワークフロー全体を紹介しているMelissaによる以下のチュートリアルもぜひご覧ください 👇

1 - はじめにと概要
ビデオAIのワイルドな世界へようこそ!ここでは、あなた自身と同じように、アプリが動画で何が起こっているかを「見る」ことができます! 🎬
このチュートリアルは、TwelveLabsとLangflowを使って次世代のビデオパワードエージェントを構築するためのゴールインチケットです。コンピュータビジョンの博士号は必要ありません。好奇心といくつかのビデオクリップさえあれば準備完了です。

なぜ重要なのか?
TwelveLabsは「頭脳」を提供します。当社のPegasus(ペガサス)およびMarengo(マレンゴ)モデルにより、コードがビデオコンテンツを理解、インデックス化、チャットできるようになり、質問への回答、重要な瞬間の特定、スマートな要約生成などが可能になります。Langflowはあなたの遊び場です。アイデアをAIワークフローに変換し、即座にAPIとして提供できるビジュアルビルダーです。これらを組み合わせることで、ビデオ検索エンジン、コンテンツモデレーションボット、あるいはテキスト、画像、動画を処理できるマルチモーダルアシスタントなど、ビデオAIソリューションの作成、テスト、デプロイが簡単になります。
内容は?
このチュートリアルでは、初心者からビデオのプロへと成長できます。環境をセットアップし、LangflowにおけるTwelveLabsコンポーネントをマスターし、ビデオとのチャット、ビデオ埋め込み(Embeddings)の生成と保存、さらにはビデオライブラリから質問を取得して回答する本格的なRAGシステムの構築といった実践的なフローを構築します。その過程で、ベストプラクティスを学び、画期的なユースケースを発見し、独自のビデオ対応アプリを構築するインスピレーションを得ることができます。
それでは、ポップコーンを用意し、コードエディタを立ち上げて、AIワークフローを真のビデオススマートにしていきましょう! 🚀🍿
2 - 開発環境のセットアップ
TwelveLabsとLangflowで開発を開始するために環境を準備しましょう。
Langflowのインストール
pipを使用してLangflowをインストールします:
pip install langflowLangflowサーバーを起動します:
langflow runブラウザで
http://127.0.0.1:7860にアクセスし、LangflowのUIを開きます。

TwelveLabs API認証情報の取得
まだアカウントをお持ちでない場合は、 TwelveLabsプラットフォーム でアカウントを作成します。
プロファイル設定に移動し、新しいAPIキーを作成します。
TwelveLabsサービスへのリクエストの認証に必要となるため、APIキーを書き留めておきます。
TwelveLabsコンポーネントの確認
Langflowのインターフェースで、「+」ボタンをクリックして新しいフローを作成します。
コンポーネントサイドバーを開き、「TwelveLabs」を検索します。以下のコンポーネントが表示されるはずです:
Video File(ビデオファイル)
Split Video(ビデオ分割)
Twelve Labs Pegasus Index Video(Twelve Labs Pegasus ビデオインデックス作成)
Twelve Labs Pegasus(Twelve Labs Pegasus)
Twelve Labs Text Embeddings(Twelve Labs テキスト埋め込み)
Twelve Labs Video Embeddings(Twelve Labs ビデオ埋め込み)
Convert AstraDB to Pegasus Input(AstraDBからPegasus入力への変換)
これらのコンポーネントが表示されない場合は、Langflowが最新バージョンにアップデートされているか確認してください。

サンプル動画の準備
このチュートリアルでのテスト用に、2〜3個の短いビデオクリップ(それぞれ1〜3分)を用意します。MP4、MOV、AVIなどの一般的なフォーマットがサポートされています。
学習時のパフォーマンスを最適化するために、視覚的コンテンツが明確で、シーンがはっきり分かれている動画を使用してください。これにより、ビデオ理解機能の効果をより実感できます。
チュートリアル中に見つけやすいよう、サンプル動画専用のフォルダを作成します。
トラブルシューティングのヒント
TwelveLabsコンポーネントで問題が発生した場合:
API認証: APIキーが正しく入力されており、有効期限が切れていないことを確認してください。
ビデオ処理: ビデオがサポートされているフォーマットであり、サイズが大きすぎないことを確認してください。処理を高速化するため、まずは100MB未満のクリップから始めてください。
コンポーネントの読み込み: コンポーネントが表示されない場合は、Langflowを再起動するか、コンソールでエラーメッセージを確認してください。
依存関係: 統合にはビデオ処理のためにFFmpegが必要です。まだインストールされていない場合は、システムのパッケージマネージャーを使用してインストールしてください。
環境がセットアップできたら、TwelveLabsとLangflowを使って強力なビデオ対応AIワークフローの構築を始める準備は完了です。
3 - LangflowにおけるTwelveLabsコンポーネントの理解
Langflowに、AIワークフローで高度なビデオ理解機能を可能にする7つの強力なTwelveLabsコンポーネントが加わりました。これらのコンポーネントは、動画の処理、埋め込みの生成、ビデオコンテンツのインデックス作成、そして視覚コンテンツとの自然言語によるインタラクションを実現するために相互に連携します。
3.1 - Video File(ビデオファイル)コンポーネント

Video Fileコンポーネントは、Langflowにおけるビデオ処理ワークフローのエントリポイントとして機能します。MP4、AVI、MOV、MKVなど、幅広い一般的なビデオフォーマットに対応しているため、様々なビデオソースに対して汎用性があります。実装は簡単で、ビデオファイルへのパスを指定するだけで、コンポーネントはファイルパスと重要なメタデータの両方を含むDataオブジェクトを返します。開発中のパフォーマンスを最適化するため、まずは100MB未満のビデオから始めることをお勧めします。
3.2 - Split Video(ビデオ分割)コンポーネント

この強力なコンポーネントは、長尺のビデオをインテリジェントに小さく扱いやすいクリップに分割(セグメント化)します。いくつかのパラメータを通じて分割プロセスを微調整できます。希望するクリップの長さを秒単位で設定し、最後のクリップの処理方法(切り捨て、前のコンテンツとのオーバーラップ、またはそのまま保持)を選択し、元のビデオをクリップと並行して保持するかどうかを決定します。このコンポーネントは、詳細なメタデータを含むDataオブジェクトのコレクションとしてクリップを出力します。検索および理解タスクで最良の結果を得るには、6秒から30秒の長さのクリップを作成することをお勧めします。
3.3 - Twelve Labs Pegasus Index Video(Twelve Labs Pegasus ビデオインデックス作成)コンポーネント

ビデオインデックス作成の中核を担うのが、Pegasus Index Videoコンポーネントです。TwelveLabsのPegasus APIと連携し、ビデオコンテンツの検索可能なインデックスを作成します。APIキーとビデオデータ(通常はSplit Videoコンポーネントから取得)を提供すると、固有のvideo_idとindex_id識別子を含むインデックス付きビデオデータを生成します。このインデックス作成ステップは、Pegasusコンポーネントでクエリを実行する前に不可欠です。
3.4 - Twelve Labs Pegasus コンポーネント

Pegasusコンポーネントは、インデックス作成されたビデオコンテンツとの高度な自然言語インタラクションを可能にします。構成には、APIキー、クエリテキスト、および関連するビデオ識別子とインデックス識別子が必要です。インテリジェントな推論レイヤーとして機能し、クエリのコンテキストとビデオコンテンツの両方を処理して、対話的な応答を生成します。このコンポーネントは、自然言語の理解とビデオコンテンツ分析のギャップを真に埋めるものです。
3.5 - Twelve Labs Text Embeddings(Twelve Labs テキスト埋め込み)コンポーネント

TwelveLabsのMarengoモデルを活用して、このコンポーネントはテキスト入力からベクトル埋め込みを生成します。APIキーが必要で、現在はMarengo-retrieval-2.7モデルをサポートしています。出力はベクトルデータベースと完全に互換性があるため、洗練された検索システムに最適です。アプリケーションにおける一貫性を保つため、テキストコンポーネントとビデオコンポーネントの両方で同じ埋め込みモデルを使用することをお勧めします。
3.6 - Twelve Labs Video Embeddings(Twelve Labs ビデオ埋め込み)コンポーネント

テキスト版と同様に、Video Embeddingsコンポーネントはビデオコンテンツの密なベクトル表現を作成します。テキスト埋め込みコンポーネントと同じ構成パターンを共有しますが、ビデオファイルの処理に特化しています。得られる埋め込みにより、動画間またはテキストと動画コンテンツ間の強力なセマンティック類似性検索が可能になり、マルチモーダルアプリケーションの刺激的な可能性が広がります。
3.7 - Convert AstraDB to Pegasus Input(AstraDBからPegasus入力への変換)コンポーネント

この重要なコネクタコンポーネントは、ベクトルデータベースの操作とTwelveLabsコンポーネント間の架け橋となります。AstraDBからの検索結果を処理し、重要なvideo_idとindex_idの情報を抽出して、Pegasusコンポーネントに適した形式に適切に変換します。このコンポーネントは、ビデオコンテンツを使用したRAG(検索拡張生成)パターンを実装する際に特に価値があり、ベクトルデータベースとビデオ処理パイプライン間のスムーズなデータフローを保証します。
これらのコンポーネントは、シームレスに連携するように設計されています。たとえば、以下のようにしてビデオ検索エンジンを作成できます:
Video Fileでビデオを読み込む
Split Videoで扱いやすいチャンクに分割する
Pegasus Index Videoでインデックスを作成する
Video Embeddingsで埋め込みを生成する
AstraDBなどのベクトルデータベースに保存する
Convert AstraDB to Pegasus Inputで関連するクリップを取得する
Twelve Labs Pegasusで質問に答える
ワークフローを構築する際は、これらのコンポーネントを、読み込みや処理からインデックス作成、埋め込み、検索に至るまで、ビデオ理解の様々な側面を処理するビルディングブロックとして考えてください。
4 - Pegasusでのビデオチャット:最初の対話型ビデオワークフロー
このセクションでは、Twelve Labs Pegasusモデルを使用してビデオと「チャット」できる基本的なLangflowワークフローの作成手順を説明します。このフローは、ビデオ処理、インデックス作成、および自然言語クエリの直接的な統合を示しています。
参照画像に示されている「Pegasus Chat with Video」フローにより、ビデオをアップロードし、Twelve Labsによって自動的にインデックス化され、その後チャットインターフェースを通じてその内容について質問することができます。

以下の手順に従ってこのフローを構築してください:
ビデオのアップロード:
Video FileコンポーネントをLangflowキャンバスにドラッグします。Video Fileコンポーネントのプロパティで、サンプルビデオファイル(例:画像に示されているbig_buck_bunny_720.mp4)をアップロードするためにクリックします。このコンポーネントがビデオを読み込み、他のコンポーネントで利用できるようにします。
ビデオデータをPegasusに接続:
Twelve Labs Pegasusコンポーネントをキャンバスに追加します。Video FileコンポーネントのData出力(赤丸)を、Twelve Labs PegasusコンポーネントのVideo Data入力(赤丸)に接続します。これにより、Pegasusコンポーネントに処理対象のビデオを伝えます。
Pegasusコンポーネントの構成:
Twelve Labs Pegasusコンポーネントにおいて:指定されたフィールドに Twelve Labs APIキー を入力します。
Index Name (インデックス名)を指定します。これは、作成されるビデオインデックスに対して任意に選択した分かりやすい名前で構いません(例:「bunny-test-index」)。
Model はデフォルトで
pegasus1.2のようなPegasusモデルになります。特定のモデル要件がない限り、通常はそのままにしておいて構いません。
開発者向け注意:
Index IDを指定せずにVideo DataとIndex Nameを提供すると、Pegasusコンポーネントは新規ビデオに対してTwelve Labsでのビデオインデックス自動作成プロセスを開始します。このプロセス中にTwelve Labsによってvideo_idおよびindex_idが作成されます。
ユーザー入力の有効化:
Chat Inputコンポーネントをキャンバスに追加します。Chat Inputコンポーネントの出力を、Twelve Labs PegasusコンポーネントのPrompt入力(画像で「Receiving input」とラベル付けされた、青丸)に接続します。これにより、Pegasusモデルに送信される質問を入力できるようになります。
チャット応答の表示:
Chat Outputコンポーネントを追加します。Twelve Labs PegasusコンポーネントのMessage出力(青丸)を、このChat Outputコンポーネントの入力に接続します。これにより、Pegasusモデルからの回答が表示されます。
任意:再チャット用のビデオIDの出力:
その後のチャットセッションで同じビデオの再インデックス作成を避けるために、Twelve Labsによって生成された
Video IDとIndex IDをキャプチャできます。もう一つの
Chat Outputコンポーネントを追加します。Twelve Labs PegasusコンポーネントからのVideo ID出力(青丸)を、この新しいChat Outputコンポーネントに接続します。開発者のヒント:同じビデオを使用した将来のセッションでは、以前に生成された
Video IDとIndex IDを、それぞれTwelve Labs PegasusコンポーネントのPegasus Video IDおよびIndex IDフィールドに直接入力できます。これにより、再インデックス作成ステップをバイパスし、インタラクションを高速化できます。Video DataとIndex Nameのみを提供した場合は、再インデックス作成されます。
プレイグラウンドでのテスト:
Langflowプレイグラウンドを開きます(通常は右側のサイドバーにあるチャットバブルアイコンをクリックします)。
ビデオに関する質問をチャットインターフェースに入力します(例:「ビデオに写っている動物は何ですか?」、「主役を説明してください。」)。
Pegasusコンポーネントがビデオを処理し(初回の場合)、インデックスを作成し、ビデオの内容に基づいて質問に答えます。応答は接続された
Chat Outputに表示されます。
このシンプルながら強力なフローは、TwelveLabsのビデオ理解をインタラクティブなLangflowエージェントに直接統合する方法の基本例として役立ちます。これで、ほぼリアルタイムでビデオの内容について質問を投げ、回答を得ることができます。
5 - MarengoとAstraDBによるビデオ埋め込み:セマンティック・ビデオ・インデックスの構築
このセクションでは、TwelveLabsのMarengoモデルを使用してビデオ埋め込みを生成し、その後これらの埋め込みをDataStax AstraDBに保存するためのLangflowワークフローの構築方法を詳しく説明します。これは、ビデオライブラリに対するセマンティック検索を有効にしたり、ビデオコンテンツを使用した高度な検索拡張生成(RAG)システムを構築したりするために不可欠なステップです。
提供されている参照画像に示されているように、このワークフローは、ビデオを取り込んで埋め込みを生成し、これらの埋め込みをビデオのメタデータとともにAstraDBコレクションに保存します。

5.1 - 事前準備:AstraDBのセットアップ
Langflowのフローを構築する前に、AstraDB環境が準備できていることを確認してください:
AstraDBデータベースの作成:
まだお持ちでない場合は、サインアップして DataStax AstraDB 上に新しいサーバーレスデータベースを作成します。
データベースの初期作成については、AstraDBのセットアップガイドに従ってください。
アプリケーション・トークンの生成:
AstraDBコンソールの「Database Details(データベースの詳細)」セクションに移動します。
適切な権限(例:Database Administrator、またはコレクションへの接続・読み書きを許可するロール)を持つアプリケーション・トークン(Application Token)を生成します。Langflowコンポーネントで必要になるため、このトークンを安全に保存してください。
video_embeddingsコレクションの作成:AstraDBデータベース内に新しいコレクションを作成します。名前は
video_embeddingsなどにすると良いでしょう。極めて重要:このコレクションをベクトル検索(Vector Search)に対応するように構成します。これには通常、以下が含まれます:
コレクションがベクトルを保存するように指定すること。
ベクトルの次元数(Dimension)を 1024 に設定すること。これは、TwelveLabsのMarengoモデル(画像に示されている
Marengo-retrieval-2.7など)によって生成される埋め込みの次元数です。
ベクトル検索の有効化および次元数の設定に関する詳細な手順については、コレクション管理に関するAstraDBのドキュメントを参照してください。
5.2 - Langflowワークフローの構築
AstraDBがセットアップされたら、Langflowで以下のフローを構築します:
動画のアップロード:
Video Fileコンポーネントをキャンバスにドラッグします。希望のビデオファイル(例:画像で使われている
big_buck_bunny_720.mp4)をアップロードして構成します。このコンポーネントにより、ビデオデータがワークフローからアクセス可能になります。
ビデオ埋め込み生成の構成:
Twelve Labs Video Embeddingsコンポーネントをキャンバスに追加します。API Keyフィールドに Twelve Labs APIキー を入力します。Model が
Marengo-retrieval-2.7(または別の互換性のあるMarengoモデル)に設定されていることを確認します。このコンポーネントがビデオを処理し、密なベクトル埋め込みを生成します。
取り込み用AstraDBの構成:
DS Astra DBコンポーネント(または画像に示されているAstra DBコンポーネント)をキャンバスに追加します。対応するフィールドに Astra DB アプリケーション・トークン を入力します。
ベクトル対応コレクションを作成した Database 名を指定します。
作成した Collection 名(例:
video_embeddings)を入力します。
埋め込みをAstraDBに接続:
Twelve Labs Video EmbeddingsコンポーネントからのEmbeddings出力(緑丸)を、DS Astra DBコンポーネントのEmbedding Model入力(緑丸)に接続します。開発者向け注意:この接続は、AstraDBに対して受信データを埋め込みとして解釈する 方法 を伝えるものですが、埋め込み自体を提供するわけではありません。実際の埋め込みは、取り込まれるデータとともに渡されます。
取り込み用ビデオデータの接続:
Video FileコンポーネントからのData出力(赤丸)を、DS Astra DBコンポーネントのIngest Data入力(赤丸)に接続します。開発者向け注意:データが
Ingest Data入力に渡されると、このフローのように埋め込みモデルが構成されているか埋め込みコンポーネントに接続されている場合、Astra DBコンポーネントは入力データの埋め込みを期待または生成します。このセットアップでは、Twelve Labs Video Embeddingsコンポーネントが埋め込み生成を処理し、その出力(元のデータと埋め込みを含む)がDS Astra DBに渡されます。
フローを実行して埋め込みと取り込みを行う:
プロセスを開始するには、通常、このチェーンの最後のコンポーネントである
DS Astra DBコンポーネントを「実行」または有効化します。Langflowでは、コンポーネント上の再生/実行アイコンをクリックするか、より大きな実行可能グラフの一部としてフロー全体を構築して開始します。実行されると、
Video Fileコンポーネントがビデオを読み込みます。次に、Twelve Labs Video Embeddingsコンポーネントがこのビデオデータを受け取り(フローを通じて暗黙的に、またはVideo Data入力が接続されている場合は明示的に受け取り。スクリーンショットのコンポーネントでは示されていませんが)、埋め込みを生成します。最後に、DS Astra DBコンポーネントがビデオデータ(上流コンポーネントあるいは自身の内部ロジックによって埋め込みが豊富化されたもの)を受け取り、指定されたAstraDBコレクションに取り込みます。
このフローを実行すると、ビデオの内容はAstraDBコレクション内のベクトル埋め込みとして表現され、セマンティック検索や類似性比較、RAGアプリケーションのナレッジベースとして活用できる状態になります。AstraDBコレクションに直接クエリを実行して、データが保存されているか確認することができます。
6 - ビデオコンテンツを使用した高度なRAG実装
ビデオのための堅牢な検索拡張生成(RAG)システムを構築するには、ビデオコンテンツの処理やインデックス作成から、セマンティック検索や文脈に応じた理解の有効化にいたるまで、いくつかの段階があります。このセクションは2つのパートに分かれています。まず、ビデオを分割し、そのクリップに対してTwelve Labs Pegasusでインデックスを作成し、Marengoで埋め込みを生成し、それらすべてをAstraDBに保存することで、ビデオデータを準備することに焦点を当てます。

パート1:ビデオを分割し、Pegasusでクリップのインデックスを作成し、埋め込みをAstra DBに保存する
この最初のフローは、画像に示されているように、ビデオRAGシステムの基礎となります。ソースビデオを管理可能なクリップに分割処理し、Pegasusからのインデックス情報でこれらのクリップを充実させ、Marengoを使用して対応するベクトル埋め込みを生成し、最後にこの包括的なデータセットを効率的な検索のためにAstraDBに保存します。
このデータ取り込み用パイプラインの構築手順は以下の通りです:
ソースビデオのアップロード:
まず、
Video FileコンポーネントをLangflowキャンバスにドラッグします。動画をアップロードして構成します(例:画像に示されている
big_buck_bunny_720...)。このコンポーネントは生のビデオデータを出力します。
動画をクリップに分割:
Split Videoコンポーネントを追加します。Video FileコンポーネントからのData出力を、Split VideoコンポーネントのVideo Data入力に接続します。Split Videoコンポーネントを構成します:Clip Duration (seconds): 各ビデオセグメントの長さを定義するためにこれを設定します。画像では
6秒になっており、きめ細かな分析に適した開始値です。コンテンツに合わせてこれを調整できます(たとえば、大まかなシーンセグメンテーションには30秒が適している場合があります)。Last Clip Handling: クリップの長さを一定にするために、画像にある
Overlap Previous(前のクリップと重ねる)のようなオプションを選択するか、お好みに応じてTruncate(切り捨て)やKeep Short(短いまま保持)を選択します。Include Original Video: セグメントを扱うことになるRAG処理用クリップを作成する場合、通常はこれをオフ(画像のとおり)にします。
Pegasusでクリップのインデックス作成:
Twelve Labs Pegasus Index Videoコンポーネントを導入します。Split VideoコンポーネントからのVideo Clips出力を、Twelve Labs Pegasus Index VideoコンポーネントのVideo Data入力に接続します。このコンポーネントは各クリップを処理します。コンポーネントの設定において:
Twelve Labs APIキーを入力します。
Index Name (例:画像の
test index)を指定します。これにより、Twelve Labs内でインデックス作成されたコンテンツを整理しやすくなります。コンポーネントはIndexed Dataを出力します。これには元のクリップデータと、Pegasusによって割り当てられたvideo_idおよびindex_idが含まれます。Model はデフォルトでPegasusモデル(例:
pegasus1.2)になります。
Marengoによるビデオ埋め込みの生成:
Twelve Labs Video Embeddingsコンポーネントを追加します。ここでも Twelve Labs APIキー を入力します。
Model に
Marengo-retrieval-2.7(画像に示されているモデル)か、お好みのMarengo埋め込みモデルを設定します。極めて重要:
Twelve Labs Pegasus Index VideoコンポーネントからのIndexed Data出力を、Twelve Labs Video Embeddingsコンポーネントの(暗黙的または明示的な)ビデオデータ入力に接続します。開発者向け注意:画像ではこのコンポーネントに直接「Video Data」という名前の入力が表示されていませんが、埋め込みコンポーネントは処理対象のビデオクリップを受け取る必要があります。Indexed Dataがこれらのクリップを運びます。
保存先AstraDBの構成:
DS Astra DBコンポーネントをキャンバスに配置します。Astra DB アプリケーション・トークン を入力します。
ビデオデータと埋め込みが保存される、ターゲットとなる Database (例:
video_embeddings)および Collection (例:video_embeddings)を選択します。このコレクションが、使用するMarengoモデル(Marengo-retrieval-2.7の場合は1024)に一致する次元数で、ベクトル検索向けに構成されていることを確認してください。
埋め込みとデータをAstraDBに接続:
Twelve Labs Video EmbeddingsコンポーネントからのEmbeddings出力を、DS Astra DBコンポーネントのEmbedding Model入力に接続します。これにより、AstraDBに埋め込みベクトルの解釈方法を伝えます。Twelve Labs Pegasus Index VideoコンポーネントからのIndexed Data出力を、DS Astra DBコンポーネントのIngest Data入力に接続します。これにより、ビデオクリップ(Pegasusのvideo_idとindex_idで充実化されたデータ)と、生成されたそれらの埋め込みが、保存先へと送信されます。
取り込みフローの実行:
フローを実行します。
Video Fileが読み込まれ、Split Videoによって分割されます。各クリップは、インデックス作成のためにTwelve Labs Pegasus Index Videoに送信されます。得られたIndexed Data(クリップ + Pegasus ID)はTwelve Labs Video Embeddingsに渡され、Marengo埋め込みが生成されます。最後に、DS Astra DBコンポーネントがこの包括的なデータ(クリップ、Pegasusインデックス情報、Marengoベクトル埋め込み)を、指定されたコレクションに取り込みます。
このフローが完了すると、AstraDBコレクションに、個々のベクトル埋め込みおよびPegasusの識別子が紐付けられた、インデックス作成済みビデオクリップが含まれ、RAGシステムの取得パートへの準備が整います。
パート2:ビデオ埋め込みへのクエリ実行と、Pegasusを使用したビデオチャット
ビデオクリップが処理され、Pegasusによってインデックスが作成され、それらのMarengo埋め込みがAstraDBに保存され終わったら(パート1で詳述)、この2つ目のフローはRAGの「取得(ミリバール)」と「生成」の側面を示します。参照画像にあるように、まずユーザーのテキスト質問(クエリ)を埋め込みに変換し、それを使用して関連するビデオクリップをAstraDBから検索します。これらのクリップからの情報は、コンテキストに基づいた回答を生成するためにTwelve Labs Pegasusモデルに渡されます。

以下はこの取得および質問応答パイプラインの構築手順です:
ユーザーのクエリ入力と埋め込み:
Chat Inputコンポーネントをキャンバスに追加します。これは、ユーザーが質問を入力する場所になります。Twelve Labs Text Embeddingsコンポーネントを追加します。Twelve Labs APIキーを入力します。
Model に
Marengo-retrieval-2.7(またはパート1でビデオクリップの埋め込みに使用したのと同じMarengoモデル)を設定します。
Chat Inputコンポーネントの出力を、Twelve Labs Text Embeddingsコンポーネントのテキスト入力に接続します。これにより、ユーザーのクエリがベクトル埋め込みに確実に変換されます。
AstraDBでのセマンティック検索:
DS Astra DBコンポーネントを追加します。Astra DB アプリケーション・トークン を入力します。
ビデオクリップの埋め込みが保存されている Database (例:
video_embeddings)および Collection (例:video_embeddings)を選択します。Twelve Labs Text EmbeddingsコンポーネントからのEmbeddings出力を、DS Astra DBコンポーネントのEmbedding Model入力に接続します。これにより、AstraDBにクエリ埋め込みが提供されます。Chat Inputコンポーネントの出力(生のテキストクエリ)を、DS Astra DBコンポーネントのSearch Query入力に接続します。開発者向け注意:クエリの埋め込みはEmbedding Modelに渡されますが、Search Query入力自体は、構成によってはキーワードフィルタリングやその他のハイブリッド検索戦略、あるいは単に提供されたクエリ埋め込みを使用して何に対してベクトル検索を行うかを知るために、AstraDBによって利用される場合があります。
DS Astra DBコンポーネントは、コレクション内で類似性検索を実行し、最も関連性の高いビデオクリップ(またはパート1から保存されている場合は、video_idやindex_idを含むメタデータ)であるSearch Resultsを返します。
AstraDBの結果をPegasus入力用に変換:
Convert AstraDB to Pegasus Inputコンポーネントを追加します。DS Astra DBコンポーネントからのSearch Results出力(多くの場合ドキュメントのメタデータを含む赤丸)を、このコンバータコンポーネントのAstraDB Results入力に接続します。このユーティリティコンポーネントは非常に重要です。AstraDBの検索結果から
Index IDとVideo IDを抽出します。これは、Pegasusコンポーネントが「チャット」対象となる特定のインデックス作成済みビデオセグメントを識別するために必須となります。
文脈に応じたQ&Aに向けてPegasusを準備:
Twelve Labs Pegasusコンポーネントを追加します。Twelve Labs APIキーを入力します。
希望のPegasusの Model を選択します(デフォルトは
pegasus1.2です)。
Convert AstraDB to Pegasus InputコンポーネントからのIndex ID出力を、Twelve Labs PegasusコンポーネントのIndex ID入力(「Receiving input」とラベルされた端子)に接続します。Convert AstraDB to Pegasus InputコンポーネントからのVideo ID出力を、Twelve Labs PegasusコンポーネントのPegasus Video ID入力(「Receiving input」とラベルされた端子)に接続します。開発者向け注意:ビデオデータがその場で直接インデックス作成のために提供される「Pegasus Chat with Video」フローとは異なり、ここではAstraDBから取得した すでにインデックス作成されている コンテンツの特定の
Pegasus Video IDとIndex IDを提供しています。PegasusコンポーネントのVideo Data入力はこのRAG検索フローでは未接続のままになります。
元のクエリをPegasusに渡す:
元の
Chat Inputコンポーネント(ユーザーの質問を保持しているもの)の出力を、Twelve Labs PegasusコンポーネントのPrompt入力(「Receiving input」とラベルされた端子)に直接接続します。これにより、Pegasusは取得したビデオセグメントの文脈を使用して、どの質問に答えるべきかを認識できます。
Pegasusの応答を表示する:
Chat Outputコンポーネントを追加します。Twelve Labs PegasusコンポーネントからのMessage出力を、このChat Outputコンポーネントの入力に接続します。これにより、AIが生成した回答が表示されます。
ビデオRAGシステムのテスト:
Langflowのプレイグラウンド(チャットインターフェース)を開きます。
パート1で処理したビデオコンテンツに関連する質問を入力します(例:「冒頭でウサギに何が起こりますか?」、「蝶が出てくるシーンを見せてください。」)。
フローは以下のように実行されます:
あなたの質問が
Chat Inputによってキャプチャされます。Twelve Labs Text Embeddingsが質問をベクトルに変換します。DS Astra DBがそのベクトルを使用して、データベースから最もセマンティックに類似したビデオクリップを見つけます。Convert AstraDB to Pegasus Inputが、上位に取得されたクリップのvideo_idおよびindex_idを抽出します。Twelve Labs PegasusがこれらのID(どのビデオセグメントに焦点を当てるかを指示)と元の質問(そのセグメントに関して何を回答すべきかを指示)を受け取ります。Pegasusが、あなたの質問に関連する指定のビデオセグメントを分析し、回答を生成します。
回答が
Chat Outputを介して表示されます。
この2パートからなるRAGアーキテクチャにより、大規模なビデオライブラリから関連する重要な瞬間を対話形式で取得し、それを基にやり取りできる、洗練されたスケーラブルなビデオ理解アプリケーションを構築できます。
7 - 特別なユースケースとパフォーマンスのベストプラクティス
TwelveLabsとLangflowの連携によるビデオ機能は、価値の高いビジネスアプリケーションを数多く展開させます。不適切な動画セグメントを自動的にフラグ付け、または要約するコンテンツモデレーションシステム、大規模なアーカイブから関連のある瞬間を表面化させるビデオ検索エンジン、さらには動画、テキスト、画像の理解をブレンドしたマルチモーダルアシスタントを構築し、より豊かなユーザーエクスペリエンスを提供できます。これらのユースケースは、動画に対する迅速な洞察や自動分析が、生産性、コンプライアンス、ユーザー維持を直接左右する、メディア、教育、カスタマーサポートなどの業界に最適です。
ビデオ対応ワークフローで信頼性の高いビジネス結果を提供するには、パフォーマンスとコストの最適化に注力してください。動画セグメントをバッチ処理する、あるいは不要な再処理を防ぐためにキャッシュを使用することで、APIのフットプリントを抑え、また詳細度と計算効率のバランスが取れるクリップの長さを選びましょう。ビデオライブラリの増加に伴い高速なクエリ応答を維持するため、AstraDBと埋め込みパイプラインを監視し、より精密な結果を得るために、ベクトル類似性にメタデータフィルタリングを組み合わせたハイブリッド検索戦略を検討してください。
これらのベストプラクティスに従うことで、ビデオAIソリューションにおけるスケーラビリティ、正確性、費用対効果を最大化できます。これにより、組織は大規模なビデオから実行可能な洞察を抽出し、市場における競争優位性を維持することができます。
8 - まとめと次のステップ
おめでとうございます。これであなたもビデオマスターです! 🎬✨
TwelveLabsとLangflowの強力なコンビを使用して、本当にビデオを見て理解するAIエージェントを構築する力をアンロックできました。次世代のスマートなビデオ検索エンジンを作成する、大規模なコンテンツモデレーション、あるいはマルチモーダルアシスタントの開発など、生のフッテージを実用的な洞察(そしてちょっとした魔法のような体験)に変えるツールが手に入りました。
それでは、次に何をしましょう?
独自の創造的なフローを実験したり、さまざまな種類のビデオで限界に挑戦したり、最もクールなプロジェクトをコミュニティで共有してみましょう。TwelveLabsとLangflowのロードマップで発表される刺激的な新機能に注目し、ディスカッションへの参加もお忘れなく。あなたのアイデアとフィードバックが、ビデオAIの未来を形作ります!
さあ、素晴らしいものを構築しに出発しましょう。ビデオの宇宙があなたの探索を待っています! 🚀🎥
追加リソース
TwelveLabs ドキュメント: https://docs.twelvelabs.io/
Langflow ドキュメント: https://docs.langflow.org/
LangflowにおけるTwelveLabsコンポーネント: https://github.com/twelvelabs-io/twelvelabs-developer-experience/blob/main/integrations/Langflow/TWELVE_LABS_COMPONENTS_README.md
Langflow/DataStaxチーム(Melissa Herrera、Eric Hare、Gokul Krishnaa、Alejandro Cantarero)のコラボレーションに深く感謝いたします!
ワークフロー全体を紹介しているMelissaによる以下のチュートリアルもぜひご覧ください 👇

1 - はじめにと概要
ビデオAIのワイルドな世界へようこそ!ここでは、あなた自身と同じように、アプリが動画で何が起こっているかを「見る」ことができます! 🎬
このチュートリアルは、TwelveLabsとLangflowを使って次世代のビデオパワードエージェントを構築するためのゴールインチケットです。コンピュータビジョンの博士号は必要ありません。好奇心といくつかのビデオクリップさえあれば準備完了です。

なぜ重要なのか?
TwelveLabsは「頭脳」を提供します。当社のPegasus(ペガサス)およびMarengo(マレンゴ)モデルにより、コードがビデオコンテンツを理解、インデックス化、チャットできるようになり、質問への回答、重要な瞬間の特定、スマートな要約生成などが可能になります。Langflowはあなたの遊び場です。アイデアをAIワークフローに変換し、即座にAPIとして提供できるビジュアルビルダーです。これらを組み合わせることで、ビデオ検索エンジン、コンテンツモデレーションボット、あるいはテキスト、画像、動画を処理できるマルチモーダルアシスタントなど、ビデオAIソリューションの作成、テスト、デプロイが簡単になります。
内容は?
このチュートリアルでは、初心者からビデオのプロへと成長できます。環境をセットアップし、LangflowにおけるTwelveLabsコンポーネントをマスターし、ビデオとのチャット、ビデオ埋め込み(Embeddings)の生成と保存、さらにはビデオライブラリから質問を取得して回答する本格的なRAGシステムの構築といった実践的なフローを構築します。その過程で、ベストプラクティスを学び、画期的なユースケースを発見し、独自のビデオ対応アプリを構築するインスピレーションを得ることができます。
それでは、ポップコーンを用意し、コードエディタを立ち上げて、AIワークフローを真のビデオススマートにしていきましょう! 🚀🍿
2 - 開発環境のセットアップ
TwelveLabsとLangflowで開発を開始するために環境を準備しましょう。
Langflowのインストール
pipを使用してLangflowをインストールします:
pip install langflowLangflowサーバーを起動します:
langflow runブラウザで
http://127.0.0.1:7860にアクセスし、LangflowのUIを開きます。

TwelveLabs API認証情報の取得
まだアカウントをお持ちでない場合は、 TwelveLabsプラットフォーム でアカウントを作成します。
プロファイル設定に移動し、新しいAPIキーを作成します。
TwelveLabsサービスへのリクエストの認証に必要となるため、APIキーを書き留めておきます。
TwelveLabsコンポーネントの確認
Langflowのインターフェースで、「+」ボタンをクリックして新しいフローを作成します。
コンポーネントサイドバーを開き、「TwelveLabs」を検索します。以下のコンポーネントが表示されるはずです:
Video File(ビデオファイル)
Split Video(ビデオ分割)
Twelve Labs Pegasus Index Video(Twelve Labs Pegasus ビデオインデックス作成)
Twelve Labs Pegasus(Twelve Labs Pegasus)
Twelve Labs Text Embeddings(Twelve Labs テキスト埋め込み)
Twelve Labs Video Embeddings(Twelve Labs ビデオ埋め込み)
Convert AstraDB to Pegasus Input(AstraDBからPegasus入力への変換)
これらのコンポーネントが表示されない場合は、Langflowが最新バージョンにアップデートされているか確認してください。

サンプル動画の準備
このチュートリアルでのテスト用に、2〜3個の短いビデオクリップ(それぞれ1〜3分)を用意します。MP4、MOV、AVIなどの一般的なフォーマットがサポートされています。
学習時のパフォーマンスを最適化するために、視覚的コンテンツが明確で、シーンがはっきり分かれている動画を使用してください。これにより、ビデオ理解機能の効果をより実感できます。
チュートリアル中に見つけやすいよう、サンプル動画専用のフォルダを作成します。
トラブルシューティングのヒント
TwelveLabsコンポーネントで問題が発生した場合:
API認証: APIキーが正しく入力されており、有効期限が切れていないことを確認してください。
ビデオ処理: ビデオがサポートされているフォーマットであり、サイズが大きすぎないことを確認してください。処理を高速化するため、まずは100MB未満のクリップから始めてください。
コンポーネントの読み込み: コンポーネントが表示されない場合は、Langflowを再起動するか、コンソールでエラーメッセージを確認してください。
依存関係: 統合にはビデオ処理のためにFFmpegが必要です。まだインストールされていない場合は、システムのパッケージマネージャーを使用してインストールしてください。
環境がセットアップできたら、TwelveLabsとLangflowを使って強力なビデオ対応AIワークフローの構築を始める準備は完了です。
3 - LangflowにおけるTwelveLabsコンポーネントの理解
Langflowに、AIワークフローで高度なビデオ理解機能を可能にする7つの強力なTwelveLabsコンポーネントが加わりました。これらのコンポーネントは、動画の処理、埋め込みの生成、ビデオコンテンツのインデックス作成、そして視覚コンテンツとの自然言語によるインタラクションを実現するために相互に連携します。
3.1 - Video File(ビデオファイル)コンポーネント

Video Fileコンポーネントは、Langflowにおけるビデオ処理ワークフローのエントリポイントとして機能します。MP4、AVI、MOV、MKVなど、幅広い一般的なビデオフォーマットに対応しているため、様々なビデオソースに対して汎用性があります。実装は簡単で、ビデオファイルへのパスを指定するだけで、コンポーネントはファイルパスと重要なメタデータの両方を含むDataオブジェクトを返します。開発中のパフォーマンスを最適化するため、まずは100MB未満のビデオから始めることをお勧めします。
3.2 - Split Video(ビデオ分割)コンポーネント

この強力なコンポーネントは、長尺のビデオをインテリジェントに小さく扱いやすいクリップに分割(セグメント化)します。いくつかのパラメータを通じて分割プロセスを微調整できます。希望するクリップの長さを秒単位で設定し、最後のクリップの処理方法(切り捨て、前のコンテンツとのオーバーラップ、またはそのまま保持)を選択し、元のビデオをクリップと並行して保持するかどうかを決定します。このコンポーネントは、詳細なメタデータを含むDataオブジェクトのコレクションとしてクリップを出力します。検索および理解タスクで最良の結果を得るには、6秒から30秒の長さのクリップを作成することをお勧めします。
3.3 - Twelve Labs Pegasus Index Video(Twelve Labs Pegasus ビデオインデックス作成)コンポーネント

ビデオインデックス作成の中核を担うのが、Pegasus Index Videoコンポーネントです。TwelveLabsのPegasus APIと連携し、ビデオコンテンツの検索可能なインデックスを作成します。APIキーとビデオデータ(通常はSplit Videoコンポーネントから取得)を提供すると、固有のvideo_idとindex_id識別子を含むインデックス付きビデオデータを生成します。このインデックス作成ステップは、Pegasusコンポーネントでクエリを実行する前に不可欠です。
3.4 - Twelve Labs Pegasus コンポーネント

Pegasusコンポーネントは、インデックス作成されたビデオコンテンツとの高度な自然言語インタラクションを可能にします。構成には、APIキー、クエリテキスト、および関連するビデオ識別子とインデックス識別子が必要です。インテリジェントな推論レイヤーとして機能し、クエリのコンテキストとビデオコンテンツの両方を処理して、対話的な応答を生成します。このコンポーネントは、自然言語の理解とビデオコンテンツ分析のギャップを真に埋めるものです。
3.5 - Twelve Labs Text Embeddings(Twelve Labs テキスト埋め込み)コンポーネント

TwelveLabsのMarengoモデルを活用して、このコンポーネントはテキスト入力からベクトル埋め込みを生成します。APIキーが必要で、現在はMarengo-retrieval-2.7モデルをサポートしています。出力はベクトルデータベースと完全に互換性があるため、洗練された検索システムに最適です。アプリケーションにおける一貫性を保つため、テキストコンポーネントとビデオコンポーネントの両方で同じ埋め込みモデルを使用することをお勧めします。
3.6 - Twelve Labs Video Embeddings(Twelve Labs ビデオ埋め込み)コンポーネント

テキスト版と同様に、Video Embeddingsコンポーネントはビデオコンテンツの密なベクトル表現を作成します。テキスト埋め込みコンポーネントと同じ構成パターンを共有しますが、ビデオファイルの処理に特化しています。得られる埋め込みにより、動画間またはテキストと動画コンテンツ間の強力なセマンティック類似性検索が可能になり、マルチモーダルアプリケーションの刺激的な可能性が広がります。
3.7 - Convert AstraDB to Pegasus Input(AstraDBからPegasus入力への変換)コンポーネント

この重要なコネクタコンポーネントは、ベクトルデータベースの操作とTwelveLabsコンポーネント間の架け橋となります。AstraDBからの検索結果を処理し、重要なvideo_idとindex_idの情報を抽出して、Pegasusコンポーネントに適した形式に適切に変換します。このコンポーネントは、ビデオコンテンツを使用したRAG(検索拡張生成)パターンを実装する際に特に価値があり、ベクトルデータベースとビデオ処理パイプライン間のスムーズなデータフローを保証します。
これらのコンポーネントは、シームレスに連携するように設計されています。たとえば、以下のようにしてビデオ検索エンジンを作成できます:
Video Fileでビデオを読み込む
Split Videoで扱いやすいチャンクに分割する
Pegasus Index Videoでインデックスを作成する
Video Embeddingsで埋め込みを生成する
AstraDBなどのベクトルデータベースに保存する
Convert AstraDB to Pegasus Inputで関連するクリップを取得する
Twelve Labs Pegasusで質問に答える
ワークフローを構築する際は、これらのコンポーネントを、読み込みや処理からインデックス作成、埋め込み、検索に至るまで、ビデオ理解の様々な側面を処理するビルディングブロックとして考えてください。
4 - Pegasusでのビデオチャット:最初の対話型ビデオワークフロー
このセクションでは、Twelve Labs Pegasusモデルを使用してビデオと「チャット」できる基本的なLangflowワークフローの作成手順を説明します。このフローは、ビデオ処理、インデックス作成、および自然言語クエリの直接的な統合を示しています。
参照画像に示されている「Pegasus Chat with Video」フローにより、ビデオをアップロードし、Twelve Labsによって自動的にインデックス化され、その後チャットインターフェースを通じてその内容について質問することができます。

以下の手順に従ってこのフローを構築してください:
ビデオのアップロード:
Video FileコンポーネントをLangflowキャンバスにドラッグします。Video Fileコンポーネントのプロパティで、サンプルビデオファイル(例:画像に示されているbig_buck_bunny_720.mp4)をアップロードするためにクリックします。このコンポーネントがビデオを読み込み、他のコンポーネントで利用できるようにします。
ビデオデータをPegasusに接続:
Twelve Labs Pegasusコンポーネントをキャンバスに追加します。Video FileコンポーネントのData出力(赤丸)を、Twelve Labs PegasusコンポーネントのVideo Data入力(赤丸)に接続します。これにより、Pegasusコンポーネントに処理対象のビデオを伝えます。
Pegasusコンポーネントの構成:
Twelve Labs Pegasusコンポーネントにおいて:指定されたフィールドに Twelve Labs APIキー を入力します。
Index Name (インデックス名)を指定します。これは、作成されるビデオインデックスに対して任意に選択した分かりやすい名前で構いません(例:「bunny-test-index」)。
Model はデフォルトで
pegasus1.2のようなPegasusモデルになります。特定のモデル要件がない限り、通常はそのままにしておいて構いません。
開発者向け注意:
Index IDを指定せずにVideo DataとIndex Nameを提供すると、Pegasusコンポーネントは新規ビデオに対してTwelve Labsでのビデオインデックス自動作成プロセスを開始します。このプロセス中にTwelve Labsによってvideo_idおよびindex_idが作成されます。
ユーザー入力の有効化:
Chat Inputコンポーネントをキャンバスに追加します。Chat Inputコンポーネントの出力を、Twelve Labs PegasusコンポーネントのPrompt入力(画像で「Receiving input」とラベル付けされた、青丸)に接続します。これにより、Pegasusモデルに送信される質問を入力できるようになります。
チャット応答の表示:
Chat Outputコンポーネントを追加します。Twelve Labs PegasusコンポーネントのMessage出力(青丸)を、このChat Outputコンポーネントの入力に接続します。これにより、Pegasusモデルからの回答が表示されます。
任意:再チャット用のビデオIDの出力:
その後のチャットセッションで同じビデオの再インデックス作成を避けるために、Twelve Labsによって生成された
Video IDとIndex IDをキャプチャできます。もう一つの
Chat Outputコンポーネントを追加します。Twelve Labs PegasusコンポーネントからのVideo ID出力(青丸)を、この新しいChat Outputコンポーネントに接続します。開発者のヒント:同じビデオを使用した将来のセッションでは、以前に生成された
Video IDとIndex IDを、それぞれTwelve Labs PegasusコンポーネントのPegasus Video IDおよびIndex IDフィールドに直接入力できます。これにより、再インデックス作成ステップをバイパスし、インタラクションを高速化できます。Video DataとIndex Nameのみを提供した場合は、再インデックス作成されます。
プレイグラウンドでのテスト:
Langflowプレイグラウンドを開きます(通常は右側のサイドバーにあるチャットバブルアイコンをクリックします)。
ビデオに関する質問をチャットインターフェースに入力します(例:「ビデオに写っている動物は何ですか?」、「主役を説明してください。」)。
Pegasusコンポーネントがビデオを処理し(初回の場合)、インデックスを作成し、ビデオの内容に基づいて質問に答えます。応答は接続された
Chat Outputに表示されます。
このシンプルながら強力なフローは、TwelveLabsのビデオ理解をインタラクティブなLangflowエージェントに直接統合する方法の基本例として役立ちます。これで、ほぼリアルタイムでビデオの内容について質問を投げ、回答を得ることができます。
5 - MarengoとAstraDBによるビデオ埋め込み:セマンティック・ビデオ・インデックスの構築
このセクションでは、TwelveLabsのMarengoモデルを使用してビデオ埋め込みを生成し、その後これらの埋め込みをDataStax AstraDBに保存するためのLangflowワークフローの構築方法を詳しく説明します。これは、ビデオライブラリに対するセマンティック検索を有効にしたり、ビデオコンテンツを使用した高度な検索拡張生成(RAG)システムを構築したりするために不可欠なステップです。
提供されている参照画像に示されているように、このワークフローは、ビデオを取り込んで埋め込みを生成し、これらの埋め込みをビデオのメタデータとともにAstraDBコレクションに保存します。

5.1 - 事前準備:AstraDBのセットアップ
Langflowのフローを構築する前に、AstraDB環境が準備できていることを確認してください:
AstraDBデータベースの作成:
まだお持ちでない場合は、サインアップして DataStax AstraDB 上に新しいサーバーレスデータベースを作成します。
データベースの初期作成については、AstraDBのセットアップガイドに従ってください。
アプリケーション・トークンの生成:
AstraDBコンソールの「Database Details(データベースの詳細)」セクションに移動します。
適切な権限(例:Database Administrator、またはコレクションへの接続・読み書きを許可するロール)を持つアプリケーション・トークン(Application Token)を生成します。Langflowコンポーネントで必要になるため、このトークンを安全に保存してください。
video_embeddingsコレクションの作成:AstraDBデータベース内に新しいコレクションを作成します。名前は
video_embeddingsなどにすると良いでしょう。極めて重要:このコレクションをベクトル検索(Vector Search)に対応するように構成します。これには通常、以下が含まれます:
コレクションがベクトルを保存するように指定すること。
ベクトルの次元数(Dimension)を 1024 に設定すること。これは、TwelveLabsのMarengoモデル(画像に示されている
Marengo-retrieval-2.7など)によって生成される埋め込みの次元数です。
ベクトル検索の有効化および次元数の設定に関する詳細な手順については、コレクション管理に関するAstraDBのドキュメントを参照してください。
5.2 - Langflowワークフローの構築
AstraDBがセットアップされたら、Langflowで以下のフローを構築します:
動画のアップロード:
Video Fileコンポーネントをキャンバスにドラッグします。希望のビデオファイル(例:画像で使われている
big_buck_bunny_720.mp4)をアップロードして構成します。このコンポーネントにより、ビデオデータがワークフローからアクセス可能になります。
ビデオ埋め込み生成の構成:
Twelve Labs Video Embeddingsコンポーネントをキャンバスに追加します。API Keyフィールドに Twelve Labs APIキー を入力します。Model が
Marengo-retrieval-2.7(または別の互換性のあるMarengoモデル)に設定されていることを確認します。このコンポーネントがビデオを処理し、密なベクトル埋め込みを生成します。
取り込み用AstraDBの構成:
DS Astra DBコンポーネント(または画像に示されているAstra DBコンポーネント)をキャンバスに追加します。対応するフィールドに Astra DB アプリケーション・トークン を入力します。
ベクトル対応コレクションを作成した Database 名を指定します。
作成した Collection 名(例:
video_embeddings)を入力します。
埋め込みをAstraDBに接続:
Twelve Labs Video EmbeddingsコンポーネントからのEmbeddings出力(緑丸)を、DS Astra DBコンポーネントのEmbedding Model入力(緑丸)に接続します。開発者向け注意:この接続は、AstraDBに対して受信データを埋め込みとして解釈する 方法 を伝えるものですが、埋め込み自体を提供するわけではありません。実際の埋め込みは、取り込まれるデータとともに渡されます。
取り込み用ビデオデータの接続:
Video FileコンポーネントからのData出力(赤丸)を、DS Astra DBコンポーネントのIngest Data入力(赤丸)に接続します。開発者向け注意:データが
Ingest Data入力に渡されると、このフローのように埋め込みモデルが構成されているか埋め込みコンポーネントに接続されている場合、Astra DBコンポーネントは入力データの埋め込みを期待または生成します。このセットアップでは、Twelve Labs Video Embeddingsコンポーネントが埋め込み生成を処理し、その出力(元のデータと埋め込みを含む)がDS Astra DBに渡されます。
フローを実行して埋め込みと取り込みを行う:
プロセスを開始するには、通常、このチェーンの最後のコンポーネントである
DS Astra DBコンポーネントを「実行」または有効化します。Langflowでは、コンポーネント上の再生/実行アイコンをクリックするか、より大きな実行可能グラフの一部としてフロー全体を構築して開始します。実行されると、
Video Fileコンポーネントがビデオを読み込みます。次に、Twelve Labs Video Embeddingsコンポーネントがこのビデオデータを受け取り(フローを通じて暗黙的に、またはVideo Data入力が接続されている場合は明示的に受け取り。スクリーンショットのコンポーネントでは示されていませんが)、埋め込みを生成します。最後に、DS Astra DBコンポーネントがビデオデータ(上流コンポーネントあるいは自身の内部ロジックによって埋め込みが豊富化されたもの)を受け取り、指定されたAstraDBコレクションに取り込みます。
このフローを実行すると、ビデオの内容はAstraDBコレクション内のベクトル埋め込みとして表現され、セマンティック検索や類似性比較、RAGアプリケーションのナレッジベースとして活用できる状態になります。AstraDBコレクションに直接クエリを実行して、データが保存されているか確認することができます。
6 - ビデオコンテンツを使用した高度なRAG実装
ビデオのための堅牢な検索拡張生成(RAG)システムを構築するには、ビデオコンテンツの処理やインデックス作成から、セマンティック検索や文脈に応じた理解の有効化にいたるまで、いくつかの段階があります。このセクションは2つのパートに分かれています。まず、ビデオを分割し、そのクリップに対してTwelve Labs Pegasusでインデックスを作成し、Marengoで埋め込みを生成し、それらすべてをAstraDBに保存することで、ビデオデータを準備することに焦点を当てます。

パート1:ビデオを分割し、Pegasusでクリップのインデックスを作成し、埋め込みをAstra DBに保存する
この最初のフローは、画像に示されているように、ビデオRAGシステムの基礎となります。ソースビデオを管理可能なクリップに分割処理し、Pegasusからのインデックス情報でこれらのクリップを充実させ、Marengoを使用して対応するベクトル埋め込みを生成し、最後にこの包括的なデータセットを効率的な検索のためにAstraDBに保存します。
このデータ取り込み用パイプラインの構築手順は以下の通りです:
ソースビデオのアップロード:
まず、
Video FileコンポーネントをLangflowキャンバスにドラッグします。動画をアップロードして構成します(例:画像に示されている
big_buck_bunny_720...)。このコンポーネントは生のビデオデータを出力します。
動画をクリップに分割:
Split Videoコンポーネントを追加します。Video FileコンポーネントからのData出力を、Split VideoコンポーネントのVideo Data入力に接続します。Split Videoコンポーネントを構成します:Clip Duration (seconds): 各ビデオセグメントの長さを定義するためにこれを設定します。画像では
6秒になっており、きめ細かな分析に適した開始値です。コンテンツに合わせてこれを調整できます(たとえば、大まかなシーンセグメンテーションには30秒が適している場合があります)。Last Clip Handling: クリップの長さを一定にするために、画像にある
Overlap Previous(前のクリップと重ねる)のようなオプションを選択するか、お好みに応じてTruncate(切り捨て)やKeep Short(短いまま保持)を選択します。Include Original Video: セグメントを扱うことになるRAG処理用クリップを作成する場合、通常はこれをオフ(画像のとおり)にします。
Pegasusでクリップのインデックス作成:
Twelve Labs Pegasus Index Videoコンポーネントを導入します。Split VideoコンポーネントからのVideo Clips出力を、Twelve Labs Pegasus Index VideoコンポーネントのVideo Data入力に接続します。このコンポーネントは各クリップを処理します。コンポーネントの設定において:
Twelve Labs APIキーを入力します。
Index Name (例:画像の
test index)を指定します。これにより、Twelve Labs内でインデックス作成されたコンテンツを整理しやすくなります。コンポーネントはIndexed Dataを出力します。これには元のクリップデータと、Pegasusによって割り当てられたvideo_idおよびindex_idが含まれます。Model はデフォルトでPegasusモデル(例:
pegasus1.2)になります。
Marengoによるビデオ埋め込みの生成:
Twelve Labs Video Embeddingsコンポーネントを追加します。ここでも Twelve Labs APIキー を入力します。
Model に
Marengo-retrieval-2.7(画像に示されているモデル)か、お好みのMarengo埋め込みモデルを設定します。極めて重要:
Twelve Labs Pegasus Index VideoコンポーネントからのIndexed Data出力を、Twelve Labs Video Embeddingsコンポーネントの(暗黙的または明示的な)ビデオデータ入力に接続します。開発者向け注意:画像ではこのコンポーネントに直接「Video Data」という名前の入力が表示されていませんが、埋め込みコンポーネントは処理対象のビデオクリップを受け取る必要があります。Indexed Dataがこれらのクリップを運びます。
保存先AstraDBの構成:
DS Astra DBコンポーネントをキャンバスに配置します。Astra DB アプリケーション・トークン を入力します。
ビデオデータと埋め込みが保存される、ターゲットとなる Database (例:
video_embeddings)および Collection (例:video_embeddings)を選択します。このコレクションが、使用するMarengoモデル(Marengo-retrieval-2.7の場合は1024)に一致する次元数で、ベクトル検索向けに構成されていることを確認してください。
埋め込みとデータをAstraDBに接続:
Twelve Labs Video EmbeddingsコンポーネントからのEmbeddings出力を、DS Astra DBコンポーネントのEmbedding Model入力に接続します。これにより、AstraDBに埋め込みベクトルの解釈方法を伝えます。Twelve Labs Pegasus Index VideoコンポーネントからのIndexed Data出力を、DS Astra DBコンポーネントのIngest Data入力に接続します。これにより、ビデオクリップ(Pegasusのvideo_idとindex_idで充実化されたデータ)と、生成されたそれらの埋め込みが、保存先へと送信されます。
取り込みフローの実行:
フローを実行します。
Video Fileが読み込まれ、Split Videoによって分割されます。各クリップは、インデックス作成のためにTwelve Labs Pegasus Index Videoに送信されます。得られたIndexed Data(クリップ + Pegasus ID)はTwelve Labs Video Embeddingsに渡され、Marengo埋め込みが生成されます。最後に、DS Astra DBコンポーネントがこの包括的なデータ(クリップ、Pegasusインデックス情報、Marengoベクトル埋め込み)を、指定されたコレクションに取り込みます。
このフローが完了すると、AstraDBコレクションに、個々のベクトル埋め込みおよびPegasusの識別子が紐付けられた、インデックス作成済みビデオクリップが含まれ、RAGシステムの取得パートへの準備が整います。
パート2:ビデオ埋め込みへのクエリ実行と、Pegasusを使用したビデオチャット
ビデオクリップが処理され、Pegasusによってインデックスが作成され、それらのMarengo埋め込みがAstraDBに保存され終わったら(パート1で詳述)、この2つ目のフローはRAGの「取得(ミリバール)」と「生成」の側面を示します。参照画像にあるように、まずユーザーのテキスト質問(クエリ)を埋め込みに変換し、それを使用して関連するビデオクリップをAstraDBから検索します。これらのクリップからの情報は、コンテキストに基づいた回答を生成するためにTwelve Labs Pegasusモデルに渡されます。

以下はこの取得および質問応答パイプラインの構築手順です:
ユーザーのクエリ入力と埋め込み:
Chat Inputコンポーネントをキャンバスに追加します。これは、ユーザーが質問を入力する場所になります。Twelve Labs Text Embeddingsコンポーネントを追加します。Twelve Labs APIキーを入力します。
Model に
Marengo-retrieval-2.7(またはパート1でビデオクリップの埋め込みに使用したのと同じMarengoモデル)を設定します。
Chat Inputコンポーネントの出力を、Twelve Labs Text Embeddingsコンポーネントのテキスト入力に接続します。これにより、ユーザーのクエリがベクトル埋め込みに確実に変換されます。
AstraDBでのセマンティック検索:
DS Astra DBコンポーネントを追加します。Astra DB アプリケーション・トークン を入力します。
ビデオクリップの埋め込みが保存されている Database (例:
video_embeddings)および Collection (例:video_embeddings)を選択します。Twelve Labs Text EmbeddingsコンポーネントからのEmbeddings出力を、DS Astra DBコンポーネントのEmbedding Model入力に接続します。これにより、AstraDBにクエリ埋め込みが提供されます。Chat Inputコンポーネントの出力(生のテキストクエリ)を、DS Astra DBコンポーネントのSearch Query入力に接続します。開発者向け注意:クエリの埋め込みはEmbedding Modelに渡されますが、Search Query入力自体は、構成によってはキーワードフィルタリングやその他のハイブリッド検索戦略、あるいは単に提供されたクエリ埋め込みを使用して何に対してベクトル検索を行うかを知るために、AstraDBによって利用される場合があります。
DS Astra DBコンポーネントは、コレクション内で類似性検索を実行し、最も関連性の高いビデオクリップ(またはパート1から保存されている場合は、video_idやindex_idを含むメタデータ)であるSearch Resultsを返します。
AstraDBの結果をPegasus入力用に変換:
Convert AstraDB to Pegasus Inputコンポーネントを追加します。DS Astra DBコンポーネントからのSearch Results出力(多くの場合ドキュメントのメタデータを含む赤丸)を、このコンバータコンポーネントのAstraDB Results入力に接続します。このユーティリティコンポーネントは非常に重要です。AstraDBの検索結果から
Index IDとVideo IDを抽出します。これは、Pegasusコンポーネントが「チャット」対象となる特定のインデックス作成済みビデオセグメントを識別するために必須となります。
文脈に応じたQ&Aに向けてPegasusを準備:
Twelve Labs Pegasusコンポーネントを追加します。Twelve Labs APIキーを入力します。
希望のPegasusの Model を選択します(デフォルトは
pegasus1.2です)。
Convert AstraDB to Pegasus InputコンポーネントからのIndex ID出力を、Twelve Labs PegasusコンポーネントのIndex ID入力(「Receiving input」とラベルされた端子)に接続します。Convert AstraDB to Pegasus InputコンポーネントからのVideo ID出力を、Twelve Labs PegasusコンポーネントのPegasus Video ID入力(「Receiving input」とラベルされた端子)に接続します。開発者向け注意:ビデオデータがその場で直接インデックス作成のために提供される「Pegasus Chat with Video」フローとは異なり、ここではAstraDBから取得した すでにインデックス作成されている コンテンツの特定の
Pegasus Video IDとIndex IDを提供しています。PegasusコンポーネントのVideo Data入力はこのRAG検索フローでは未接続のままになります。
元のクエリをPegasusに渡す:
元の
Chat Inputコンポーネント(ユーザーの質問を保持しているもの)の出力を、Twelve Labs PegasusコンポーネントのPrompt入力(「Receiving input」とラベルされた端子)に直接接続します。これにより、Pegasusは取得したビデオセグメントの文脈を使用して、どの質問に答えるべきかを認識できます。
Pegasusの応答を表示する:
Chat Outputコンポーネントを追加します。Twelve Labs PegasusコンポーネントからのMessage出力を、このChat Outputコンポーネントの入力に接続します。これにより、AIが生成した回答が表示されます。
ビデオRAGシステムのテスト:
Langflowのプレイグラウンド(チャットインターフェース)を開きます。
パート1で処理したビデオコンテンツに関連する質問を入力します(例:「冒頭でウサギに何が起こりますか?」、「蝶が出てくるシーンを見せてください。」)。
フローは以下のように実行されます:
あなたの質問が
Chat Inputによってキャプチャされます。Twelve Labs Text Embeddingsが質問をベクトルに変換します。DS Astra DBがそのベクトルを使用して、データベースから最もセマンティックに類似したビデオクリップを見つけます。Convert AstraDB to Pegasus Inputが、上位に取得されたクリップのvideo_idおよびindex_idを抽出します。Twelve Labs PegasusがこれらのID(どのビデオセグメントに焦点を当てるかを指示)と元の質問(そのセグメントに関して何を回答すべきかを指示)を受け取ります。Pegasusが、あなたの質問に関連する指定のビデオセグメントを分析し、回答を生成します。
回答が
Chat Outputを介して表示されます。
この2パートからなるRAGアーキテクチャにより、大規模なビデオライブラリから関連する重要な瞬間を対話形式で取得し、それを基にやり取りできる、洗練されたスケーラブルなビデオ理解アプリケーションを構築できます。
7 - 特別なユースケースとパフォーマンスのベストプラクティス
TwelveLabsとLangflowの連携によるビデオ機能は、価値の高いビジネスアプリケーションを数多く展開させます。不適切な動画セグメントを自動的にフラグ付け、または要約するコンテンツモデレーションシステム、大規模なアーカイブから関連のある瞬間を表面化させるビデオ検索エンジン、さらには動画、テキスト、画像の理解をブレンドしたマルチモーダルアシスタントを構築し、より豊かなユーザーエクスペリエンスを提供できます。これらのユースケースは、動画に対する迅速な洞察や自動分析が、生産性、コンプライアンス、ユーザー維持を直接左右する、メディア、教育、カスタマーサポートなどの業界に最適です。
ビデオ対応ワークフローで信頼性の高いビジネス結果を提供するには、パフォーマンスとコストの最適化に注力してください。動画セグメントをバッチ処理する、あるいは不要な再処理を防ぐためにキャッシュを使用することで、APIのフットプリントを抑え、また詳細度と計算効率のバランスが取れるクリップの長さを選びましょう。ビデオライブラリの増加に伴い高速なクエリ応答を維持するため、AstraDBと埋め込みパイプラインを監視し、より精密な結果を得るために、ベクトル類似性にメタデータフィルタリングを組み合わせたハイブリッド検索戦略を検討してください。
これらのベストプラクティスに従うことで、ビデオAIソリューションにおけるスケーラビリティ、正確性、費用対効果を最大化できます。これにより、組織は大規模なビデオから実行可能な洞察を抽出し、市場における競争優位性を維持することができます。
8 - まとめと次のステップ
おめでとうございます。これであなたもビデオマスターです! 🎬✨
TwelveLabsとLangflowの強力なコンビを使用して、本当にビデオを見て理解するAIエージェントを構築する力をアンロックできました。次世代のスマートなビデオ検索エンジンを作成する、大規模なコンテンツモデレーション、あるいはマルチモーダルアシスタントの開発など、生のフッテージを実用的な洞察(そしてちょっとした魔法のような体験)に変えるツールが手に入りました。
それでは、次に何をしましょう?
独自の創造的なフローを実験したり、さまざまな種類のビデオで限界に挑戦したり、最もクールなプロジェクトをコミュニティで共有してみましょう。TwelveLabsとLangflowのロードマップで発表される刺激的な新機能に注目し、ディスカッションへの参加もお忘れなく。あなたのアイデアとフィードバックが、ビデオAIの未来を形作ります!
さあ、素晴らしいものを構築しに出発しましょう。ビデオの宇宙があなたの探索を待っています! 🚀🎥
追加リソース
TwelveLabs ドキュメント: https://docs.twelvelabs.io/
Langflow ドキュメント: https://docs.langflow.org/
LangflowにおけるTwelveLabsコンポーネント: https://github.com/twelvelabs-io/twelvelabs-developer-experience/blob/main/integrations/Langflow/TWELVE_LABS_COMPONENTS_README.md




